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