PowerShell -ErrorAction SilentlyContinue
PowerShell -ErrorAction SilentlyContinue
If a PowerShell script halts, or a portion of the code does not work, what action do you want the error to trigger? One popular solution is to tell the script to silently continue.
Windows PowerShell -ErrorAction SilentlyContinue
# PowerShell -ErrorAction SilentlyContinue example
Note 1: While this example shows -ErrorAction, you must decide if it's better than the built-in message ObjectNotFound. Action Point remove -ErrorAction SilentlyContinue from the above script.
Note 2: The actual name of this service is Print Spooler (not Printer). I made this deliberate mistake so as to create the error message.
Scenario you create a PowerShell script which will kill several processes. The problem arises when the first process does not exist, consequently the script comes to a halt prematurely.
"Cannot find a process with the process identifier 5132"
Zapping processes is a classic job for SilentlyContinue ... provided you know what you're doing! If you would like to try this for real, then launch Task Manager and note the PID (process ID) of one real and two fictitious processes. Then substitute your PIDs for 5132, 5075, 5072 in my script below.
# PowerShell SilentlyContinue
Note 3: Please don't use Stop-Process unless you understand what you are doing, for instance, you make a 'walk-though' of stopping the process with task manager.
Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft's operating systems. Fortunately, SolarWinds have created a Free WMI Monitor so that you can discover these gems of performance information, and thus improve your PowerShell scripts.
Take the guess work out of which WMI counters to use when scripting the operating system, Active Directory, or Exchange Server. Give this WMI monitor a try - it's free.
One common problem when enumerating hives in the registry is that the permissions on the security hive cause an error in the PowerShell script.
# PowerShell Registry Listing ErrorAction
Note 4: -ErrorAction SilentlyContinue suppresses the error message 'PermissionDenied to the SECURITY hive'.
Note 5: In the output 'SKC' means SubKey count and 'VC' means Value count.
Problem: finding files in the System32 folder using a 'where .extension' clause. Specifically, I
got this error:
Solution: add -ErrorAction SilentlyContinue after -recurse.
# PowerShell example: Find executables under the System32
Note 6: My friend 'Mad' Mick says you can cure the problem
by simply saying:
Guy responds: It's true that Mick's method is superior, but I wanted a simple problem that -ErrorAction could cure.
SolarWinds' Network Performance Monitor will help you discover what's happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
This is how I found that -ErrorAction has an alternative to
# Research PowerShell -ErrorAction
Note 7: Incidentally, Help about_common* works just as well.
Note 8: Other scripts may benefit from substituting Stop or Inquire for the action to SilentlyContinue.
Instead of ErrorAction SilentlyContinue you can try : -EA 0
# PowerShell Registry Listing
Researching the about_commonParameters file help file will explain why
these also work:
Summary of PowerShell -ErrorAction
If a script pauses to produce an error message there maybe times when you want to suppress such system messages. Alternatively, you may want -ErrorAction to stop the script.
If you like this page then please share it with your friends
See more Windows PowerShell examples
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.