objConnection não ofuscante, objCommand, objRootDSE
strDNSDomain não ofuscante, strFilter, strQuery, objRecordSet, strDN
strOUpath não ofuscante, objNewOU, objUser
intFlag não ofuscante
Const ADS_UF_ACCOUNTDISABLE = &H02
'Usar a DEMORA para procurarar o domínio por todos os usuários.
Ajustar o objConnection = o CreateObject (“ADODB.Connection”)
Ajustar o objCommand = o CreateObject (“ADODB.Command”)
objConnection.Provider = “ADsDSOOBject”
objConnection.Open “fornecedor ativo do diretório”
Ajustar objCommand.ActiveConnection = objConnection
'Determinar o domínio do DNS do objeto de RootDSE.
Ajustar o objRootDSE = o GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (“DefaultNamingContext”)
'strDNSDomain = “DC=MWZ-FM, DC=COM”
strFilter = “(& (objectCategory=person) (objectClass=user))”
'Cada corda deve ter uma vírgula de arrasto
arrOUs = disposição (_
“OU=11-USERS,”, _
DE “USUÁRIO MIGRIERT OU=12-EXCHANGE,” _
)
Para cada strOU nos arrOUs
strQuery = “; ” & strFilter & “; distinguishedName, userAccountControl; subtree”
objCommand.CommandText = strQuery
objCommand.Properties (de “tamanho página”) = 100
objCommand.Properties (“intervalo de parada”) = 30
objCommand.Properties (o “esconderijo resulta”) = falso
'Enumerar todos os usuários. Verific se o cliente incapacitou.
Ajustar o objRecordSet = o objCommand.Execute
Fazer até objRecordSet.EOF
strDN = objRecordSet.Fields (“distinguishedName”)
intFlag = objRecordSet.Fields (“userAccountControl”)
Se (intFlag e ADS_UF_ACCOUNTDISABLE) <> 0 então
Ajustar o objUser = o GetObject (“LDAP: /” & strDN)
Ajustar o objNewOU = o GetObject (“LDAP: //OU=03-DISABLED-USERS, OU=93-DISABLED-OBJECTS,” & strDNSDomain)
objNewOU.MoveHere objUser.ADsPath, vbNullString
Terminar se
objRecordSet.MoveNext
Laço
Em seguida
'Limpar
objConnection.Close
Wscript.Echo “feitos”
Wscript.quit
|