"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`