Использование PSEXEC не возвращает результат удаленной задачи.

Я использую psexec для запуска exe на сервере. Команда работает нормально, но на моей локальной консоли нет вывода.

Это команда, которую я использую:

psexec.exe \\my-machine ping localhost

что приводит к:

PsExec v1.94 - Execute processes remotely
Copyright (C) 2001-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

ping exited with error code 0.

если я попытаюсь запустить эту локальную версию, она будет работать нормально

psexec.exe \\localhost ping localhost

PsExec v1.94 - Execute processes remotely
Copyright (C) 2001-2008 Mark Russinovich
Sysinternals - www.sysinternals.com



Pinging my-machine.mydomain.com [1.1.1.1] with 32 bytes of data:

Reply from 1.1.1.1: bytes=32 time=2ms TTL=128
Reply from 1.1.1.1: bytes=32 time<1ms TTL=128
Reply from 1.1.1.1: bytes=32 time<1ms TTL=128
Reply from 1.1.1.1: bytes=32 time<1ms TTL=128

Ping statistics for 1.1.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 2ms, Average = 0ms
ping exited on localhost with error code 0.

person Derek Ekins    schedule 03.08.2009    source источник


Ответы (2)


Оказывается (по крайней мере, в этом случае) вам нужно использовать полное имя машины при запуске psexec. Я не понял, почему это так, но это помогает.

psexec.exe \\my-machine.mydomain.com ping localhost

и теперь возвращается весь вывод команды.

person Derek Ekins    schedule 03.08.2009
comment
это не работает для меня. Пробовал и с fqn и без. Есть ли какой-либо другой инструмент, отличный от psexec.exe - person Maverick; 10.01.2013
comment
5 лет спустя, я думаю, все изменится, хотя вы могли бы подумать, что MS будет поддерживать обратную совместимость :-) - person Derek Ekins; 12.03.2014

Я уже дал три варианта решения вашей проблемы, проверьте этот URL.

Это скопирует файл iname.bat в удаленную систему, выполнит его и сохранит результат в файле success.txt внутри каталога локального компьютера, в котором мы запускаем PSexec.

PsExec.exe \remote_ip -u Administrator -p test@123 -c -f "iname.bat">success.txt

это запустит test.bat на удаленной машине и сделает Success.txt на удаленной машине

PsExec.exe \remote_ip -u Administrator -p test@123 -i cmd /C "C:\abhi\test.bat > C:\abhi\success.txt"

это запустит test.bat на удаленной машине и сделает Success.txt на локальной машине

PsExec.exe \remote_ip -u Administrator -p test@123 cmd /C "C:\abhi\test.bat">success.txt

если вы хотите увидеть вывод, удалите перенаправление

PsExec.exe \remote_ip -u Administrator -p test@123 -c -f "iname.bat"

PsExec.exe \remote_ip -u Administrator -p test@123 -i cmd /C "C:\abhi\test.bat

person abhishek Singh    schedule 03.07.2018
comment
Да, я думаю, что 9 лет назад, когда я задал этот вопрос, мы делали что-то похожее. это просто отстой, что вы должны обойти это так. Хотя в моем случае я обнаружил, что использование полного доменного имени помогло. - person Derek Ekins; 03.07.2018