Сценарий Powershell работает в Server 2016, если я запускаю его вручную, но он не работает, когда я пытаюсь запустить его с помощью команды php

#php #powershell #csv #active-directory #windows-server-2016

Вопрос:

Всем привет, у меня есть файл ps1 о сбросе пароля из AD.Он работает в Servr 2016 , если я запускаю его вручную, но он не работает, когда я пытаюсь запустить его с помощью команды php. Я делюсь файлом php, ps1, csv. Вы можете мне помочь ?

index.php=>

 function powershellpasswordreset(){
  $output2 = Shell_Exec ('powershell.exe -executionpolicy bypass -NoProfile -Command "C:wwwpasswordreset.ps1"'); }
 

пароль.ps1=>

 Import-Module ActiveDirectory --Set-ExecutionPolicy RemoteSigned
$csv = import-csv C:wwwPasswordReset.csv
$csv | ForEach-Object {
$SecPaswd= ConvertTo-SecureString –String $.newpassword –AsPlainText –Force -- 
Set-ADAccountPassword Reset -NewPassword $SecPaswd 
–Identity $.samaccountname -- Set-ADUser
–Identity $_.samaccountname –ChangePasswordAtLogon $false -- }
exit
 

Пароль.csv =>

 samaccountname,newpassword
test,3432*Test'
 

Комментарии:

1. Какие-нибудь сообщения об ошибках? Не забывайте, что PHP, выполняемый через веб-приложение, работает под учетной записью пользователя, отличной от вашей личной учетной записи, и может иметь другие привилегии. Я ожидал бы, что для сброса пароля для рекламы потребуется привилегированная учетная запись

2. у меня нет никаких сообщений об ошибках. Я запускаю его с учетными записями администратора домена. Когда я пишу команду для создания нового текстового файла в файле ps1 и запускаю ее с php, она создает файл. Скорее всего, объявление не позволяет менять пароль. Объявление не позволяет менять пароль, даже если я являюсь администратором домена.