1
Excelのフルネームのユーザーのリストがあります。 ADから取得することで、フルネームに基づいて部門を自動的に取得したいと考えています。Active Directoryでフルネームに基づいてDepartment of userを取得
マイシートTabelle1には、700人以上のユーザーのリストがあります。この場合、時間を節約するために自動的に実行する必要があります。
基本的に、私は彼らのフルネームに基づいて広告を見たいと思っています。 ADユーザでフルネームが一致した場合は、7列目に部門が配置されます。
私はコードを見つけましたが、私は私が続けることができる方法で確認していない:
Sub LoadUserInfo()
Dim x, objConnection, objCommand, objRecordSet, oUser, skip, disa
Dim sht As Worksheet
Dim Tabelle1 As Worksheet
' get domain
Dim oRoot
Set oRoot = GetObject("LDAP://rootDSE")
Dim sDomain
sDomain = oRoot.Get("defaultNamingContext")
Dim strLDAP
strLDAP = "LDAP://" & sDomain
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 100
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT adsPath FROM '" & strLDAP & "' WHERE objectCategory='person'AND objectClass='user'"
Set objRecordSet = objCommand.Execute
x = 2
Set sht = ThisWorkbook.Worksheets("Tabelle1")
With sht
Do Until objRecordSet.EOF
Set oUser = GetObject(objRecordSet.Fields("aDSPath"))
skip = oUser.sAMAccountName
disa = oUser.AccountDisabled
If skip = .Cells(x, 5).Value Then
.Cells(x, 7) = oUser.Department
DoEvents
objRecordSet.MoveNext
Else
DoEvents
x = x + 1
objRecordSet.MoveNext
End If
Loop
End With
End Sub
私は上記のコードを試してみましたが、私のリスト上にあるものにトニー・スタークを変更しました。しかし、空白が表示されるだけです。どのようにしてフルネームのリストでこれをループさせ、各ユーザの部門をリストに入れることができますか?私のシートはTabelle1と呼ばれ、フルネームカラムは5番目にあり、部門カラムは7番目です。 – Sevpoint
@Sevpoint、少し努力してください。 :)この例では、ADS設定で利用可能な場合、ユーザーの部門を抽出します。ループする方法、それを理解しようとする。それは簡単です。 :) – cyboashu
オクラホマ、それを手に入れました。 :) どうもありがとう。私はいくつかの名前をテストして、それを得ることができました。今私はいくつかのループを行う必要があります。助けてくれてありがとう! – Sevpoint