将stderrredirect到PowerShell中的variables

我想编写一个dcdiagtesting脚本来提醒我是否发现任何错误。 我以为我可以在PowerShell中做到这一点…

$test = dcdiag 2>$err 

目前我没有任何来自dcdiag的错误,所以我不能直接testing,但我写了另一个ps脚本来抛出一个exception,希望我可以用这个脚本来testing这个方法。 这没有用上面的方法,所以我select了

 try{$test = dcdiag}catch{$err = $_.Exception.Message} 

它适用于我的testing案例,但我不知道这是否会从dcdiag拾取stderr。

我想知道我应该如何最好地实现stderrredirect到PowerShell中的variables,因为我想用它与dcdiag?

try..catch不会在这种情况下帮助。

你可能想要做:

 $test = dcdiag 2>&1 $err = $test | ?{$_.gettype().Name -eq "ErrorRecord"} if($err){ #error has occurred }