A Windows PowerShell snap-in provides a mechanism for registering sets of cmdlets and another Windows PowerShell provider with the shell, thus extending the functionality of the shell. A Windows PowerShell snap-in can register all the cmdlets and providers in a single assembly, or it can register a specific list of cmdlets and providers.
Snap-in assemblies should be installed in a protected directory, just as they would be with other operating systems. Otherwise, malicious users can replace an assembly with unsafe code.
Windows PowerShell Snap-in Classes
Writing a Windows PowerShell Snap-in: This example shows how to create a snap-in that is used to register all the cmdlets and providers in an assembly.
Writing a Custom Windows PowerShell Snap-in: This example shows how to create a custom snap-in that is used to register a specific set of cmdlets and providers that might or might not exist in a single assembly.