Назад | Перейти на главную страницу

Сценарии 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"? Я не могу понять этого.

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

 get-aduser bsmith |Unlock-ADAccount