У меня есть несколько пользовательских параметров, определенных в моем файле конфигурации агента. Эти параметры вызывают Windows сценарии Powershell, которые я создал.
Zabbix Server: 4.4.0
Агент: 4.4.5 (работает на Windows Server 2016 Datacenter)
Пример UserParameter в файле конфигурации:
UserParameter=test.testParams_ps,powershell -noninteractive "C:\Program Files\Zabbix Agent\scripts\Testing\testParams3.ps1"
Когда я активирую Userparameter вручную, вот результаты журнала:
> zabbix_get -s 127.0.0.1 -k test.testParams_ps
...
Requested [test.testParams_ps]
EXECUTE_STR() command:'powershell -noninteractive -file "C:\Program Files\Zabbix Agent\scripts\Testing\testParams.ps1"' len:54 cmd_result:'Executing PS script '
Sending back [Executing PS script from source = Zabbix server action]
Однако, когда я запускаю «Действие» на сервер Zabbix, который, в свою очередь, вызывает удаленный агент на этом хосте, скрипт Powershell фактически не запускается. Вот что содержит журнал:
Requested [system.run[\Program Files\Zabbix Agent\zabbix_get -s 127.0.0.1 -p 10050 -k test.testParams_ps,nowait]]
Executing command '\Program Files\Zabbix Agent\zabbix_get -s 127.0.0.1 -p 10050 -k test.testParams_ps'
zbx_execute_nowait(): executing [cmd /C "\Program Files\Zabbix Agent\zabbix_get -s 127.0.0.1 -p 10050 -k test.testParams_ps"]
Sending back [1]
Я подумал, что это может быть проблема с правами доступа к подпапке "scripts", но пользователь "System" имеет полный контроль над подпапками и сценарием. сами файлы.
1) Я могу запустить сценарий PS прямо на хосте (в командной строке Powershell) - никаких проблем. (Авторизовался на хосте через RDP - правда, используя другую учетную запись, чем «Система».)
2) Я могу использовать Zabbix Agent через «zabbix_get», чтобы активировать этот ключ и скрипт PS, через командную оболочку PS, запущенную на локальной машине - никаких проблем. (Выполнен вход через RDP на Хост, используя ту же учетную запись, что и в тесте 1.)
3) Запускаемое на стороне сервера «Действие», которое вызывает агент хоста с использованием того же ключа: не удается запустить сценарий, но попытка запустить сценарий ДЕЙСТВИТЕЛЬНО отображается в журнале локального агента на хосте.
Очевидно, существует некоторая разорванность между агентом и механизмом сценария PS, когда этот ключ вызывается из действия сервера.
Возможно ли, что это проблема конфигурации Powershell? Какой-то флаг или настройка на скриптах? (Я думал, что проверил их, и они в порядке, но, возможно, есть другой, который мне не хватает.)
Проверено:
• Get-ExecutionPolicy
• Unblock-файл
Есть ли у кого-нибудь подсказки, что проверить или исследовать?
Спасибо.