PowerShell/ADSI Permission Проблема с задачами, связанными с AD
Я работаю над сценарием PS, который предоставит пользователям графический интерфейс и несколько кнопок для щелчка, чтобы выполнить некоторые основные задачи, такие как разблокировка учетной записи, включение / отключение, изменение паролей и удаление процессов / выход пользователя из системы. Части, которые НЕ работают: включить / отключить пользователей и изменить пароли.
Прежде всего, все работает как администратор домена, но я не могу сделать пользователя администратором домена, поэтому, пожалуйста, не предлагайте это:)
Вот часть смены пароля:
$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)
Теперь, очевидно, я попытался дать соответствующие разрешения пользователю, прежде чем даже попытался это сделать: у пользователя, с которым я работаю, есть права "сбросить пароль" и "изменить пароль", делегированные в папке "Пользователи" в 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"
3 ответа
Вы можете редактировать оригинальный AD.msc и добавлять функциональность по своему усмотрению.
Вот несколько ссылок:
Пользовательская консоль AD
Сброс пароля правой кнопкой мыши
Разблокировка правой кнопкой мыши
Добавить дополнительные столбцы
Я заметил проблему: конечный пользователь "osman", на котором я тестировал это, был администратором домена и, по-видимому, администраторы домена не наследуют делегирование (не знаю почему, насколько я могу судить, не задокументировано). Все остальные не администраторы работают просто отлично! Спасибо за все ваши предложения.
Единственный способ, которым я знаю пользователя для установки своего пароля, - это команда. Set-ADAccountPassword -Identity $Name -Reset -NewPassword (ConvertTo-SecureString $Password -AsPlainText -force) -PassThru Он запросит у них текущий пароль или, если вы не укажете NewPassword, запросит оба. Если вы пытаетесь предоставить сотруднику службы поддержки эти права, убедитесь, что вы не тестируете учетную запись администратора, поскольку они никогда не смогут изменить пароль администратора, для которого он защищен атрибутом adminCount = 1. Я успешно разрешил Персонал службы поддержки может поменять пароли в ADUC с правами на изменение пароля в пользовательском подразделении. Мы закончили тем, что купили продукт, чтобы позволить пользователям сбросить свои собственные пароли. Я знаю, что это не совсем отвечает на ваш вопрос, но я надеюсь, что часть этой информации поможет.