Как запустить исполняемый файл с сайта PHP от имени конкретного пользователя Windows?
По умолчанию PHP работает подIUSR учетная запись. При непосредственном выполнении:
$lastline = exec('D:\\MyProgram.exe', $output, $return_var);
Он запускается, но программа не может выполнять свои задачи из-за недостаточных привилегий. Мой вопрос:Как запустить исполняемый файл под определенной учетной записью Windows с веб-сайта PHP?
Я пробовал:Когда выполняется черезSysinternals PsExec:
$lastline = exec('D:\\PsExec.exe -u UserName -p Password -accepteula "D:\\MyProgram.exe"', $output, $return_var);
MyProgram.exe даже не выполняется вообще. PHP выбрасывает пустой вывод и return_var-1073741502
, Я предполагаю, что это своего рода необработанное исключение.
Когда выполняется черезlsrunas:
$lastline = exec('D:\\lsrunas.exe /user:UserName /password:Password /domain:DOMAIN /command:"D:\\MyProgram.exe" /runpath:D:\\', $output, $return_var);
MyProgram.exe также не выполняется. PHP выбрасывает пустой вывод и return_var0
.
Встроенный в Microsoftrunas
Команда не работает, потому что она не принимает пароль в качестве параметра.
Пробовал использовать разные функции PHP, такие какshell_exec
, system
а такжеpassthru
Попытался создать новый пул приложений под IIS, чтобы запустить веб-сайт под локальным сервисом, системой или конкретным пользователем. РЕДАКТИРОВАТЬ: Это где я ошибся. Он должен работать, но не работает, если параметр «Загрузить профиль пользователя» не включен (шаг 3 в моем ответе).
У кого-нибудь есть рабочие предложения?
Примечание. Все команды работают и тестируются напрямую через командную строку.