2017-07-31 71 views
0

我得到错误32500-没有权限引用对象或它不存在。 我知道团队有问题。 连接:Powershell + Zabbix API

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 [email protected]{groupid="197"} 

     #"templates"[email protected]{"templateid"="14415"}; 

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

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

有谁知道问题是什么?

+0

我说,如果groupid是1,它是工作。当它具有两位数字时,它不会 – Damir

+1

请您将该文章作为答案发布,过了一段时间后将其标记为已接受:) –

+0

这真的不是答案。 – Richlv

回答

1

您的最终JSON应该双引号组ID。你生成JSON的方式显然不会。

+0

我试过groups = @ {“groupid”=“197”}但它没有。当我使用1位数的ID时,它可以工作... – Damir

+0

尝试调试它并打印出发送的原始JSON。小组ID在那里看起来如何? – Richlv

+0

类似这样的:\“groups \”:{\ r \ n \“groupid \”:\“197 \”\ r \ n} – Damir