or10n
@or10n

Ексепшен из PowerShell в PHP

Добрый день,

Подкажите как перехватить в PHP ексепшн из PowerShell:

c:\rest>%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -File C:\rest\Scripts\check-deploy.ps1
требуется имя хоста
At C:\rest\Scripts\check-deploy.ps1:3 char:24
+ $hostName = $(throw <<<< "требуется имя хоста"),
+ CategoryInfo : OperationStopped: (требуется имя хоста:String) [
], RuntimeException
+ FullyQualifiedErrorId : требуется имя хоста
  • Вопрос задан
  • 3248 просмотров
Пригласить эксперта
Ответы на вопрос 3
Пропарсить ответ.
Ответ написан
Комментировать
or10n
@or10n Автор вопроса
я запускаю из PHP командой system('%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -File C:\rest\Scripts\check-deploy.ps1') (пытался и exec, и shell_exec), но powershell-скрипт просто остается висеть в процессах, и из-за этого php-скрипт ждет и умирает по таймауту.
Ответ написан
Комментировать
or10n
@or10n Автор вопроса
пока проблему решил форком через exec(«psexec check-deploy-runner.bat ». microtime()). (psexec создает корректный форк, который отсоединяется от Php-скрипта.
В bat-файле у меня: "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -File C:\rest\Scripts\check-deploy.ps1 > %1.log" (%1 — первый параметр который передан бат-скрипту и который создает лог-файл)
Потом я парсю log-файл для поиска ответа.

Решение очень костылявое, но это единственное что я смог запустить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы