我想hostname
在远程机器CLIENT1上运行。如果我直接在命令中为主机名提供 UNC 路径,psexec
它可以正常工作,如下所示。
psexec \\CLIENT1 -e cmd /c hostname
CLIENT1
cmd exited on CLIENT1 with error code 0.
如果我选择使用@file参数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 中的行为。
显然,绝对不能引用包含主机名的文件的路径。这意味着您的主机名文件最好不要在路径中包含任何空格。我不确定这是否是有意的,但我确实浪费了很多时间来追查它。
坏的
好的
PsExec \@Filename.txt -s cmd -u 用户