PSExec 找不到 explorer.exe?

PSExec 找不到 explorer.exe?

我对 PSExec 的了解已经达到了极限;我正在使用一个软件堆栈,该堆栈使用它来启动远程机器上的一些批处理文件和 perl 脚本,但其中一台机器出了问题,我们不确定该尝试什么。我得到了以下信息:

PsExec 无法在 [计算机名称已删除] 上启动 explorer.exe:

该系统找不到指定的文件。

运行以下命令时:

psexec -i -u [用户名已删除] -p [密码已删除] \[机器名称已删除] explorer.exe C:\TestAutomation\RunScript.pl

该命令在其他机器上有效,因此这是机器问题,几乎可以肯定是目标机器的问题(因为我可以针对另一台机器运行相同的命令,并且它运行正常)。如果我远程桌面进入目标机器,我可以运行以下命令:

explorer.exe C:\TestAutomation\RunScript.pl

并且它运行正常。我已将 C:\Windows 共享为 ADMIN$。如果我远程桌面进入机器,我会得到“管道另一端没有进程”,这似乎是 PSExec 不理解 RDP 的常见问题;但是,如果我先运行 net use 命令(这是我们的正常软件堆栈所做的),我又会得到上述错误。

在故障排除过程中我该继续什么步骤?

预计到达时间:

C:>psexec -i -u [用户名已删除] -p [密码已删除] \[机器名称已删除] C:\Windows\explorer.exe C:\TestAutomation\RunScript.pl

有完全相同的结果(找不到文件)

C:>psexec -i -u [用户名已删除] -p [密码已删除] \[计算机名称已删除] ping [第二台计算机名称已删除]

工作正常。

C:>psexec -i -u [用户名已删除] -p [密码已删除] \[机器名称已删除] C:\Windows\explorer C:\TestAutomation\RunScript.pl

让我

PsExec 无法在 [计算机名称已删除] 上启动 C:\Windows\explorer:

拒绝访问。

尽管

C:>psexec -i -u [用户名已删除] -p [密码已删除] \[机器名称已删除] explorer C:\TestAutomation\RunScript.pl

让我

PsExec 无法在 [计算机名称已删除] 上启动资源管理器:

该系统找不到指定的文件。

所以我想知道我是否没有多个问题?路径问题和访问问题?我使用的用户名是远程计算机上的管理员。

答案1

psexec 不会在目标计算机 PATH 变量中搜索可执行文件。并且(如果我错了请纠正我)据我所知我没有解析环境变量。

因此您只需指定要运行的文件的完整路径。在您的例子中,使用

C:\Windows\explorer.exe

代替

explorer.exe

类似于 techie007s 的示例,但没有 %windir% (system32 也是错误的):

psexec -i -u [username redacted] -p [password redacted] \[machine name redacted] C:\Windows\explorer.exe C:\TestAutomation\RunScript.pl

答案2

这是权限问题。我检查了 C:\Windows 上的权限六次,但最后我检查了 C:\Windows\explorer.exe 上的权限,发现它们不同。添加组“Everyone”并赋予“完全控制”权限后,PsExec 就可以正常运行。尽管出现了针对权限问题的特定错误消息,但出于某些未知原因,PsExec 决定在此实例中使用未找到的文件。

相关内容