shell_exec()
을 사용하여 PHP로 실행되도록 설계된 PowerShell 스크립트를 만들었습니다.PHP로 실행하면 PowerShell 스크립트가 작동하지 않습니다
[System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
$process=Get-Process "cmd" | where {$_.mainWindowTitle -like "*FTB*"}
[Microsoft.VisualBasic.Interaction]::AppActivate($process.ID)
[System.Windows.Forms.SendKeys]::SendWait("whitelist reload{ENTER}")
그리고 PHP 실행 라인은 다음과 같습니다 :
파워 쉘 스크립트입니다
가$out = shell_exec("powershell C:\whitelist_reload.ps1");
echo ($out);
스크립트가 실행하고 나는 Echo
을 통해 반환 정보를 제공하고 있습니다. PS 스크립트의 Line 3에있는 Get-Process
값에 할당 된 $process
변수가 비어 있다고 말합니다. 문제는 PowerShell 실행 파일을 통해 수동으로 스크립트를 실행하면 스크립트가 완벽하게 실행되고 내가 원하는 것을 정확히 수행한다는 것입니다.
3 행이 PHP에 의해 실행될 때 아무것도 반환하지 않지만 PowerShell에서 실행될 때 완전히 작동하는 특별한 이유가 있습니까?
소리가 문제입니다. cmd 창을 먼저 시작한 다음 해당 창에서 일괄 처리를 통해 스크립트를 실행하는 등의 방법이 있는지 궁금합니다. –