Проблема Разрешения PowerShell/ADSI со связанными с AD задачами

Я работаю над сценарием PS, который даст пользователям GUI и несколько кнопок для нажатия, чтобы сделать некоторые основные задачи, такие как разблокирование учетной записи, включение/отключение, изменение паролей и уничтожение процессов / регистрирующийся пользователь прочь. Части, которые НЕ работают: позвольте/запретите пароли изменения и пользователи.

В первую очередь, все работает администратором домена, но я не могу сделать пользователя администратором домена, поэтому не предлагайте это :)

Вот часть пароля изменения:

    $name = "osman"
    $Searcher = [ADSISearcher]"(sAMAccountName=$Name)"
    $Results = $Searcher.FindOne()
    $password = "pezevenk@321"

    [string]$adspath = $Results.Properties.adspath
    $enable = [ADSI]$adspath
    $enable.psbase.invoke("SetPassword", $password)
    $enable.psbase.CommitChanges()

Ошибка довольно универсальна:

Exception calling "Invoke" with "2" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
At line:14 char:13
+             $enable.psbase.invoke("SetPassword", $password)

Теперь, очевидно, я попытался дать верные полномочия пользователю прежде, даже я делал попытку этого: у пользователя, с которым я выполняю это, есть "измененный пароль" и "права" пароля изменения, делегированные на папке "Users" в AD, который включает всех пользователей.

Там какой-либо путь состоит в том, чтобы видеть точно, какое разрешение я пропускаю? Можете Вы парни думать о чем-либо еще, что требуется?

Править: Это полномочия для OU:

"CN=Users,DC=domainname,DC=root,DC=com","All","User","ReadProperty, GenericExecute","Descendents","00000000-0000-0000-0000-000000000000","bf967aba-0de6-11d0-a285-00aa003049e2","InheritedObjectAceTypePresent","Allow","domainname\osman","False","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","Pwd-Last-Set","User","ReadProperty, WriteProperty","Descendents","bf967a0a-0de6-11d0-a285-00aa003049e2","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","False","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","Lockout-Time","User","WriteProperty","Descendents","28630ebf-41d5-11d1-a9c1-0000f80367c1","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","False","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","User-Account-Control","User","WriteProperty","Descendents","bf967a68-0de6-11d0-a285-00aa003049e2","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","False","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","User-Force-Change-Password","User","ExtendedRight","Descendents","00299570-246d-11d0-a768-00aa006e0529","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","False","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","User-Change-Password","User","ExtendedRight","Descendents","ab721a53-1e2f-11d0-9819-00aa0040529b","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","False","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","User-Change-Password","User","ExtendedRight","Descendents","ab721a53-1e2f-11d0-9819-00aa0040529b","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","True","ContainerInherit","InheritOnly"
"CN=Users,DC=domainname,DC=root,DC=com","User-Force-Change-Password","User","ExtendedRight","Descendents","00299570-246d-11d0-a768-00aa006e0529","bf967aba-0de6-11d0-a285-00aa003049e2","ObjectAceTypePresent, InheritedObjectAceTypePresent","Allow","domainname\osman","True","ContainerInherit","InheritOnly"
1
задан 25 March 2015 в 15:35
3 ответа

Вы можете редактировать исходный AD.msc и добавлять функции по своему усмотрению.
Вот несколько ссылок:
Пользовательская консоль AD
Сброс пароля правой кнопкой мыши
Разблокировка правой кнопкой мыши
Добавить дополнительные столбцы

1
ответ дан 4 December 2019 в 00:10

Единственный известный мне способ установить собственный пароль для пользователя - это эта команда. Set-ADAccountPassword -Identity $ Name -Reset -NewPassword (ConvertTo-SecureString $ Password -AsPlainText -force) -PassThru Он запросит у них текущий пароль или, если вы не укажете NewPassword, он запросит оба. Если вы пытаетесь предоставить эти права сотруднику службы поддержки, убедитесь, что вы не проводите тестирование с учетной записью администратора, поскольку они никогда не смогут изменить пароль для пользователя с правами администратора, они защищены атрибутом adminCount = 1. Я успешно разрешил персонал службы поддержки для изменения паролей в ADUC с разрешением на изменение пароля для пользовательского OU. В итоге мы купили продукт, позволяющий пользователям сбрасывать собственные пароли. Я знаю, что это не совсем ответ на ваш вопрос, но надеюсь, что часть этой информации поможет.

0
ответ дан 4 December 2019 в 00:10

Я заметил проблему: конечный пользователь «osman», на котором я тестировал это, был администратором домена и, по-видимому, администраторы домена не наследуют делегирование (не знаю почему, не документировано, насколько я вижу). Все остальные, не являющиеся администраторами, работают нормально! Спасибо за все ваши предложения.

0
ответ дан 4 December 2019 в 00:10

Теги

Похожие вопросы