Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 无法获取ncName和netBIOSName属性_Vb.net_Active Directory_Ldap - Fatal编程技术网

Vb.net 无法获取ncName和netBIOSName属性

Vb.net 无法获取ncName和netBIOSName属性,vb.net,active-directory,ldap,Vb.net,Active Directory,Ldap,我在网上有一些关于检索Active Directory域的NetBIOSName(windows 2000以前的域名)的代码。以下是我的代码示例: Me._rootDSE = New System.DirectoryServices.DirectoryEntry("GC://RootDSE", "", "") Dim results As System.DirectoryServices.SearchResultCollection = Nothing Dim ADSPa

我在网上有一些关于检索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属性的值。我可以正确地获得搜索结果的其他属性,如DifferentiedName和CN


你知道我可能做错了什么,或者在哪里可以更进一步吗?

我找到了一个解决方案,我不知道这是否是正确的,但它正在工作。我将ADSPath的值从

Dim ADSPath As String = "GC://CN=Partitions," + Me._rootDSE.Properties("co..

Dim ADSPath As String=“LDAP:///CN=Partitions,”+Me.\u rootDSE.Properties(“co.”。。

我向提供了LDAP服务器地址,一切都解决了。现在,如果我可以通过编程方式获取LDAP服务器的IP地址或FQDN,我就不必使用配置文件来存储LDAP服务器的值。

它不起作用,因为您搜索了全局编录(GC://),并且netbiosname属性没有存储在那里。
Dim ADSPath As String = "LDAP://<server>/CN=Partitions," + Me._rootDSE.Properties("co..