Estou usando o código abaixo como parte de um script para transformar um nome canônico em um nome distinto.
No entanto, devo apresentar o CN "test.example.com/This\/is\/a\/escaped/\space/\OU/person
, recebo muito mais de 1 OU na string DN resultante.
Como faço para resolver isso? Acho que a solução é escapar duas vezes do CN, não?
$DNOUMatches = $DNOUs | select-string -pattern '([^\/]+)' -allmatches
for($i=0;$i -lt $DNOUMatches.matches.count; $i++)
{
$OU = $OU + "OU=$($DNOUMatches.matches[$i].value),"
}
Um regex que funcionaria para eliminar
/
cadeias de entrada com escape de LDAP seria(.+?(?<!\\))\/
utilizado apenas lembrado sobre a antecipação negativa("<!X))
para garantir que, neste caso, a\
não seja precedido por a/
.Em seguida, uma substring para remover o final
/
.