我正在尝试编写一个满足 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