Скрипты VBS — доступ к объекту пользователя LDAP с помощью samAccountName

Скрипты VBS — доступ к объекту пользователя LDAP с помощью samAccountName

Я пытаюсь написать 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», полное имя которого — Билл Смит.

Я могу вызвать этот скрипт и заставить его работать, только указав «Билла Смити» в качестве пользователя.

Как мне сослаться на пользователя, передающего "bsmith"? Я не могу понять это.

решение1

Учитывая, что VBS почти устарел, я рекомендую вам попробовать это в PowerShell. Это будет почти тривиально с использованием get-aduser и set-aduser. Попробуйте это:

 get-aduser bsmith |Unlock-ADAccount

Связанный контент