
私は 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)
たとえば、フルネームが Bill Smith であるユーザー「bsmith」がいるとします。
このスクリプトを呼び出して動作させるには、ユーザーとして「Bill Smithi」を渡す必要があります。
「bsmith」を渡してユーザーを参照するにはどうすればいいですか? わかりません。
答え1
VBS はほぼ廃止されているため、PowerShell で試してみることをお勧めします。get-aduser と set-aduser を使用すると、ほぼ簡単に実行できます。これを試してください。
get-aduser bsmith |Unlock-ADAccount