Script para Desbloquear a Conta de Usuário do Active Directory com Visual Basic Scripting (VBScript)

Procedimento:
1. Copie o exemplo abaixo VBScript código e cole-o no bloco de notas ou em vbscript editor.
2. Salve o arquivo com a extensão .vbs por exemplo: UnlockADUser.vbs
3. Clique duas vezes no arquivo VBScript para desbloquear um usuário do Active Directory.
4. Digite o “nome de usuário” para desbloquear e clique em OK para prosseguir.
' UnlockADUser.vbs
' Sample VBScript to Unlock Active Directory user .
' Author: http://www.morgantechspace.com/
' ------------------------------------------------------'
Option Explicit
Dim adoCommand, adoConnection
Dim varBaseDN, varFilter, varAttributes
Dim objRootDSE, varDNSDomain, strQuery, adoRecordset
Dim strUserName,objUser
' Pede o nome de usuário para Desbloquear.
Do
strUserName= InputBox ("Favor informar o nome de usuário")
If strUserName= "" then
Wscript.Echo "Nenhum nome de usuario inserido"
end if
Loop Until strUserName <> ""
' Setup ADO objects.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
Set adoCommand.ActiveConnection = adoConnection
' Search entire Active Directory domain.
Set objRootDSE = GetObject("LDAP://RootDSE")
varDNSDomain = objRootDSE.Get("defaultNamingContext")
varBaseDN = "<LDAP://" & varDNSDomain & ">"
' Filter on user objects.
varFilter = "(&(objectCategory=person)(objectClass=user)(|(samaccountname="& strUserName &")(name="& strUserName &")))"
' Comma delimited list of attribute values to retrieve.
varAttributes = "samaccountname,distinguishedname"
' Construct the LDAP syntax query.
strQuery = varBaseDN & ";" & varFilter & ";" & varAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 1000
adoCommand.Properties("Timeout") = 20
adoCommand.Properties("Cache Results") = False
' Run the query.
Set adoRecordset = adoCommand.Execute
IF(adoRecordset.EOF<>True) Then
Set objUser = GetObject("LDAP://"& adoRecordset.Fields("distinguishedname").value)
If objUser.IsAccountLocked = 0 Then
Wscript.Echo "O usuário '" & strUserName & "' não está bloqueado."
Else
objUser.IsAccountLocked = 0
objUser.SetInfo
WScript.Echo "O usuário '"& strUserName &"' foi desbloqueado com sucesso."
End if
Else
WScript.Echo "Nenhum usuário encontrado com o nome '"& strUserName &"'"
End if
' close ado connections.
adoRecordset.Close
adoConnection.Close