Кажется, у меня странная проблема с правами доступа к Active Directory. Пользователь, запускающий этот скрипт, имеет доступ к изменению атрибутов активного каталога и может делать это из командной строки, но не может запустить команду внутри скрипта.
Команда, которую я пытаюсь запустить, такова:
Set-ADUser -identity $user.DistinguishedName -replace @{info="1"}
эта команда запускается и выполняется в командной строке Powershell. Командная строка также запускается от имени пользователя, запускающего скрипт. Таким образом, у пользователя есть право изменять атрибуты активного каталога. Однако, когда я помещаю эту команду в сценарий, я получаю проблему с разрешением.
В моем сценарии это блок, который вызывает ошибку:
try{
Set-ADUser -identity $user.DistinguishedName -replace @{info="1"}
Set-ADUser -identity $username -replace @{employeeID="<not set>"}
Logwrite "Employee ID: Cleared!"
}
catch{
#Update Log Of Error
$errorcountforemail = $errorcountforemail + 1
logwrite "Employee ID:******* [FAILED] *******"
$errortest = $_
Write-Output $_
Out-File -FilePath $logfile2 -Append -InputObject "`n" -Encoding ascii -Width 50
Out-File -FilePath $logfile2 -Append -InputObject "Problem setting ad user for $username" -Encoding ascii -Width 50
Out-File -FilePath $logfile2 -Append -InputObject $_ -Encoding ascii -Width 50
Out-File -FilePath $logfile2 -Append -InputObject "`n" -Encoding ascii -Width 50
}
Это ошибка с именами, измененными в целях конфиденциальности.
*---------------------* Errors for: ############## *---------------------*
Problem setting ad user for ################
Set-ADUser : Insufficient access rights to
perform the operation
At C:\##################.ps1:199 char:13
+ Set-ADUser -identity
$user.DistinguishedName -replace @{ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified:
(#########################:ADUser)
[Set-ADUse r], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServe
r:8344,Microsoft.ActiveDirectory.Management.Com
mands.SetADUser
Вещи, которые я пробовал:
-запуск от имени администратора и с максимальными привилегиями.
-запуск скрипта в пакетном файле, который запускает его от имени администратора
-форсирование учетных данных следующим образом: Set-ADUser -identity $user.DistinguishedName -credentials $domaincredential -replace @{info="1"}
с учетными данными этого пользователя, потому что у него есть доступ для внесения этих изменений.
Есть предположения?
.ps1
, а затем попросив пользователя запустить файл.ps1
. Если так работает, то проблема явно в другом. - person Bill_Stewart   schedule 13.11.2019Import-Module activedirectory try{ Set-ADUser -Identity mdecarlo -Replace @{info="1"} } catch{ Write-Output $_ }
- person Matthew Decarlo   schedule 13.11.2019