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

PsExec \@Filename.txt -s cmd -u пользователь

Другие вопросы по тегам