Psexec отображает только первую строку через Jenkins

Я пытаюсь запустить удаленную команду с помощью psexec через Jenkins. Если я запустил команду напрямую через командную строку, я получу ожидаемый результат. Если я запускаю ту же самую команду через Jenkins, кажется, что выводится только первая строка.

Как я могу заставить Jenkins / PSExec / CMD отображать полный вывод stdout? Я пробовал несколько флагов командной строки, таких как запуск PSExec в интерактивном режиме (-i, -i 0, -i 1), и другие параметры, которые кажутся актуальными, и даже те, которые не подходят.

Пример команды:

PsExec.exe -accepteula \\server cmd /c ipconfig

Вывод командной строки:

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com



Windows IP Configuration


Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe30::f175:1634:asf4:756e%12
   IPv4 Address. . . . . . . . . . . : 10.128.51.66
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.128.51.1

Tunnel adapter isatap.{5EA7E8FB-C491-483E-B24D-3CBDFA2D5619}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter Local Area Connection* 11:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
cmd exited on tst-hrm-app03.nexjtest.local with error code 0.

Выход Jenkins:

C:\NexJ\jboss-5.1.0.GA\server\all_8280\jenkins\workspace\Build and Deploy TEST>PsExec.exe -accepteula \\server ipconfig

PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com


Windows IP Configuration

Connecting to tst-hrm-app03.nexjtest.local...


Starting PSEXESVC service on tst-hrm-app03.nexjtest.local...


Connecting with PsExec service on tst-hrm-app03.nexjtest.local...


Starting ipconfig on tst-hrm-app03.nexjtest.local...



ipconfig exited on tst-hrm-app03.nexjtest.local with error code 0.

Я только что тестировал Дженкинса, и у меня это сработало. Вы можете протестировать другие команды, более простые команды, такие как dir. Кроме того, Jenkins имеет тенденцию изменять порядок или stdout / stderr, поэтому я запустил службу PSEXESVC после того, как ipconfig распечатал вывод. И, кстати, если вы хотите получить IP-адрес, почему бы вам не пропинговать машину, используя ее имя (если вы не хотите получить все сетевые карты и MAC-адреса)   —  person leeman24    schedule 23.06.2016

См. также:  Как заставить команду echo отображать% date% и не печатать фактическую дату

На самом деле я использовал ipconfig как более простую команду. Фактическая команда будет вызовом сценария сборки и развертывания (который работает, но не отображает вывод). В итоге я использовал альтернативу под названием paexec (которая меня не волнует), но я могу видеть весь вывод. Я бы по-прежнему предпочел использовать psexec, но у меня не хватило вещей, чтобы попробовать. Какую версию вы используете?   —  person leeman24    schedule 24.06.2016

та же версия psexec, что и вы. Но, возможно, не та версия Дженкинса.   —  person leeman24    schedule 24.06.2016

Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. leeman24

    У меня была такая же проблема с psexec. Psexec записал список задач в текстовый файл. После того, как я попытался это прочитать. Но psexec читает только часть строк. Свою проблему я решил комбинацией команд.

    1. Записать в файл psexec \\remote_pc cmd /c tasklist /v /fi "imagename eq magentproc.exe" /fo list > C:\temp.txt

    2. Прочтите его с помощью findstr с параметром регулярного выражения
      psexec \\remote_pc cmd /c findstr /r ".*" C:\temp.txt

    Может кому будет полезно.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: