我想hostname
在远程机器上运行客户1。如果我在命令中直接提供带有 UNC 路径的主机名,psexec
它就可以正常工作,如下所示。
psexec \\CLIENT1 -e cmd /c hostname
CLIENT1
cmd exited on CLIENT1 with error code 0.
如果我选择使用@文件参数psexec
传入带有主机名的文本文件,它不会运行命令hostname
。它只是将我放在cmd
远程计算机上并停止执行。
psexec @"c:\temp\hostname.txt" -e cmd /c hostname
我可以手动运行hostname
,但这不是我想要的。我要么必须这样做,exit
要么Ctrl-C
。
我尝试了所有能想到的引号组合,但都没有奏效。这是错误吗?有人能重现这种行为吗?我在 Windows 7 SP1(本地和远程)上运行 psexec v2.2,但也在 psexec v2.11 中看到了这种行为。
答案1
显然,包含主机名的文件路径绝对不能用引号引起来。这意味着您的主机名文件路径中最好不要有任何空格。我不确定这是否是故意的,但我确实花了很多时间去追查它。
坏的
psexec @"c:\temp\hostname.txt" -e cmd /c hostname
psexec @"hostname.txt" -e cmd /c hostname
好的
psexec @c:\temp\hostname.txt -e cmd /c hostname
psexec @hostname.txt -e cmd /c hostname
psexec @..\..\..\Temp\hostname.txt cmd /c hostname
psexec @\Temp\hostname.txt`
答案2
PsExec \@Filename.txt -s cmd -u 用户