Powershell,调用webrequest…和Zabbix

Powershell,调用webrequest…和Zabbix,powershell,zabbix,Powershell,Zabbix,我正在尝试使用powershell自动创建报告工具。我需要获得Zabbix(v1.8)图形图像。由于还不可能通过API实现,我必须连接到URL,然后获取图形 这是我的代码: $zabbixLoginUrl = "http://zabfront-eqx.noc.lan/zabbix/index.php?login=1" $zabbixGraphUrl = "http://zabfront-eqx.noc.lan/zabbix/chart2.php?graphid=" $userName = "us

我正在尝试使用powershell自动创建报告工具。我需要获得Zabbix(v1.8)图形图像。由于还不可能通过API实现,我必须连接到URL,然后获取图形

这是我的代码:

$zabbixLoginUrl = "http://zabfront-eqx.noc.lan/zabbix/index.php?login=1"
$zabbixGraphUrl = "http://zabfront-eqx.noc.lan/zabbix/chart2.php?graphid="
$userName = "username"
$userPwd = "pwd"

$loginPostData = @{name=$userName;password=$userPwd;enter="Enter"}
$login = Invoke-WebRequest -Uri $zabbixLoginUrl -Method Post -Body $loginPostData -SessionVariable sessionZabbix

#let's see if we have a cookie set
if ($sessionZabbix.Cookies.Count -eq 0) {
    Write-Host "fail to connect"
    break
}
else {Write-Host "connected"}


#now let's retrieve the graph #4433 using the priviously established session
$graph = Invoke-WebRequest -Uri ($zabbixGraphUrl+"4433") -WebSession $sessionZabbix
我可以连接并获取cookie:

$sessionZabbix.Cookies.GetCookies("http://zabfront-eqx.noc.lan/zabbix/index.php") | select name, value

    Name                                                                                Value                                                                              
    ----                                                                                -----                                                                              
    zbx_sessionid                                                                       b2451e6c7fd0767dec22cca46427b7c2                                                   
不幸的是,$graph不包含“image”属性,“content”id表示我没有连接:

$graph.Images.Count
0

$graph.Content
[...]
<span class="footer_sign">Not connected</span>
$graph.Images.Count
0
$graph.Content
[...]
不相连
有人知道我做错了什么吗

谢谢

所以我让它开始工作了: 我需要使用相同的sessionid为图形URL设置cookie:

$sessionZabbix.Cookies.SetCookies("http://zabfront-eqx.noc.lan/zabbix/chart2.php", $sessionZabbix.Cookies.GetCookieHeader($zabbixLoginUrl))

所以,我打开Wireshark广告,很明显GET请求中的cookie部分丢失了。。。我不明白…等等,可能是因为我没有使用相同的url(/zabbix/index.php vs/zabbix/charts2.php),所以item.path属性不匹配?但是,我如何在/zabbix/charts2.php url上使用cookie呢??