
Ich versuche, ein VBScript zu schreiben, das zwei Anforderungen erfüllt:
- Es entsperrt das Konto eines Benutzers.
- Dies ist möglich, und der Benutzer kann mithilfe des SamAccountName referenziert werden.
#1 funktioniert. Das folgende Skript, das ich zum Laufen gebracht habe, verweist jedoch nur auf den Benutzer mit seinem vollständigen AD-Namen.
' UnlockUserAccount.vbs
Option Explicit
'Get the arguments
dim oArgs, strUser, strContainer
set oArgs = WScript.Arguments
strUser = "CN=" & trim(oArgs(0)) & ","
strContainer = "OU=User Accounts,OU=Staff,OU=Org,"
' Bind to Active Directory and get the user object
dim objRootLDAP, objUser
Set objRootLDAP = GetObject("LDAP://rootDSE")
Set objUser = GetObject("LDAP://" & strUser & strContainer & objRootLDAP.Get("defaultNamingContext"))
'Unlock the user's account
objUser.IsAccountLocked = False
objUser.SetInfo
Wscript.Quit(1)
Angenommen, wir haben den Benutzer „bsmith“, dessen vollständiger Name Bill Smith ist.
Ich kann dieses Skript nur aufrufen und ausführen, indem ich „Bill Smithi“ als Benutzer übergebe.
Wie referenziere ich die Benutzerkennung „bsmith“? Ich komme nicht dahinter.
Antwort1
Da VBS nahezu veraltet ist, empfehle ich Ihnen, dies in PowerShell auszuprobieren. Mit get-aduser und set-aduser ist es nahezu trivial. Versuchen Sie Folgendes:
get-aduser bsmith |Unlock-ADAccount