Я пишу сценарий Powershell для создания учетной записи пользователя в Active Directory, и я хочу, чтобы использовать учетные данные, чтобы сделать это, поэтому я использую .NETУстановка «UserAccountControl» с помощью Powershell и .NET
$objDirectoryEntry = New-Object System.DirectoryServices.DirectoryEntry ($OU,$($Credential.UserName),$($Credential.GetNetworkCredential().password))
$Account = $objDirectoryEntry.psbase.get_children().add("CN="+$AccountName,"User")
$Account.psbase.InvokeSet("sAMAccountName",$sAMAccountName)
$Account.psbase.invokeset("DisplayName", $Displayname)
$Account.psbase.invokeset("Description", $Description)
$Account.psbase.CommitChanges()
представляется невозможным установить параметр печально известного «UserAccountControl»
$Account.psbase.invokeset(“userAccountControl”, 66048) #fails
$Account.psbase.invokeset(“userAccountControl”, 0x10200) #fails
$Account.psbase.invokeset(“userAccountControl”, 0x2) #fails
с другой стороны, используя обертку ADSI работает отлично.
$objADSI = [ADSI]$AdminOU
$objAccount = $objADSI.create("User","CN="+$AccountName)
# Create the account
$objAccount.put("SamAccountName", $AccountName)
$objAccount.put("DisplayName", $Displayname)
$objAccount.put("Description", $Description)
$objAccount.SetInfo()
# set password
$objAccount.SetPassword($AdminAccountPassword)
$objAccount.SetInfo()
# set the userAccountControl
$objAccount.put(“userAccountControl”, 66048)
$objAccount.SetInfo()
Но не удается заставить метод обертки ADSI работать под разными учетными данными.
Проводят слишком много времени, ударив головой об этом, только другие методы, которые я могу думать о том, чтобы начать экономить метод ADSI на внешний сценарий и вызвать его, используя учетные данные, безусловно, Theres способ,
Это дает вам сообщение об ошибке, когда он не работает? и вы устали устанавливать его в фактическое значение int: '512 (активный) 514 (отключен) и т. д. –
Привет, Да, спасибо за ответ – beehaus
Да, вот команды, которые я пробовал, и ошибки, полученные ниже $ ServerAccount. psbase.invokeset («userAccountControl», 512) $ ServerAccount.psbase.CommitChanges() Вызов «CommitChanges» с использованием аргументов «0»: «Сервер не хочет обрабатывать запрос – beehaus