当DN包含“/”时,“new DirectoryEntry(distinguishedName as string)”不起作用

时间:2009-02-09 22:09:19

标签: vb.net active-directory directoryservices directoryentry distinguishedname

我有以下代码将distinguishedName转换为sAMAccountName:

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

除了一个DN之外,它对我传递的每个DN都很有用。我们的域上有一个AD组,其中有一个“/” - 称之为“程序员/ DBA”。该组的DN是“Programmers / DBAs,OU = User Groups,DC = mydomain,DC = local”。当我尝试将此DN用作上面的stringDN时,我收到“未知错误(0x80005000)”的COMException。

我网域中的其他每个群组/用户都运行正常,我在我们的测试域上重复了这个问题,重新命名该群组,因此它不包含“/”来解决问题。但是,我无法在制作中这样做,所以我被卡住了。

我可以以某种方式逃避这个“/”吗?我必须相信有一个解决方案,以便我可以正确地获得这个组的属性。

1 个答案:

答案 0 :(得分:4)

你有没有尝试过:

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