このコードを使用して Active Directory でユーザー アカウントを検索していますが、これは問題なく動作します。
Dim insPrincipalContext As New PrincipalContext(ContextType.Domain, Environment.UserDomainName, "DC=domain,DC=com")
Dim insUserPrincipal As New UserPrincipal(insPrincipalContext)
insUserPrincipal.Description = empID
Dim insPrincipalSearcher As New PrincipalSearcher()
Dim currentADUser As System.DirectoryServices.AccountManagement.UserPrincipal
insPrincipalSearcher.QueryFilter = insUserPrincipal
Dim results As PrincipalSearchResult(Of Principal) = insPrincipalSearcher.FindAll
For Each p As Principal In results
currentADUser = p
adUsername = currentADUser.SamAccountName
adLast = currentADUser.Surname
adFirst = currentADUser.GivenName
adMail = currentADUser.EmailAddress
Next
問題は、必要なユーザー アカウントが複数の場所に存在する可能性があることです。そのため、検索する OU を指定したくありませんが、返されたくない 2 つの OU に存在する可能性があります。検索からこれら 2 つの OU を除外する方法はありますか?
同様の質問をいくつか見つけましたが、VB.Net と system.directory.accountmanagement 名前空間をこのように使用していたものはありません。