繁体   English   中英

Powershell + Zabbix API

[英]Powershell + Zabbix API

我收到错误32500-没有对引用对象的权限,或者它不存在。 我知道小组有问题。 连接:

if(!$credential){
    $credential = Get-Credential
}
$baseurl = 'http://zabbix'
$params = @{
    body =  @{
        "jsonrpc"= "2.0"
        "method"= "user.login"
        "params"= @{
            "user"= $credential.UserName
            "password"= $credential.GetNetworkCredential().Password
        }
        "id"= 1
        "auth"= $null
    } | ConvertTo-Json
    uri = "$baseurl/api_jsonrpc.php"
    headers = @{"Content-Type" = "application/json"}
    method = "Post"
}
$result = Invoke-WebRequest @params

主机创建:

$params.body = @{
    jsonrpc= "2.0"
    method= "host.create"
    params= @{
        host = "host";
        interfaces = @{type = 1;main=1;useip=1;ip="10.10.0.0";dns= "";port="10050"};
        groups =@{groupid="197"}

        #"templates"=@{"templateid"="14415"};

    }
    auth = ($result.Content | ConvertFrom-Json).result
    id = 2
} | ConvertTo-Json

$result = Invoke-WebRequest @params
$result = $result.Content | ConvertFrom-Json
$result | fl

有人知道问题出在哪里吗?

您的最终JSON应该在组ID中加上双引号。 生成JSON的方式显然无法做到这一点。

尝试这个

$groups = @()
$groups += @{"groupid"="64"}
$groups += @{"groupid"="5"}

$params.body = 
@{
    "jsonrpc" = "2.0"
    "method" = "host.create"
    "params" = @{
        "host" = "Linux server"
        "interfaces" = @{
                "type"= 1
                "main"= 1
                "useip"= 1
                "ip"= "192.168.3.1"
                "dns"= ""
                "port"= "10050"
            }
        "groups" =  $groups
        }
     "auth" = $Tocken
     "id" = 1} | ConvertTo-Json -Depth 20

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM