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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 248924
Url: https://administrator.de/forum/powershell-gui-write-error-to-outputbox-248924.html
Ausgedruckt am: 22.12.2024 um 10:12 Uhr
2 Kommentare
Neuester Kommentar
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