使用 @file 而不是 \\CLIENT1 时,“psexec cmd /c”不起作用

使用 @file 而不是 \\CLIENT1 时,“psexec cmd /c”不起作用

我想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 用户

相关内容