- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What is the use of the Get-Error cmdlet in PowerShell?
Get-Error cmdlet was introduced in PowerShell v7. It displays the most recent error messages from the current session.
When you check the get member of this command, its output is in the form of PSExtendedError so whatever the output is produced by this command is in a detailed manner and so this command is very helpful in troubleshooting error messages.
PS C:\> Get-Error | gm TypeName: System.Management.Automation.ErrorRecord#PSExtendedError
We will write one command in the PowerShell console which is ultimately generate an error.
PS C:\> Get-ChildItem c:
otexist Get-ChildItem: Cannot find path 'C:
otexist' because it does not exist.
The above directory does not exist. Let’s get a detailed view of this error using the Get-Error cmdlet.
PS C:\> Get-Error Exception : Type : System.Management.Automation.ItemNotFoundException ErrorRecord : Exception : Type : System.Management.Automation.ParentContainsErrorRecordException Message : Cannot find path 'C:
otexist' because it does not exist. HResult : -2146233087 TargetObject : C:
otexist CategoryInfo : ObjectNotFound: (C:
otexist:String) [], ParentContainsErrorRecordException FullyQualifiedErrorId : PathNotFound ItemName : C:
otexist SessionStateCategory : Drive TargetSite : Name : GetChildItems DeclaringType : System.Management.Automation.SessionStateInternal, System.Management.Automation, Version=7.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 MemberType : Method Module : System.Management.Automation.dll StackTrace : at System.Management.Automation.SessionStateInternal.GetChildItems(String path, Boolean recurse, UInt32 depth, CmdletProviderContext context) at Microsoft.PowerShell.Commands.GetChildItemCommand.ProcessRecord() Message : Cannot find path 'C:
otexist' because it does not exist. Source : System.Management.Automation HResult : -2146233087 TargetObject : C:
otexist CategoryInfo : ObjectNotFound: (C:
otexist:String) [Get-ChildItem], ItemNotFoundException FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand InvocationInfo : MyCommand : Get-ChildItem ScriptLineNumber : 1 OffsetInLine : 1 HistoryId : 94 Line : Get-ChildItem c:
otexist PositionMessage : At line:1 char:1 + Get-ChildItem c:
otexist + ~~~~~~~~~~~~~~~~~~~~~~~~~ InvocationName : Get-ChildItem CommandOrigin : Internal ScriptStackTrace : at <ScriptBlock>, <No file>: line 1 PipelineIterationInfo :
As you can see in the above output that it contains the error messages, exception details, Invocation Name, Line number for the error, etc. You can access each section separately as well.
For example
PS C:\> (Get-Error).InvocationInfo MyCommand : Get-ChildItem BoundParameters : {} UnboundArguments : {} ScriptLineNumber : 1 OffsetInLine : 1 HistoryId : 94 ScriptName : Line : Get-ChildItem c:
otexist PositionMessage : At line:1 char:1 + Get-ChildItem c:
otexist + ~~~~~~~~~~~~~~~~~~~~~~~~~ PSScriptRoot : PSCommandPath : InvocationName : Get-ChildItem PipelineLength : 0 PipelinePosition : 0 ExpectingInput : False CommandOrigin : Internal DisplayScriptPosition :
PS C:\> (Get-Error).InvocationInfo.PositionMessage At line:1 char:1 + Get-ChildItem c:
otexist + ~~~~~~~~~~~~~~~~~~~~~~~~~
You can also use Get-Error as the pipeline input and for that, you need to error input as the pipeline.The best way is to pass the $Error variable as the input object. It doesn’t matter in which view (Normal, Category, or Concise) the errors are, Get-Error command converts it to the precise view.
For example
$error | Get-Error
You can also get the number of latest errors of the current console using -Newest parameter. For example,
Get-Error -Newest 2
Whenever we use the above command, you can see the errors are separated by Error Index. In the above example, we have retrieved two latest errors so there will be two error indexes. ErrorIndex 0 and ErrorIndex 1.
- Related Articles
- What is Get-ChildItem cmdlet in PowerShell?
- How to get supported parameters of the cmdlet in PowerShell?
- What is use of $error variable in PowerShell?
- How to use Group-Object cmdlet in PowerShell?
- What is the difference between $ErrorActionPreference and $ErrorAction cmdlet in PowerShell ?
- What is the use of Get-Process command in PowerShell?
- How to use ForEach-Object Parallel cmdlet in PowerShell?
- What is the use of -Force parameter in Get-ChildItem in PowerShell?
- How to use –Wait parameter in Restart-Computer cmdlet in PowerShell?
- How to use -For parameter in Restart-Computer cmdlet in PowerShell?
- How to use –Timeout parameter in Restart-Computer cmdlet in PowerShell?
- What is the use of $ErrorView in PowerShell?
- What is the use of $Lastexitcode and $? Variable in PowerShell?
- What is the use of Passthru parameter in Stop-Process in PowerShell?
- How to use the wildcard character (*) in Get-ChildItem in PowerShell?
