PowerShell – How to detect/add the SharePoint snapin

Hi again :)

Just a quick post that will show you how you can check if the SharePoint snapin is loaded and if it isn’t, how to add it. This will be a really useful function that you can use at the start of all your SharePoint PowerShell scripts and the solution if you receive an error similar to this:

The term ‘_________’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the s
pelling of the name, or if a path was included, verify that the path is correct and try again.

This error occurs because the SharePoint Snapin is not loaded and you try using a command like: Get-SPWeb, Get-SPUser, Enable-SPFeature, Backup-SPFarm, etc.

Anyway here is the PowerShell script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function Check-SPSnapin
{
    Write-Host "Checking for SharePoint Snapin. Please wait....`r`n"

    if ((get-pssnapin | where-object {$_.name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null)
    {
        # Snapin wasn't loaded so we load it...
        Write-Host "Loading SharePoint Snapin. Please wait...`r`n"
        add-pssnapin "Microsoft.SharePoint.PowerShell"

        # This is just a final check to see if the Snapin is now successfully loaded
        if ((get-pssnapin | where-object {$_.name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null)
        {
            # Snapin still can not be detected, log it. You could put "exit" here if you desire.
            Write-Host "SharePoint Snapin was not successfully added.`r`n"
        }
        else
        {
            # It is now successfully loaded
            Write-Host "SharePoint Snapin loaded.`r`n"
        }
    }
    else
    {
        # The snapin was already added
        Write-Host "SharePoint Snapin detected.`r`n"
    }
}

Then just call the function in your script with Check-SPSnapin.

The script is self documented but if you have any problems, please ask.

Thanks,
Luke :D

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>