VBS 腳本 - 使用 samAccountName 存取 LDAP 使用者對象

VBS 腳本 - 使用 samAccountName 存取 LDAP 使用者對象

我正在嘗試編寫一個滿足 2 個要求的 VBScript:

  1. 它解鎖用戶的帳戶。
  2. 它可以這樣做並使用 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

相關內容