6

リモートセッションで Invoke-Expression を使用していますが、例外がスローされると、スタックトレース情報なしで RemoteException だけが返されます。例:

try
{
    Invoke-Expression "$command 2>&1"
}    
catch
{
    Write-Host $_    
}

output( 2>&1) へのリダイレクト エラーを除外すると、適切なエラーが発生しますが、リダイレクトを使用して非表示になっている不要なデバッグ コンソール ($command から) が呼び出されます。

Start-Process -NoNewWindow -FilePath $CmdExe -ArgumentList $Arguments

Start-Process を使用すると、完全なスタック トレースを確認できますが、不要なデバッグ コンソールも表示されます。

リモートセッションでスローされた例外から完全なスタックトレースと適切な例外を取得するにはどうすればよいですか? ありがとう。

4

1 に答える 1

0

リモート セッションを行っている場合は、write-host を使用しないでください。これを試して:

catch { 
    Write-Error ($_ | fl * -force | out-string)
}

もう 1 つのオプションは、例外をキャッチせず、エラーをローカル セッションに伝播させることです。しかし、あなたは回復を試みたいのではないでしょうか?

于 2014-06-10T19:45:37.273 に答える