Как правильно отображать подчеркнутые символы в результате check_nrpe на основе сценария Powershell?

У меня есть собственный сценарий Powershell, вызываемый Nagios с использованием «check_nrpe». В настоящее время все выходные сообщения результатов проверки со специальными символами, такими как «è», «é» или «à», не отображаются должным образом, когда результат проверки отображается в Nagios.

Как обеспечить их корректное отображение?

Проверить команду

      $USER1$/check_nrpe  -H server.tld -c check_foo -a 7 7 7  

Вызов сценария на nsclient.ini

      [/settings/external scripts/scripts]
check_foo = cmd /c echo X:\scripts_\check-foo.ps1 -arg1 "$ARG1$" -arg2 "$ARG2$" -arg3 "$ARG3$"; exit($lastexitcode) | powershell.exe -command -

Ожидаемый результат

      CRITICAL - Vérification échouée

Фактический результат

      # UTF-8 BOM (GUI)
CRITICAL - Vrification choue

# UTF-8 BOM (CLI)
CRITICAL - V,rification ,choue,

# UTF-8 (GUI)
CRITICAL - VǸrification ǸchoueǸ 

В настоящее время мой сценарий Powershell вызывается удаленно с помощью «check_nrpe» с компьютера мониторинга Linux CentOS 7 и NSClient++ на целевом сервере (Windows 2016 Server). Сам скрипт кодируется как «UTF-8 BOM».

1 ответ

отключите кодировку nsclient.ini utf8

      [/settings/NRPE/server]
;encoding = utf8

в вашем скрипте используйте

      [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

выведите результат с помощью: (вместо вывода записи или хоста записи)

      [Console]::WriteLine("ééé")

у меня работает, забираю отсюда

Другие вопросы по тегам