从错误中捕获computername

时间:2016-10-17 10:54:58

标签: powershell

如何从下面的代码中的错误变量中捕获计算机名?

$FilterHashTable = @{
    logname='Application';
    providername='Microsoft-Windows-SoftwareRestrictionPolicies';
    StartTime=$StartTime
};
$test = Invoke-Command -ScriptBlock {
            param ($FilterHashTable)
            Get-WinEvent -FilterHashtable $FilterHashTable
        } -ArgumentList $FilterHashTable -ComputerName $cpu -ErrorVariable blad1 |
        Select-Object PSComputerName, TimeCreated, Message |
        Export-Csv $logFile -Encoding UTF8

if ($blad1) {
    foreach ($blad1 in $test) {

    }
}

1 个答案:

答案 0 :(得分:3)

目标计算机的名称存储在错误变量的TargetObject属性中。

if ($blad1) {
    $blad1 | ForEach-Object {
        'Error getting events from computer {0}.' -f $_.TargetObject
    }
}

要获取有关变量值的更多信息,请使用Get-Member(列出对象的属性和方法)和Format-List(以列表形式显示所有对象属性的值)。< / p>

$blad1 | Get-Member
$blad1 | Format-List * -Force