我正在尝试使用带有 powershell 的 Zabbix API 来自动化一些监控内容。我想根据传递给我的函数的不同参数检索“项目”以执行类似的操作:如果传递了 -itemDescription 参数,则查找此描述和/或参数 -host 是否传递给该主机的限制范围等。 ..你可以在这里找到方法描述:https ://www.zabbix.com/documentation/1.8/api/item/get
这是一个正确的要求:
{
"jsonrpc":"2.0",
"method":"item.get",
"params":{
"output":"shorten",
"search": {"description": "apache"},
"limit": 10
},
"auth":"6f38cddc44cfbb6c1bd186f9a220b5a0",
"id":2
}
所以,我知道如何添加几个“参数”,我是为 host.create 方法做的,像这样:
$proxy = @{"proxyid" = "$proxyID"}
$templates = @{"templateid" = "$templateID"}
$groups = @{"groupid" = "$hostGroupID"}
...
Add-Member -PassThru NoteProperty params @ {host=“$hostName”;dns="$hostFQDN";groups=$groups;templates=$templates;proxy_hostid=$proxyID} |
...
然而,我不知道如何使它有条件。我找不到在该行中间添加“if”语句的正确语法。就像是 :
Add-Member -PassThru NoteProperty params @{output="extend";if(itemDescription) {search=$desctiption} } )
非常感谢你们!
另外,请原谅我的英语,这不是我的第一语言