Faible objConnection, objCommand, objRootDSE
Faible strDNSDomain, strFilter, strQuery, objRecordSet, strDN
Faible strOUpath, objNewOU, objUser
Faible intFlag
Const ADS_UF_ACCOUNTDISABLE = &H02
'Employer l'AGITATION pour rechercher le domaine tous les utilisateurs.
Placer l'objConnection = le CreateObject (« ADODB.Connection »)
Placer l'objCommand = le CreateObject (« ADODB.Command »)
objConnection.Provider = « ADsDSOOBject »
objConnection.Open « fournisseur actif d'annuaire »
Placer objCommand.ActiveConnection = objConnection
'Déterminer le domaine de DNS à partir de l'objet de RootDSE.
Placer l'objRootDSE = le GetObject (« LDAP : //RootDSE »)
strDNSDomain = objRootDSE.Get (« DefaultNamingContext »)
'strDNSDomain = « DC=MWZ-FM, DC=COM »
strFilter = « (et (objectCategory=person) (objectClass=user)) »
'Chaque corde doit avoir une virgule de remorquage
arrOUs = rangée (_
« OU=11-USERS, », _
« UTILISATEUR MIGRIERT D'OU=12-EXCHANGE, » _
)
Pour chaque strOU dans les arrOUs
strQuery = « ; » et strFilter et « ; distinguishedName, userAccountControl ; sous-arbre »
objCommand.CommandText = strQuery
objCommand.Properties (« taille de page ») = 100
objCommand.Properties (« temps mort ») = 30
objCommand.Properties (la « cachette résulte ») = faux
'Énumérer tous les utilisateurs. Vérifier si le compte désactivait.
Placer l'objRecordSet = l'objCommand.Execute
Faire jusqu'à objRecordSet.EOF
strDN = objRecordSet.Fields (« distinguishedName »)
intFlag = objRecordSet.Fields (« userAccountControl »)
Si (intFlag et ADS_UF_ACCOUNTDISABLE) <> 0 puis
Placer l'objUser = le GetObject (« LDAP : / » et strDN)
Placer l'objNewOU = le GetObject (« LDAP : //OU=03-DISABLED-USERS, OU=93-DISABLED-OBJECTS, » et strDNSDomain)
objNewOU.MoveHere objUser.ADsPath, vbNullString
Finir si
objRecordSet.MoveNext
Boucle
Après
'Nettoyer
objConnection.Close
Wscript.Echo « faits »
Wscript.quit
|