PowerShell Add-PSSnapin
A PowerShell snapin contains extra cmdlets, usually for a specialist purpose such as Quest’s Active directory family of cmdlets. The trick is to append, inject, register, or wire up PowerShell to accept additional Verb-Noun pairs from other providers.
PowerShell Topics for Add-PSSnapin
- Example 1 – Add-PSSnapin
- Example 2 – Check Your Registered Snap-Ins
- PSSnapins and Profile.ps1
- Add-PSSnapin
♣
Example 1 – Add-PSSnapin
Pre-requisites
The only slight problem with this challenge is that it needs two pre-requisites over-And-above installing PowerShell. Firstly, download the snap-In from the third party such as Quest. Because without a snap-In the command, add-PSSnapin makes no sense. Your plan B would be to substitute one of the growing number of third-party snap-Ins for Quest.
Secondly, to get any action from the additional Quest active directory snap-In you need to logon as administrator of a domain. I downloaded and installed the snap-In, then I ran the following command on a Domain Controller. I say again, if you don’t have a domain, research the internet for alternative snap-Ins.
# Simple Instruction for PowerShell snapin
set-Location c:\
add-PSSnapin quest.activeroles.admanagement
Note 1: Please navigate to wherever you downloaded the snap-In. I used the c:\ root for simplicity, but your path is likely to be different, hence adjust set-Location in the above script.
Note 2: If these commands don’t reveal the quest snap-Ins, you probably missed one of my pre-requisites. As I mentioned earlier, you must download and install the quest.activeroles.admanagement snap-In from Quest’s site, and you need access to an active directory domain.
Example 2 – Check Your Registered Snap-Ins
If you substitute the verb ‘get’ for ‘add’, then PSSnapin will display all registered snap-Ins including the Microsoft default sets.
# Optional instruction to display all PowerShell Snap-Ins
Clear-Host
Get-PSSnapin | ft name
Expected results:
PowerShell 1.0 November 2008
Name
————————-
Microsoft.PowerShell.Core
Microsoft.PowerShell.Host
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
quest.activeroles.admanagement
PowerShell 2.0 April 2010
Name
————————
Microsoft.PowerShell.Core
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Host
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.WSMan.Management
quest.activeroles.admanagement
Note 1: Did you get just the Microsoft snap-Ins? Or did you get a snap-In from quest?
Note 2: In PowerShell 2.0 I also added remoting, hence the WSMan snapin.
Guy Recommends: A Free Trial of the Network Performance Monitor (NPM)
v11.5
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.
Download a free trial of Solarwinds’ Network Performance Monitor
PSSnapins and Profile.ps1
As we will see, the killer reason for mastering profile.ps1 is so that you can load PSSnapins. As a result of this procedure PowerShell will load extra cmdlets effortlessly each time it starts.
Once you achieve mastery in a particular area, any difficulties that you endured during the learning process seem to fade into the background. So it is with understanding Profile.ps1. Configuring this file is ridiculously easy once you have mastered it, but impenetrably difficult when you try and figure it out for the first time.
Pure Profile.ps1
The secret of setting-up profile.ps1 is attention to spelling. In particular, the filename ‘profile’ must be singular, and the directory name must be precisely: ‘WindowsPowerShell’.
Let me give you a few pointers with the text file profile.ps1. The file must be called precisely profile.ps1. The name profileS.psL would be doubly wrong because of the plural filename and ‘L’ instead of a 1 in the extension.
You must save profile.ps1 into a specific directory. Begin your drill-down by navigating to the C:\Documents and Settings folder. Next you need to know the Windows profile name for the user who is logged on, in my case \guyt. The rest of the path is My Documents\WindowsPowerShell. Pay close attention to the folder name: WindowsPowerShell. Here is my full path.
C:\Documents and Settings\guyt\My Documents\WindowsPowerShell
It is in the above WindowsPowerShell folder that I save profile.ps1.
There is a whole micro-Industry in creating clever instructions for profile.ps1, (just as there was tweaking the old DOS autoexec.bat). For our mission we will focus on just two instructions, setting the HOME directory and loading snap-Ins.
# Simple instruction for Profile.ps1 (Feel free to amend c:\)
set-Location c:\
I always like to build on success, thus I include the simple command, ‘set-Location c:\’ merely to show that PowerShell is in fact reading profile.ps1. If this works and PowerShell opens at the c:\ prompt, then you could try a more realistic ‘home’ directory for your PowerShell, for example, set-Location c:\PowerShell (Providing you have a folder called precisely, PowerShell).
Summary of PowerShell’s Add-PSSnapin
If you need to employ PowerShell to manipulate active directory, then seek additional cmdlets. The best the best sources are Quest and PowerGUI. Additionally, if you need to control PowerShell’s start-up environment, then take the time to create and configure profile.ps1.
Once you have installed the snap-Ins, you need a command to load them each time PowerShell launches, that command is : add-PSSnapin. Why not get the best of both worlds? Master profile.ps1 and make sure that the quest.activeroles.admanagement snap-In is always available.
If you like this page then please share it with your friends
See more PowerShell QAD Scripts
• PowerShell Home • Quest QAD • QADUser • QADGroup • QADComputer
• Export-CSV • Import CSV • QAD Password • Add-PSSnapin • Free Import User CSVDE Tool
• Get-AdUser -filter • Windows PowerShell • Windows PowerShell .Net
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.