Snap-ins and modules
You can extend PowerShell by loading snap-ins and modules. Snap-ins or PSSnapins
are
dynamic linked library (DLLs) compiled from .NET code, which may contain additional cmdlets and PSProvider
. The PSSnapins
are old school—they are primarily how you extend version 1, but still supported in version 2, version 3, and version 4. Although considered old school, you can still create snap-ins. Refer to http://msdn.microsoft.com/en-us/library/ms714450(v=vs.85).aspx on how to do this.
The related snap-in cmdlets are as follows:
Add-PSSnapin
Get-PSSnapin
Remove-PSSnapin
Instead of snap-ins, the recommended way of extending the PowerShell functionality from version 2 onwards is using modules. Modules are similar to snap-ins when it comes to extending functionality, but unlike snap-ins, modules can also add functions. Modules also support autoloading, which means the module can be loaded as soon as one of its cmdlets/functions/PSDrive
are used.
Modules can be script-based or binary-based. A script module uses PowerShell code saved in a .psm1
file. A binary module is more similar to PSSnapin
, where it references a .NET DLL.
Modules are the new school way of extending PowerShell, from version 2 onwards. Related cmdlets are listed as follows:
Import-Module
Get-Module
Remove-Module
If you want to write PowerShell extensions, Microsoft recommends that you create modules instead of snap-ins.