[英]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.