I have seen quite a few articles mentioning Add-PSSnapin Microsoft.SharePoint.PowerShell lately. But what is the best way to load this snapin?
Load the SharePoint PowerShell with add-pssnapin
Table of Contents
Quite a lot of variations I have found for loading the Snap-in. But I quite like this version:

function Load-SnapIn
{
$ver = $host | select version
if($Ver.version.major -gt 1)
{
$Host.Runspace.ThreadOptions = "ReuseThread"
}
if(!(Get-PSSnapin Microsoft.SharePoint.PowerShell -ea 0))
{
Write-Debug "Loading Microsoft.SharePoint.PowerShell"
Add-PSSnapin Microsoft.SharePoint.PowerShell
}
}
Unload the Microsoft.SharePoint.PowerShell snapin
But if you load a snapin should you not unload the snap in when you’re done? I found the Remove-PSSnapin that does this for me:
Function Unload-SnapIn
{
Remove-PSSnapin Microsoft.SharePoint.PowerShell
}