หลีกเลี่ยงข้อความแสดงข้อผิดพลาดในข้อผิดพลาด 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แก่คุณและให้บรรทัดในสคริปต์ที่ล้มเหลว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.