Как правильно отображать подчеркнутые символы в результате 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("ééé")
у меня работает, забираю отсюда