Уникайте повідомлення про помилку обрізання в помилці Powershell


11

Я отримую помилку 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 ...), була врізана у повідомленні про помилку?

Відповіді:


14

Це можна знайти в об’єкті помилки. $Error- це масив помилок і [0]є останнім. Це власне об’єкт, якого можна допитати ...

($Error[0]).InvocationInfo.Line

Дасть вам повний рядок у сценарії, який генерував помилку. InvocationInfoВластивість не існуватиме помилки з командного рядка.

Інші приємні властивості, які ви можете отримати, це те, PSScriptRootщо дає вам шлях до файлу сценарію, ScriptNameякий дає вам ім'я файлу, і ScriptLineNumberякий дає вам рядок у сценарії, який не вдався.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.