I have a group of PowerShell scripts that sometimes get run together, sometimes one at a time. Each of the scripts requires that a certain snap-in be loaded.
Right now each script is calling Add-PSSnapin XYZ
at the beginning.
Now if I run multiple scripts back-to-back the subsequent scripts throw:
Cannot add Windows PowerShell snap-in XYZ because it is alerady added. Verify the name of the snap-in and try again.
How can I have each script check to see if the snap-in is already loaded before calling Add-PSSnapin?
To use a snap-in in future Windows PowerShell sessions, add the Add-PsSnapin command to your Windows PowerShell profile. Or, export the snap-in names to a console file. If you add the Add-PSSnapin command to your profile, it is available in all future Windows PowerShell sessions.
You should be able to do it with something like this, where you query for the Snapin but tell PowerShell not to error out if it cannot find it:
if ( (Get-PSSnapin -Name MySnapin -ErrorAction SilentlyContinue) -eq $null ) { Add-PsSnapin MySnapin }
Scott already gave you the answer. You can also load it anyway and ignore the error if it's already loaded:
Add-PSSnapin -Name <snapin> -ErrorAction SilentlyContinue
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With