我正在使用 PowerShell 通过 API 从网络监视器中提取“关闭设备”数据
我正在努力解决如何引用主机名值以将其添加到变量中。我在寻找停机设备的主机名列表。
在这种情况下,只有一台主机,但很明显,可以有多台具有不同 ID 的主机。
$user = 'user'
$pass = 'password'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
$webData = Invoke-RestMethod -Method Get -Uri 'http://fqdn/api/v0/devices/?status=0' -ContentType application/json -Headers $Headers # -OutFile c:\data\Config.html
#$webData= $webData | ConvertTo-Json
$webData | ForEach-Object {$_.devices} | Select -Property $_.hostname
来自 Powershell 的结果数据
201
---
@{device_id=201; poller_id=0; hostname=lonts01.local; sysName=lonts01.local; snmp_authname=;
不带 -ContentType 的 $webData 直接输出
{"status":"ok","count":3,"devices":{"201":{"device_id":"201","poller_id":"0","hostname":"lonts01.local","sysName":"lonts01.local",...