"psexec cmd /c" не работает при использовании @file вместо \\CLIENT1
Я хотел бы бежать 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,
Я перепробовал каждую комбинацию цитат, о которой только мог придумать, но ничего не получилось. Это ошибка? Кто-нибудь может воспроизвести это поведение? Я использую psexec v2.2 в Windows 7 SP1 (как локальный, так и удаленный), но также видел поведение в 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`