
Estou tentando escrever um VBScript que atenda a 2 requisitos:
- Ele desbloqueia a conta de um usuário.
- Ele pode fazer isso e referenciar o usuário usando samAccountName.
# 1 funciona. No entanto, o script abaixo que comecei a trabalhar apenas faz referência ao usuário com seu nome completo do 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)
Por exemplo, suponha que temos o usuário ‘bsmith’, cujo nome completo é Bill Smith.
Só posso chamar esse script e fazê-lo funcionar passando "Bill Smithi" como usuário.
Como faço referência ao usuário que passa em "bsmith"? Eu não consigo entender isso.
Responder1
Dado que o VBS está quase obsoleto, recomendo que você tente fazer isso no PowerShell. Será quase trivial usar get-aduser e set-aduser. Experimente isto:
get-aduser bsmith |Unlock-ADAccount