Assembly: System.Management.Automation (in System.Management.Automation.dll)
This class should be used when you want to register all the cmdlets and providers in an assembly. If you want to register a subset of the cmdlets and providers in the assembly, or if you want to register cmdlets and providers that are in different assemblies, use the CustomPSSnapIn class.
Your snap-in assembly should be installed into protected directories just as they would be with other operating system programs; otherwise, malicious users could replace your assembly with unsafe code. These assemblies are used to register cmdlets and providers, which allows you to extend the functionality of a runspace with the functionality of your own cmdlets and providers. For more information aboutWindows PowerShell snap-ins, see Windows PowerShell Snap-ins.