Evitar truncar a mensagem de erro no erro do Powershell

11

Estou recebendo um erro do Powershell assim:

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 uma maneira de evitar o comando que acionou o erro (por exemplo, $Disk = Get-WmiObject MSCluster_Disk ... ) sendo truncado na mensagem de erro?

    
por James L 05.12.2014 / 17:23

1 resposta

14

Isso pode ser encontrado no objeto de erro. $Error é uma matriz de erros e [0] é o mais recente. Isso é realmente um objeto que pode ser interrogado ...

($Error[0]).InvocationInfo.Line

Fornecerá a linha completa no script que gerou o erro. A propriedade InvocationInfo não existirá para erros na linha de comando.

Outras boas propriedades que você pode obter são PSScriptRoot , que fornece o caminho para o arquivo de script, ScriptName , que fornece o nome do arquivo, e ScriptLineNumber , que fornece a linha do script que falhou.

    
por 05.12.2014 / 17:33