回答
像這樣的東西可能指向你在正確的方向,使用的System.DirectoryServices和System.DirectoryServices.ActiveDirectory:
Private Function GetDomainUsers(ByVal domainDirectoryEntry As DirectoryEntry, ByRef userList As IList) As Integer
Try
userList = New ArrayList()
Using domainDirectoryEntry
Dim ds As New DirectorySearcher(domainDirectoryEntry, "(&(objectCategory=person)(objectClass=user))", New String() {"distinguishedName"})
Using src As SearchResultCollection = ds.FindAll()
For Each sr As SearchResult In src
userList.Add(sr.Properties("distinguishedName")(0))
Next
End Using
End Using
Return userList.Count
Catch generatedExceptionName As Exception
userList = Nothing
Return -1
Finally
domainDirectoryEntry = Nothing
End Try
端功能
另一種辦法是探索System.Management和System.Management.Instrumentation。這裏是這是您如何使用這些命名空間提取特定域的用戶的簡短片段。
Imports System.Management
Imports System.Management.Instrumentation
Sub PrintDomainUsers()
Dim domainName As String = System.Environment.UserDomainName.ToString
Dim userQuery As SelectQuery = New SelectQuery("Win32_UserAccount", "Domain='" & domainName & "'")
Try
Dim userSearch As ManagementObjectSearcher = New ManagementObjectSearcher(userQuery)
For Each domainUser In userSearch.Get
Console.WriteLine(domainUser("Name"))
Next
Catch ex As Exception
Throw ex
End Try
End Sub
通過WMI使用'System.DirectoryServices'用於Active Directory任何一天。強大的打字只是使用託管類別的一大收穫。 – 2009-11-25 20:54:26
Imports System.Management
Imports System.Management.Instrumentation
Sub PrintDomainUsers()
Dim domainName As String = System.Environment.UserDomainName.ToString
Dim userQuery As SelectQuery = New SelectQuery("Win32_UserAccount", "Domain='" & domainName & "'")
Try
Dim userSearch As ManagementObjectSearcher = New ManagementObjectSearcher(userQuery)
For Each domainUser In userSearch.Get
Console.WriteLine(domainUser("Name"))
Next
Catch ex As Exception
Throw ex
End Try
End Sub
這工作,但我如何通過一定的組過濾器。我得到千分之一的收據
我知道我需要添加到條件語句,但我不知道要添加什麼。幫幫我!?!? – 2009-11-26 01:35:47
它可能會在選擇查詢中引發錯誤。
請檢查:
你到你的項目添加到System.Management程序集的引用?如果你沒有,這樣做:
在VS中,單擊項目菜單>添加引用。
在.Net選項卡上,向下滾動,直到看到System.Management。點擊它選擇,然後點擊確定。
現在回到你的代碼中,在你的班級的最頂層,放入「Imports System.Management」,你應該全部設置好。
來源:
http://www.vbforums.com/showthread.php?t=560422
它的工作對我來說沒有任何問題。我能夠獲得域的所有用戶名。
- 1. 獲取網絡用戶的用戶名
- 2. 網絡掛接生成的列表獲取由用戶
- 3. 如何獲取我的網絡上可用的SQL Server列表?
- 4. 網絡抓取,獲取空列表
- 5. 使用Swift 3獲取Mac上的首選wifi網絡列表
- 6. 獲取網絡用戶的IP地址
- 7. 獲取Google Apps域上的用戶列表
- 8. 獲取網絡打印機列表silverlight
- 9. 獲取網絡SQL服務器列表
- 10. 如何獲取Mac上的Mono中的網絡接口列表?
- 11. 獲取網絡上的掃描儀列表
- 12. 無法獲取網絡上的投射設備列表
- 13. 在市場上獲取域用戶列表
- 14. 在Yodlee網絡服務中,如何獲取cobrand特定用戶帳戶列表?
- 15. 在同一網絡上獲取IP的用戶名
- 16. 如何獲取win32 API的域用戶帳戶列表?
- 17. 在Windows Mobile上獲取網絡名稱(用戶名)
- 18. 如何獲取可用網絡提供商的列表?
- 19. 如何從Google Apps帳戶獲取域用戶列表?
- 20. 如何獲取使用.NET的網絡上的Domino服務器列表?
- 21. 在無線網絡上獲取當前域時出現ActiveDirectoryServerDownException
- 22. 從網絡抓取後僅獲取列表中的數字
- 23. 如何從C#公司的域/網絡設置獲取用戶信息?
- 24. 獲取iDevices上的wifi網絡密碼
- 25. Wordpress網絡和子域上的網站
- 26. 如何獲取網絡客戶端
- 27. 獲取youtube用戶列表
- 28. AngularFire獲取用戶列表
- 29. 網絡收穫:從列表中抓取多個網址
- 30. 獲取特定網絡表單的URI
我剛剛嘗試過,VS不認可DirectorEntry作爲參數類型。 – 2009-11-25 19:07:29
我應該添加該即時試圖在.net 2.0中執行此操作。 – 2009-11-25 19:13:32
您是否在代碼中爲System.DirectoryServices命名空間添加了Imports語句,並且已將對System.DirectoryServices.dll的引用添加到項目中? – 2009-11-25 19:32:31