私は 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
}
}