Я получаю такую ошибку 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 ...
) усекается в сообщении об ошибке?
Это можно найти в объекте ошибки. $Error
это массив ошибок, и [0]
самый последний. Это действительно объект, который можно допросить ...
($Error[0]).InvocationInfo.Line
Выдает полную строку скрипта, вызвавшего ошибку. В InvocationInfo
свойство не будет существовать из-за ошибок из командной строки.
Вы можете получить и другие хорошие свойства: PSScriptRoot
который дает вам путь к файлу сценария, ScriptName
который дает вам имя файла и ScriptLineNumber
что дает вам строку в скрипте, которая потерпела неудачу.