«new DirectoryEntry (Отличительное имя как строка)» не работает, когда DN содержит «/» - PullRequest
2 голосов
/ 10 февраля 2009

У меня есть следующий код для преобразования отличительного имени в имя sAMAccountName:

Dim de As New DirectoryEntry("LDAP://" & stringDN)
Return CType(de.Properties("samaccountname")(0), String)

Отлично работает для каждого DN, который я передаю, кроме одного. У нас есть группа AD в нашем домене, в которой есть «/» - назовите ее «Программисты / администраторы баз данных». DN для этой группы: «Программисты / администраторы баз данных, OU = Группы пользователей, DC = mydomain, DC = local». Когда я пытаюсь использовать этот DN в качестве указанной выше строки DNS, я получаю исключение COMException «Неизвестная ошибка (0x80005000)».

Все остальные группы / пользователи в моем домене работают нормально, и я продублировал проблему в нашем тестовом домене, где переименование группы, чтобы она не содержала "/", решило проблему. Тем не менее, я не могу сделать это в производстве, поэтому я застрял.

Можно ли как-нибудь избежать этого "/"? Я должен верить, что есть решение вокруг этого, чтобы я мог правильно получить свойства этой группы.

1 Ответ

4 голосов
/ 10 февраля 2009

Вы пробовали делать:

Dim de As New DirectoryEntry("LDAP://" & stringDN.Replace( "/", "\/" ))
Return CType(de.Properties("samaccountname")(0), String)
...