PHP proc_open () работает для cmd.exe, но не powershell.exe

Я пытаюсь открыть оболочку powershell.exe с помощью proc_open. Страница интернета продолжает загружаться. Однако это работает для оболочки ‘cmd.exe’. Я не понимаю, какая разница.

Вот мой код

<?php
$descriptorspec = array(
0 => array("pipe", "r"),  // stdin
1 => array("pipe", "w"),  // stdout
2 => array("file", "error.txt", "a") // stderr
);

$process = proc_open("powershell.exe", $descriptorspec, $pipes);

if (is_resource($process)) {
fwrite($pipes[0], "hostname \n");
fclose($pipes[0]);

echo( '<pre>' );
echo stream_get_contents($pipes[1]);
echo( '</pre>' );
fclose($pipes[1]);

$return_value = proc_close($process);
echo "command returned $return_value\n";
}
?>

Рабочий вывод для ‘cmd.exe’, почему он не будет работать для ‘powershell.exe’

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\wamp\bin\apache\Apache2.2.17>hostname
GOKPRAVE-WS01

C:\wamp\bin\apache\Apache2.2.17>
command returned 0

РЕДАКТИРОВАТЬ 1
После просмотра диспетчера задач я понимаю, что powershell.exe создает cmd.exe в фоновом режиме. Есть ли способ, которым я могу получить ссылку на дочерние процессы в PHP через ‘proc_open’

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]