Назад | Перейти на главную страницу

«Psexec cmd / c» не работает при использовании @file вместо \\ CLIENT1

Я бы хотел бежать 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.

Я перепробовал все возможные комбинации цитат, но ничего не помогло. Это ошибка? Может ли кто-нибудь воспроизвести такое поведение? Я запускаю psexec v2.2 в Windows 7 SP1 (как локальный, так и удаленный), но также видел поведение в psexec v2.11.

Очевидно, путь к файлу, содержащему имена хостов, не может быть указан. Это означает, что в вашем файле имен хостов лучше не иметь пробелов в пути. Я не уверен, задумано это или нет, но я определенно потерял много времени, преследуя это.

ПЛОХОЙ

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 пользователь