簡體   English   中英

Powershell,invoke-webrequest…和Zabbix

[英]Powershell, invoke-webrequest…and 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 = "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不包含“圖像”屬性,而“內容”表示我沒有連接:

$graph.Images.Count
0

$graph.Content
[...]
<span class="footer_sign">Not connected</span>

有人知道我做錯了嗎?

謝謝

所以我開始工作:我需要使用相同的sessionid為圖URL設置cookie:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM