tobiased
Goto Top

Unterdrückung einer Fehlermeldung

Hallo Community,

ich habe eine vermeintlich simple Frage, dennoch bekomme ich es einfach nicht hin. Ich habe ein kleines Script geschrieben welches wie folgt aussieht.

Invoke-RestMethod -Uri "https://example.com/rest/api/content/1234" -Method GET -Headers $Headers | Out-Null  
$check = $?
if ($check -like "False"){  
"false"  
}
else
{
"true"  
}

Dieses Script funktioniert auch so wie ich es möchte. Leider wird aber immer eine Fehlermeldung angezeigt, sollte der REST-Call fehlschlagen. Und genau diese Fehlermeldung möchte ich unterdrücken, sodass sie nicht mehr angezeigt wird.

PS: Wer eine elegantere Version meines Scrips anzubieten hat, immer gerne face-smile

Content-Key: 305202

Url: https://administrator.de/contentid/305202

Printed on: April 20, 2024 at 00:04 o'clock

Mitglied: 129413
Solution 129413 May 23, 2016 updated at 12:58:29 (UTC)
Goto Top
Ein try {} catch{} um das Konstrukt bauen oder den Request mit plain NET Objects HttpRequestObject nachbauen oder -ErrorAction Ignore benutzen wenn mindestens PS 3.0 vorhanden ist .

Was für eine Fehlermeldung ist das? Kannst du eine funktionsfähige URL liefern ?

Gruß skybird
Member: Tobiased
Tobiased May 23, 2016 at 13:09:36 (UTC)
Goto Top
Hallo skybird,

danke für deine schnelle Antwort. Die Fehlermeldung ist ein 404 Error vom Server, weil eben die Seite mit der ID 1234 nicht existiert. Zu deiner Lösung
-EA Ignore funktioniert bei mir nicht (PS 4.0), hatte zuvor auch schon -EA "SilentlyContinue" versucht. Try/Catch wollte ich erst nicht nehmen, da ich nicht beachtet habe, dass ich einfach die check Variable darüber definieren kann und danach die try/catch Anweisung sofort wieder verlassen kann. Also mit anderen Worten ich war einfach nur dumm face-smile

sei's drum ich danke dir jedenfalls
Member: SaschaRD
Solution SaschaRD May 24, 2016 at 09:44:09 (UTC)
Goto Top
Hallo @Tobiased,

kleiner Tipp zu deinem oben genannten Code:
$check = Invoke-RestMethod -Uri "https://example.com/rest/api/content/1234" -Method GET -Headers $Headers | Out-Null  
if (! $check){
Write-Host $check
}
Write-Host $check
Bei einer Prüfung auf den boolean true, einfach die Negation ! entfernen. Die Else Bedingung könntest Du dir auch sparen, wenn nichts weiter kommt. Dies spart Zeilen face-wink

Gruß, Sascha