【发布时间】:2010-04-15 08:17:58
【问题描述】:
我在网上有一些关于检索 Active Directory 域的 NetBIOSName(Windows 2000 之前的域名)的代码。这是我的代码示例:
Me._rootDSE = New System.DirectoryServices.DirectoryEntry("GC://RootDSE", "", "")
Dim results As System.DirectoryServices.SearchResultCollection = Nothing
Dim ADSPath As String = "GC://CN=Partitions," + Me._rootDSE.Properties("configurationNamingContext").Value.ToString()
Dim adse As System.DirectoryServices.DirectoryEntry = New System.DirectoryServices.DirectoryEntry(ADSPath, "", "")
Dim searcher As System.DirectoryServices.DirectorySearcher
searcher = New System.DirectoryServices.DirectorySearcher(adse)
searcher.SearchScope = DirectoryServices.SearchScope.OneLevel
searcher.Filter = "(&(objectClass=crossRef)(systemflags=3))"
searcher.PropertiesToLoad.Add("netbiosname")
searcher.PropertiesToLoad.Add("ncname")
results = searcher.FindAll()
If results.Count > 0 Then
For Each sr As System.DirectoryServices.SearchResult In results
Dim de As System.DirectoryServices.DirectoryEntry = sr.GetDirectoryEntry()
'netbiosname and ncname properties returns nothing
System.Diagnostics.Trace.WriteLine(sr.GetDirectoryEntry().Properties("netbiosname").Value.ToString())
System.Diagnostics.Trace.WriteLine(sr.GetDirectoryEntry().Properties("ncname").Value.ToString())
Next
End If
当我使用“(&(objectClass=crossRef)(systemFlags=3))”过滤器时,我没有得到任何结果,但是当我删除 systemFlags 过滤器时,我得到了一些结果。
但是,在我得到的搜索结果中,我仍然无法访问 ncName 和 NetBIOSName 属性的值。我可以正确获取搜索结果的 distinctName 和 CN 等其他属性。
知道我可能做错了什么,或者在哪里可以进一步查看?
【问题讨论】:
标签: vb.net active-directory ldap