Запуск команды PowerShell из PHP для выполнения HTA ​​с аргументами - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть команда Powershell, которую я могу запустить нормально, и она будет запускать приложение HTA на удаленном сервере, если я запускаю его с powershell, он работает с 0 проблемами.Когда я пытаюсь вызвать ту же команду через shell_exec в php, приложение запускается, как я вижу, в интерактивном режиме, но аргументы передаются без кавычек, которые hta не распознает.Мне нужна помощь, чтобы выяснить, как передать кавычки вокруг переменных.

Также у меня вставлено -NoExit для устранения неполадок, поэтому окно PowerShell не закрывается.

Еще одно примечание, когда я выхожу на экран $runCMD2; Оно отлично отформатировано, как будто я собираюсь скопироватьи вставьте его в окно powershell

Следующий код PHP запускает окно, но не передает 2 аргумента:


    function buildPackage()
                    {
                        $serverName = "\\\\server";
                        $msiName = '"MSI_test_name_goes_here"';
                        $installDir = '"D:\\some\\needed\\path\\"';

                        $runCMD2 = 'start powershell.exe -NoExit psexec -accepteula -s -i 2 '.$serverName.' cmd /c D:\path\to\my.hta '.$msiName.' '.$installDir;
                        echo $runCMD2;
                        $execCMD = shell_exec("$runCMD2");
                        //Begin Building
                        echo "Starting Build...<br>";
                        echo $execCMD;
                        echo "Build Complete";

                    }

1 Ответ

0 голосов
/ 19 сентября 2019

Ответ был таков: мне нужно было добавить 8 цитат на каждой стороне как таковой!Полностью нашел ответ после публикации этого вопроса.


$msiName = '"""""""""MSI_test_name_goes_here"""""""""';
$installDir = '"""""""""D:\\some\\needed\\path\\"""""""""';
...