Jenkins / Psexec — Код ошибки 1 при попытке запустить пакетный файл на виртуальной машине

#batch-file #jenkins #psexec

#пакетный файл #дженкинс #psexec

Вопрос:

"C:TempPsToolsPsExec.exe" -accepteula -i \ukvc-miu29-12 -u DomainUsername -p Password "C:Testing1testing.bat"

Приведенный выше код — это то, что вводится в раздел Дженкинс: Сборка -> Выполнить пакетную команду Windows.

`C:Testing1testing.bat завершилось на ukvc-miu29-12 с кодом ошибки 1.

C:Program Files (x86) Jenkins jobs Run comparison script workspace> завершите 1 этап сборки ‘Выполнить пакетную команду Windows’, помеченную как завершенная ошибка: СБОЙ`

В основном пытаюсь получить доступ к пакетному файлу на моей виртуальной машине с помощью инструмента Psexec и запустить его там самостоятельно.

Приветствуется любая помощь, и мы быстро ответим на любые предложения, спасибо!

Ответ №1:

Я не знаком с аргументом -i там, но я думаю, что вам не хватает -W аргумента здесь-

Попробуйте это:

 "C:TempPsToolsPsExec -u USERNAME -p PASSWORD -w "C:Testing1testing.bat"
  

Также вам может оказаться полезной эта ссылка:http://ss64.com/nt/psexec.html

Комментарии:

1. Пробовал это, все еще получаю ошибку 1, я не могу понять, почему: (

2. 🙁 — извините, я хотел бы вам помочь — но код 1 — это код возврата, потому что ваш psexec не удался — поэтому я бы попробовал просто запустить этот скрипт с вашего хост-компьютера Jenkins из командной строки и посмотреть, какие другие выходные данные вы видите и на что он жалуется … обновите, если у вас есть дополнительная информация.

3. Итак, наконец-то разобрался с причинами сбоя PSEXEC у меня (по крайней мере, я так думаю, видя, как он возвращает мне 0 вместо 1), я не полностью указал путь к пакетному файлу, который я хотел запустить. Следующее, кажется, сделало свое дело за меня: "C:TempPSToolsPsExec.exe" -accepteula \ukvc-miu29-12 cmd /c "\ukvc-miu29-12c$Jenkinstest.bat" Однако теперь, похоже, что, хотя это, кажется, прошло успешно, ничего не произошло. :/

4. Хорошо, да, как и предполагалось, ошибка psexec 🙂 — звучит как прогресс — теперь попробуйте и проверьте файл bat, запустите его самостоятельно и посмотрите, случайно ли вы либо ничего не выводите из этого, либо используете вывод из psexec …. обычно ‘ECHO ON’ в начале пакетного файла должно выдавать некоторый вывод…

5. Таким образом, запуск пакетного файла сам по себе работает на удаленной машине. Для запуска требуется около 20 секунд. Проблема в том, что когда я запускаю пакетный файл через cmd, он заполняет мою папку logs текстовым файлом, но выполнение этого через Jenkins не приводит к такому же поведению. добавление echo в начале моего пакетного файла просто выводит строку кода в пакетном файле (дженкинс, похоже, не придирается к этому). Возможно, это как-то связано с отсутствием ожидания ответа, из-за которого ничего не происходит. Изучу различные параметры и посмотрю, изменит ли добавление какого-либо из них ситуацию.