SharePoint Module
Loading SharePoint Snap-In
Section titled “Loading SharePoint Snap-In”Loading the SharePoint Snapin can be done using the following:
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
This only works in the 64bit version of PowerShell. If the window says “Windows PowerShell (x86)” in the title you are using the incorrect version.
If the Snap-In is already loaded, the code above will cause an error. Using the following will load only if necessary, which can be used in Cmdlets/functions:
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null){ Add-PSSnapin "Microsoft.SharePoint.PowerShell"}Alternatively, if you start the SharePoint Management Shell, it will automatically include the Snap-In.
To get a list of all the available SharePoint Cmdlets, run the following:
Get-Command -Module Microsoft.SharePoint.PowerShell
Iterating over all lists of a site collection
Section titled “Iterating over all lists of a site collection”Print out all list names and the item count.
$site = Get-SPSite -Identity https://mysharepointsite/sites/testforeach ($web in $site.AllWebs){ foreach ($list in $web.Lists) { # Prints list title and item count Write-Output "$($list.Title), Items: $($list.ItemCount)" }}$site.Dispose()Get all installed features on a site collection
Section titled “Get all installed features on a site collection”Get-SPFeature -Site https://mysharepointsite/sites/test
Get-SPFeature can also be run on web scope (-Web <WebUrl>), farm scope (-Farm) and web application scope (-WebApplication <WebAppUrl>).
Get all orphaned features on a site collection
Another usage of Get-SPFeature can be to find all features that have no scope:
Get-SPFeature -Site https://mysharepointsite/sites/test |? { $_.Scope -eq $null )