#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, она создает файл. Скорее всего, объявление не позволяет менять пароль. Объявление не позволяет менять пароль, даже если я являюсь администратором домена.