
Estoy intentando escribir un VBScript que cumpla 2 requisitos:
- Desbloquea la cuenta de un usuario.
- Puede hacerlo y hacer referencia al usuario mediante samAccountName.
El número 1 funciona. Sin embargo, el siguiente script que he hecho funcionar solo hace referencia al usuario con su nombre completo de 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 ejemplo, supongamos que tenemos el usuario 'bsmith', cuyo nombre completo es Bill Smith.
Sólo puedo llamar a este script y hacer que funcione pasando "Bill Smithi" como usuario.
¿Cómo hago referencia al usuario que pasa "bsmith"? No puedo entender esto.
Respuesta1
Dado que VBS está casi obsoleto, le recomiendo que pruebe esto en PowerShell. Será casi trivial usar get-aduser y set-aduser. Prueba esto:
get-aduser bsmith |Unlock-ADAccount