我一直在玩 PS 3.0 RC 中的 PowerShell 工作流,到目前为止,我很喜欢。但是,您可以在工作流程中使用和不能使用的东西有很多限制。我目前挂断的一个是 $Error 变量。调用我的工作流程时,我收到以下错误:
The variable 'Error' cannot be used in a script workflow.
有谁知道如何在工作流程中捕获错误文本,或者如果您不熟悉工作流程,有关于错误捕获替代方法的建议吗?我一直在四处寻找,几乎找不到有关工作流程细节的信息。谢谢!
我正在尝试做这样的事情:
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
}
}