Évitez de tronquer le message d'erreur dans l'erreur Powershell


11

Je reçois une erreur Powershell comme celle-ci:

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

Existe-t-il un moyen d'éviter que la commande qui a déclenché l'erreur (c'est-à-dire $Disk = Get-WmiObject MSCluster_Disk ...) soit tronquée dans le message d'erreur?

Réponses:


14

Cela peut être trouvé dans l'objet d'erreur. $Errorest un tableau d'erreurs et [0]est le plus récent. C'est en fait un objet qui peut être interrogé ...

($Error[0]).InvocationInfo.Line

Vous donnera la ligne complète dans le script qui a généré l'erreur. La InvocationInfopropriété n'existe pas pour les erreurs de la ligne de commande.

Vous pouvez également obtenir d'autres propriétés intéressantes PSScriptRootqui vous donnent le chemin d'accès au fichier de script, ScriptNamequi vous donne le nom du fichier et ScriptLineNumberqui vous donne la ligne du script qui a échoué.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.