我正在使用此VBS將用戶的平面列表從一個組移動到另一個組。 目前爲止這麼好。當談到VB時,我是一個新手。我面臨的挑戰是我有20個不同的同步組(Sync01-Sync20)和20個Mig組(Mig01-Mig20)。我需要擴展識別用戶所屬的Sunc組的代碼。然後將其「翻譯」成正確的Mig組。任何人? :)VBS Active Directory(2003)將用戶從一組組移動到另一組
DIM objGroup, objGroup2, objRootLDAP, objFSO, objInput, objConnection, objCommand
DIM strUser
On Error Resume Next
Set objRootLDAP = GetObject("LDAP://rootDSE")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInput = objFSO.OpenTextFile("users.txt")
Set objGroup = GetObject("LDAP://cn=Sync01,ou=Huset,dc=bb,dc=net")
Set objGroup2 = GetObject("LDAP://cn=Mig01,ou=Huset,dc=bb,dc=net")
Do Until objInput.AtEndOfStream
strUser = ObjInput.ReadLine
objCommand.CommandText = "<LDAP://dc=bb,dc=net>;(&(objectCategory=person)(sAMAccountName=" & strUser & "));distinguishedName,userAccountControl;subtree"
Set objRecordSet = objCommand.Execute
If objRecordSet.RecordCount = 0 Then
MsgBox strUser & " was not found!" & VbCrLf & "Skipping", VbOkOnly,"User Not Found"
Else
strDN = objRecordSet.Fields("distinguishedName")
Set objUser = GetObject("LDAP://" & strDN)
objGroup.Remove(objUser.AdsPath)
objGroup2.Add(objUser.AdsPath)
End If
Loop
WScript.Echo "Complete"
什麼是「正確的」米格集團對於任何給定同步組?用戶可以是多個Mig或Sync組的成員嗎? –
我的不好。如果用戶是Sync01的成員,那麼正確的grup是Mig01,依此類推。這些組用於控制稱爲Quest的工具的遷移流程。如果成員被添加到錯誤的組中,則遷移將失敗。我將不得不花費3-4個小時掃描日誌以找到並糾正問題。 – user2681351