
我正在嘗試編寫一個滿足 2 個要求的 VBScript:
- 它解鎖用戶的帳戶。
- 它可以這樣做並使用 samAccountName 引用使用者。
#1 有效。然而,我已經工作的下面的腳本僅引用用戶及其完整的 AD 名稱。
' 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)
例如,假設我們有用戶“bsmith”,全名是 Bill Smith。
我只能調用此腳本並通過傳遞“Bill Smithi”作為用戶來使其工作。
如何引用傳入「bsmith」的使用者?我無法弄清楚這一點。
答案1
鑑於 VBS 幾乎已過時,我建議您在 PowerShell 中嘗試此操作。使用 get-aduser 和 set-aduser 幾乎是微不足道的。嘗試這個:
get-aduser bsmith |Unlock-ADAccount