Powershell GUI - Write-Error to Outputbox
Hallihallo,
meine GUI schreitet immer weiter voran und ich hänge jetzt an der Fehlerausgabe...
Ich möchte das wenn eine Aktion nicht ausgeführt worden ist weil z.B. kein Computername eingetragen wurde die Fehler in meiner OutputBox sehen...
Hier mal ein Beispiel der Abfrage:
Irgendwer einen nützlichen Hinweis?
Vielen Dank
meine GUI schreitet immer weiter voran und ich hänge jetzt an der Fehlerausgabe...
Ich möchte das wenn eine Aktion nicht ausgeführt worden ist weil z.B. kein Computername eingetragen wurde die Fehler in meiner OutputBox sehen...
Hier mal ein Beispiel der Abfrage:
#Funktion GPO
function GPO {
$wks=$InputBox.text; #takes the text from the input box into the variable $wks
$GPOResult=Invoke-Command -ComputerName $wks -ScriptBlock { Get-GPO -all } | fl | out-string;
$outputBox.text=$GPOResult #send the results to the output box
If ($outputBox.Text.Contains("PSComputerName")) {$ButtonGPO.BackColor = [System.Drawing.Color]::LightGreen}
Else {$ButtonGPO.BackColor = [System.Drawing.Color]::RED}
} #end
Irgendwer einen nützlichen Hinweis?
Vielen Dank
Please also mark the comments that contributed to the solution of the article
Content-ID: 248924
Url: https://administrator.de/contentid/248924
Printed on: December 5, 2024 at 22:12 o'clock
2 Comments
Latest comment
Hallo merlin,
das kannst du entweder über den allgemeinen Parameter -ErrorVariable machen der in fast jedem Befehl verfügbar ist, und dann den Inhalt an deine Textbox leiten.
Oder du baust um den Befehl ein Try ..Catch Konstrukt und fängst den Fehler im Catch ab und trägst die Meldung in deine Textbox ein.
Es gibt noch andere Methoden, z.B. die globale Variable $error - mehr dazu und eine Einführung in das Errorhandling mit Powershell kannst du hier nachlesen.
Grüße Uwe
das kannst du entweder über den allgemeinen Parameter -ErrorVariable machen der in fast jedem Befehl verfügbar ist, und dann den Inhalt an deine Textbox leiten.
Invoke-Command -ComputerName $wks ............. -ErrorVariable myErrorvar
if ($myErrorvar){
$deineTextbox.Text = $myErrorvar
}
Try {
Invoke-Command -ComputerName $wks ............. -ErrorAction Stop
} catch {
$deineTextbox.Text = $_.Exception.Message
}
Grüße Uwe