Como executar o executável do site PHP como um usuário específico do Windows?
Por padrão, o PHP é executado sobIUSR conta. Quando executado diretamente:
$lastline = exec('D:\\MyProgram.exe', $output, $return_var);
Ele é executado, mas o programa não pode executar suas tarefas devido a privilégios insuficientes. Minha pergunta é:Como executo um executável em uma conta específica do Windows em um site PHP?
Eu tentei:Quando executado atravésSysinternals PsExec:
$lastline = exec('D:\\PsExec.exe -u UserName -p Password -accepteula "D:\\MyProgram.exe"', $output, $return_var);
MyProgram.exe nem sequer é executado. PHP lança saída vazia e return_var é-1073741502
. Presumo que isso seja algum tipo de exceção não tratada.
Quando executado atravéslsrunas:
$lastline = exec('D:\\lsrunas.exe /user:UserName /password:Password /domain:DOMAIN /command:"D:\\MyProgram.exe" /runpath:D:\\', $output, $return_var);
O MyProgram.exe também não é executado. PHP lança saída vazia e return_var é0
.
Microsoft incorporadorunas
O comando não funciona porque não aceita a senha como parâmetro.
Tentei usar diferentes funções PHP comoshell_exec
, system
epassthru
Tentei criar um novo pool de aplicativos no IIS para executar o site em LOCAL SERVICE, SYSTEM ou um usuário específico. Edição: Este é o lugar onde eu errei. Deverá funcionar, mas falhará quando a configuração Carregar perfil de usuário não estiver ativada (etapa 3 na minha resposta).
Alguém tem sugestões de trabalho?
Nota: Todos os comandos estão funcionando e testados diretamente pela linha de comando.