首页 > 解决方案 > 使用 PHP 的 exec 函数调用 PSExec 时“句柄无效”

问题描述

好吧,我已经阅读了所有论坛和其他 SO 帖子,但无济于事。为此我一直把头撞在墙上。我有一个非常小的 PHP 页面,如下所示:

 <?php
    exec('PsExec.exe -accepteula \\\\192.168.10.11 -u "administrator" -p "Ph0nYP@sSw0rd" hostname', $output, $returnVar);   
    print_r($output);
    print_r('Return value is: ' . $returnVar);
?>

它应该只是hostname在 192.168.10.11 上执行命令。我使用执行页面,php.exe mypage.php但这总是导致以下结果:

Couldn't access 192.168.10.11:
The handle is invalid.
Connecting to 192.168.10.11...
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

所以我知道该帐户可以访问信誉良好,并且PSExec 正在工作。似乎一旦我将它包装在一个 php 页面中,就会出现问题。“句柄无效”在这里是什么意思?我还能做些什么来排除故障或解决它?我的目标是最终在目标框上执行一个 powershell 脚本,该脚本将在对页面的 POST 请求中使用参数。虽然我还没有接受我目前的方法,但我仍然很好奇它为什么会失败。

标签: phppsexecsysinternals

解决方案


推荐阅读