Рейтинг:0

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

флаг ai

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

Как разрешить их правильное отображение?

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

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

Вызов скрипта на nsclient.ini

[/настройки/внешние скрипты/скрипты]
check_foo = cmd /c echo X:\scripts_\check-foo.ps1 -arg1 "$ARG1$" -arg2 "$ARG2$" -arg3 "$ARG3$"; выход($lastexitcode) | powershell.exe -команда -

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

КРИТИЧЕСКИЙ - Проверка échouée

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

# Спецификация UTF-8 (графический интерфейс пользователя)
CRITICAL – выбор изображения

# Спецификация UTF-8 (CLI)
КРИТИЧЕСКИЙ - V, Rification, Choue,

# UTF-8 (графический интерфейс)
CRITICAL - VǸrification ǸchoueǸ 

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

Archemar avatar
флаг mx
вы пытались закодировать его в `ISO8859-P1`,
donmelchior avatar
флаг ai
@Archemar: сценарий Powershell, закодированный с выходными данными ISO8859-1: КРИТИЧЕСКИЙ - V?rification?choue?
donmelchior avatar
флаг ai
Я также попытался добавить «encoding = utf8» в раздел [/settings/NRPE/server] файла конфигурации «nsclient.ini» для NSClient++, сохранив кодировку сценария Powershell в «UTF-8 NOM»: проблема остается.
Рейтинг:1
флаг cn

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

[/настройки/NRPE/сервер]
;кодировка = utf8

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

[Консоль]::OutputEncoding = [System.Text.Encoding]::UTF8

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

[Консоль]::WriteLine("РФ")

работает для меня забрать отсюда

Рейтинг:0
флаг cn

лучшее решение отключить кодировку utf8 в nsclient.ini, как указано выше

и измените свои сценарии упаковки ps1 в nsclient.ini

ps1=cmd /c echo Попробуйте {$OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8;scripts\%SCRIPT% -- %ARGS %; exit($lastexitcode)} Catch {echo $_.Exception.Message; выход 3} | powershell.exe -команда -

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.