web-dev-qa-db-ja.com

Powershellエラーでエラーメッセージが切り捨てられないようにする

次のようなPowershellエラーが発生します。

PS C:\mydirectory> $Error[0]
Get-WmiObject : 
At line:143 char:13
+           $Disk = Get-WmiObject MSCluster_Disk -ComputerName $Resource.OwnerNode -Auth    ...
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

エラーをトリガーしたコマンドを回避する方法はありますか(つまり、$Disk = Get-WmiObject MSCluster_Disk ...)エラーメッセージで切り捨てられますか?

11
James L

これはエラーオブジェクトにあります。 $Errorはエラーの配列であり、[0]が最新です。これは実際に問い合わせ可能なオブジェクトです...

($Error[0]).InvocationInfo.Line

エラーを生成したスクリプトの完全な行が表示されます。コマンドラインからのエラーの場合、InvocationInfoプロパティは存在しません。

取得できるその他の素敵なプロパティは、スクリプトファイルへのパスを提供するPSScriptRoot、ファイル名を提供するScriptName、および行内の行を提供するScriptLineNumberです。失敗したスクリプト。

14
JNK