Evitare di troncare il messaggio di errore nell'errore Powershell


11

Ricevo un errore Powershell come questo:

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

Esiste un modo per evitare che il comando che ha innescato l'errore (ovvero, $Disk = Get-WmiObject MSCluster_Disk ...) venga troncato nel messaggio di errore?

Risposte:


14

Questo può essere trovato nell'oggetto errore. $Errorè un array di errori ed [0]è il più recente. Questo è in realtà un oggetto che può essere interrogato ...

($Error[0]).InvocationInfo.Line

Ti darà la riga completa nello script che ha generato l'errore. La InvocationInfoproprietà non esisterà per errori dalla riga di comando.

Altre belle proprietà che puoi ottenere sono PSScriptRootche ti danno il percorso del file di script, ScriptNameche ti dà il nome del file e ScriptLineNumberche ti dà la riga nello script che non è riuscita.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.