try...catch
não ajudaria neste caso.
Você pode querer fazer:
$test = dcdiag 2>&1
$err = $test | ?{$_.gettype().Name -eq "ErrorRecord"}
if($err){
# Error has occurred
}
Gostaria de fazer um script de um teste do dcdiag para me alertar se encontrar algum erro. Eu pensei que poderia fazer isso no PowerShell ...
$test = dcdiag 2>$err
Eu não tenho nenhum erro de dcdiag no momento, então não pude testar isso diretamente, mas eu escrevi outro script do PowerShell para lançar uma exceção, esperando poder testar esse método usando esse script. Isso não funcionou usando o método acima, então optei por:
try {
$test = dcdiag
}
catch {
$err = $_.Exception.Message
}
Funcionou para o meu caso de teste, mas não sei se isso vai pegar o erro padrão do dcdiag.
Como devo obter melhor redirecionamento de erro padrão para uma variável no PowerShell, pois gostaria de usá-lo com o dcdiag?
Tags powershell