Я хотел бы создать сценарий теста dcdiag, чтобы предупреждать меня, если он обнаружит какие-либо ошибки. Я думал, что смогу сделать это в PowerShell ...
$test = dcdiag 2>$err
На данный момент у меня нет ошибок от dcdiag, поэтому я не мог проверить это напрямую, но я написал другой сценарий PowerShell, чтобы генерировать исключение, надеясь, что я смогу протестировать этот метод с помощью этого сценария. Это не сработало с использованием описанного выше метода, поэтому я выбрал:
try {
$test = dcdiag
}
catch {
$err = $_.Exception.Message
}
Это сработало для моего тестового примера, но я не знаю, приведет ли это к стандартной ошибке от dcdiag.
Как мне лучше всего добиться стандартного перенаправления ошибок на переменную в PowerShell, если я хотел бы использовать ее с dcdiag?
try...catch
не поможет в этом случае.
Возможно, вы захотите сделать:
$test = dcdiag 2>&1
$err = $test | ?{$_.gettype().Name -eq "ErrorRecord"}
if($err){
# Error has occurred
}