psExec 没有路径

psExec 没有路径

我有一个全新的 Windows 2008 服务器(64 位),使用 nant 和 psExec 的远程部署脚本的行为与在旧服务器上不同。

这有效:psExec \\newserver.myco.com cmd
这成功运行了 Nant:psexec \\newserver.myco.com "C:\Program Files (x86)\Nant\Nant.exe"
好的,它没有对 nant 执行任何有意义的操作,但它显示 nant.exe 确实运行了。
但这没有运行:
psexec \\newserver.myco.com Nant
psexec \\newserver.myco.com Nant.exe
psexec \\newserver.myco.com "Nant.exe"

我得到:

PsExec could not start Nant.exe on newserver.myco.com :  
The system cannot find the file specified.

这在运行 Server 2003 的其他服务器上运行良好,也是 64 位。

我可以验证 Nant 是否位于 newServer 上的路径上:

C:\>path  
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;"C:\Program Files (x86)\nant" 

如果我在该机器的命令窗口中输入“nant”,则会得到 nant 的输出。即使我通过 进入,路径和 nant 也是存在的并且是正确的psexec cmd

2008 上的 psexec 路径怎么了?

答案1

查看进程监视器结果,发现文件路径已损坏,因此路径变量已混乱。从“C:\Program Files(x86)\nant”中删除双引号,如果您查看一个结果,会发现引号已直接嵌入到文件路径中。

PATH 变量中不需要双引号,而是用分号而不是空格来标记内容的位置。

我不知道您是否必须添加尾随反斜杠 (C:\Program Files(x86)\nant\ ),请两种方式都尝试一下。

我非常喜欢 sysinternals

答案2

可以尝试:

-i 运行程序,使其与远程系统上指定会话的桌面交互。如果未指定会话,则进程在控制台会话中运行。

-w 设置进程的工作目录(相对于远程计算机)。

请告诉我,-Mathew

答案3

谢谢马修。

-i 不起作用,指定工作目录也不起作用。请记住,可执行文件正在到达远程计算机,并且正在安装服务!它只是找不到路径。

但是当我想到这一点时,psexec 过去会推送到 system32 路径,然后他们将其更改为推送到 windows 路径。嗯... 也许它在错误的地方寻找自己?

鲍勃

相关内容