我得到一个像这样的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 ... )?
这可以在错误对象中find。 $Error是$Error数组, [0]是最近的错误。 这实际上是一个可以被审问的对象。
($Error[0]).InvocationInfo.Line
会给你在生成错误的脚本完整的行。 InvocationInfo属性不会因命令行中的错误而存在。
你可以得到的其他好的属性是PSScriptRoot ,它给你的脚本文件的path, ScriptName给你的文件名和ScriptLineNumber ,它给你的脚本失败的行。