коды исключений перехватчика powershell для запроса wmi

Я проверяю сервисы с использованием WMI на группе компьютеров, но с некоторыми я получаю ошибки. Как мне зафиксировать эти ошибки, чтобы я мог предпринять соответствующие действия?

Запрос

$listOfServices = Get-WmiObject -credential $wsCred -ComputerName $comp.name -Query "Select name, state from win32_Service"

Если я получу следующее, я хочу попробовать альтернативные учетные данные

Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) 

Если я получуGet-WmiObject : User credentials cannot be used for local connections Я хочу удалить учетные данные

Если я получуGet-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) или любая другая ошибка, я просто хочу сообщить об ошибке.

Я знаю, что должен использовать блок try catch, но я не знаю, как указать catch для каждого исключения.

Вот то, что я до сих пор -

try {
    $listOfServices = Get-WmiObject -credential $wsCred -ComputerName $comp.name -Query "Select name, state from win32_Service" -ErrorAction Stop
}
catch {
    $e = $_.Exception
    switch ($e.ErrorCode) {
        0x80070005 {
                $listOfServices = Get-WmiObject -credential $svrCred -ComputerName $comp.name -Query "Select name, state from win32_Service" -ErrorAction Stop
        }
        default { 
            write "Error code: $e.ErrorCode"
            write "Error details: $e.ErrorDetails"
            write "Full error: $e"
        }
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос