Powershell has two means for importing additional cmdlets into a session, Add-PsSnapIn and Import-Module. The docs are not at all clear regarding when one would chose one ov
Add-PSSnapin and Import-Module are used to take external 3rd party libraries(Script files/ binary files/ dll) in the current PowerShell session.
Modules are little more easier to use than PSSnapins.
The main advantage module over PSSnapin is we can't remove or unload PSSnapin from the current PowerShell session once it is added.
But modules can be removed from the current PowerShell session manually, using Remove-Module
NOTE: The concept PSSnapin introduced in PS version 1.0 and module introduced in PS version 2.0.
Ref:- This