$uri = "https://${server}/api/${api_version}/xml"
$login_request = "<LoginRequest password ='$pwd' user-id = '$user' ></LoginRequest>"
$resp = Invoke-WebRequest -URI $uri -Body $login_request -ContentType 'text/xml' -Method post
[xml]$xmldata = $resp.content
if($xmldata.LoginResponse.success -eq '0'){
Write-Host 'ERROR: '$xmldata.LoginResponse.Failure.message -ForegroundColor Red
}
Else{
$SCRIPT:session_id = $xmldata.LoginResponse.'session-id'
Write-Host "Login Successful" -ForegroundColor Green
}
$disc_request = "<DiscoveryConnectionListingRequest session-id='$SCRIPT:session_id'/>"
$resp_disc = Invoke-WebRequest -URI $uri -Body $disc_request -ContentType 'text/xml' -Method post
[xml]$xmldata = $resp_disc.content
$xmldata.DiscoveryConnectionListingResponse.DiscoveryConnectionSummary
Das gibt etwa 30 davon:Umgang mit XML-Daten von WebRequest in Powershell
connection-status : Connected
id : 58
name : server1
engine-id : 59
connection-status : Disconnected
id : 57
name : server2
engine-id : 61
ich herauszufinden, eine echte harte Zeit, wie durch diese Daten zu gehen, und wenn eine der heraus 'Verbindungsstatus' ist 'getrennt'. Ich würde die gleiche Logik verwenden, um festzustellen, ob die Engine-ID 0 oder 1 ist. Kann mir hier jemand in die richtige Richtung zeigen?
starten: $ xmldata.'engine-id ' Ich erinnere mich nicht daran, dies für Bindestriche tun zu müssen, aber das sollte funktionieren. Wenn nicht, posten Sie bitte Ihren rohen Inhalt (Ergebnis von $ resp.rawcontent), damit wir einen Blick hinter die Kulissen werfen können. –
Sie meinen etwas wie '$ xmldata.DiscoveryConnectionListingResponse.DiscoveryConnectionSummary | Where-Objekt {$ _. Connection-status -eq "Getrennt"} – Hackerman