Zabbix服务器“操作”尝试触发Host Agent Powershell-无法运行

时间:2020-05-27 21:01:20

标签: powershell zabbix

我在代理配置文件中定义了一些自定义用户参数。这些参数正在调用我创建的Windows Powershell脚本。

Zabbix服务器:4.4.0

代理:4.4.5(在Windows Server 2016数据中心上运行)

配置文件中的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]

我认为这可能是“脚本”子文件夹上的权限问题,但“系统”用户对子文件夹和脚本文件本身拥有完全控制权。

1)我可以直接在主机上(在Powershell提示符下)运行PS脚本-没问题。 (不过,通过RDP登录到主机-使用与“系统”不同的帐户。)

2)我可以通过“ zabbix_get”使用Zabbix代理来触发此密钥,并通过在本地计算机上运行的PS命令外壳来触发PS脚本-没问题。 (使用与测试1中相同的帐户,通过RDP登录到主机。)

3)服务器端触发的“操作”,使用相同的键:调用主机的代理程序,无法运行脚本,但是触发脚本的尝试确实显示在主机上的本地代理程序日志中。

当从服务器操作中调用该Key时,代理和PS脚本引擎之间显然存在一些断开连接。

是否可能是Powershell配置问题?脚本上的一些标志或设置? (我以为我已经检查了这些,并且它们还可以,但是也许我缺少另一种。)

已检查:

•Get-ExecutionPolicy

•取消阻止文件

有人对检查或调查的内容有一些提示吗?

谢谢。

0 个答案:

没有答案