PHP proc_open()适用于cmd.exe但不适用于powershell.exe

时间:2014-10-23 05:49:12

标签: php powershell cmd window

我正在尝试打开' powershell.exe' shell使用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";
}
?>

&#39; cmd.exe的工作输出&#39;,为什么它不能用于powershell.exe&#39;

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。有没有办法通过&#39; proc_open&#39;

来引用PHP中的子进程?

0 个答案:

没有答案