Плагин Jenkins PowerShell не может выполнить сценарий - "ОШИБКА: целевая система должна работать под 32-разрядной ОС",

Я пытаюсь запустить сценарий PowerShell с помощью плагина Jenkins PowerShell, и скрипт выдает следующую ошибку: "ОШИБКА: Целевая система должна работать под 32-разрядной ОС"

Ведомое устройство работает на сервере Windows 2008 R2, и сценарий работает хорошо локально и удаленно с моего рабочего стола Windows 7/x64, но он не будет запускаться через плагин. Я также пытался запустить его с помощью плагина командной строки Windows, и это тоже не сработало - то же сообщение об ошибке. Я сузил проблему и нашел строку, которая вызывает ошибку:

$results = openfiles /query /fo csv | Select-String $versionPath

Похоже, что команда OPENFILES вызывает проблему, и я думаю, что это потому, что Jenkins запускает версию PowerShell для x86, но я не уверен, что нужно сделать, чтобы она работала на правильной архитектуре процессора.

Любая помощь будет оценена.

1 ответ

Как я думал, Jenkins запускает задания, используя x86 версии CMD и PowerShell. Чтобы заставить их работать с использованием своих x64-версий, мне пришлось запустить ведомый с x64-версией Java.

Следующее решение появилось намного позже, но это лучший способ:

  1. Убедитесь, что на вашем сервере не установлены x86 версии Java. Если у вас установлены 32-битные версии Java, Jenkins slave будет использовать эти версии для выполнения ваших заданий. x64 версии Java можно загрузить здесь.
  2. Запустите x64 версию Internet Explorer на своем сервере и перейдите на страницу "Управление узлами" в Jenkins, чтобы установить ведомый сервер.
  3. Наконец - установите slave как службу Windows.

licensed under cc by-sa 3.0 with attribution.