Déblocage de comptes en masse
Tuesday, 17. November 2009, 07:29:46
Il faut donc par la suite les débloquer et on ne dispose pas toujours d’une console etc. Et un script en VBS peut nous aider.
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Début de la déclaration des variables
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "Select AdsPath from 'LDAP://OU=Mes-Users,DC=Mon-Reseau,DC=Mon-Reseau-Connexion " & "where objectClass='user'"
Set objRecordSet = objCommand.Execute
'Fin de la déclaration des variables
'Compteur
monCompteur = 0
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Sélection des comptes bloqués (boucle)
With objRecordSet
While Not .EOF
AdsPath = .Fields("AdsPath")
Set objItem = GetObject(AdsPath)
If objItem.IsAccountLocked = True Then ' True peut aussi avoir la valeur-1
' Routine pour débloquer les comptes'
objItem.isAccountLocked = 0 ' False
objItem.setInfo
'Fin de la routine pour débloquer les comptes
monCompteur = monCompteur + 1
Dim maVariable
If maVariable = "" Then
maVariable = objItem.sAMAccountName & " unlocked" & vbCRLF
else
maVariable = objItem.sAMAccountName & " unlocked" & vbCRLF & maVariable
End If
Else
'ADS_UF_LOCKOUT desactive
End If
.Movenext
Wend
End With
WScript.Echo Date() & vbTab & Time() & vbTab & "Nb. de compte désactivé:" & monCompteur & vbCRLF & _
"Liste des comptes désactivé: " & VbCRLF & maVariable
A lancer avec un compte administrateur et bien entendu il faut personnaliser le chemin LDAP… Cela peut se faire via Adsi Edit pour avoir le chemin complet !

