避免在 Powershell 错误中截断错误消息

避免在 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 ...)在错误消息中被截断?

答案1

这可以在错误对象中找到。$Error是一个错误数组,并且[0]是最新的。这实际上是一个可以查询的对象……

($Error[0]).InvocationInfo.Line

将为您提供脚本中生成错误的完整行。InvocationInfo对于来自命令行的错误,该属性不存在。

您可以获得的其他不错的属性包括:PSScriptRoot为您提供脚本文件的路径、ScriptName文件名以及ScriptLineNumber脚本中失败的行。

相关内容