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

相关内容