Abfangen von Fehlern in Workflows

Ich habe das Spiel mit PowerShell Workflows in PS 3.0 RC, und so weit, ich bin in der Liebe. Es gibt jedoch viele Einschränkungen auf die Arten von Dinge, die Sie können und können nicht innerhalb von workflows. Die, die ich aufgehängt derzeit ist die $Error-variable. Beim aufrufen von meinem workflow, erhalte ich die folgende Fehlermeldung:

The variable 'Error' cannot be used in a script workflow.

Weiß jemand, wie fangen Sie den text eines Fehlers innerhalb eines Workflows oder Vorschläge über alternative Methoden der Fehler-fangen, wenn Sie nicht vertraut sind mit workflows? Ich habe lange gesucht um, und finde fast keine Informationen über die Besonderheiten des workflows. Danke!

Ich versuche, so etwas zu tun:

workflow Get-LoggedOnUser{
    param([array]$computers,[System.Management.Automation.PSCredential]$credential)

    foreach -parallel($computer in $computers) {
        $response = $null
        $errorMessage = $null
        If (Test-Connection -ComputerName $computer -count 1 -quiet) {
            Try {
                $ErrorActionPreference = "Stop"
                $response = Get-WMIObject -PSCredential $credential -PSComputername $computer -query "Select UserName from Win32_ComputerSystem"
                $Error
            }
            Catch {
                $errorMessage = $Error[0].exception
            }
            Finally {
                $errorActionPreference = "Continue"
            }
        }
        Else {
            $errorMessage = "No response"
        }   
        $output = [PSCustomObject]@{
            Name = $computer
            User = $response.UserName
            Error = $errorMessage
        }
        $output
    }
}
InformationsquelleAutor Justus Thane | 2012-07-19
Schreibe einen Kommentar