Pages

PowerShell for SharePoint

SharePoint has been introduced since a long ago and has evolved over time. This post attempts to gather different methods of interacting SharePoint with PowerShell.

SharePoint Management Shell

There are two SharePoint Mangement Shell PowerShell modules. One for SharePoint online and another one for SharePoint Server.

SharePoint Online

This is a Windows PowerShell module to manage SharePoint Settings for organization or site collection level. Useful for SharePoint administrator and site admin. The module is Microsoft.Online.SharePoint.PowerShell and the command naming convention starts with SPO as its noun, as example
1
2
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Scope CurrentUser
Connect-SPOService -Url https://contoso-admin.sharepoint.com -Credential admin@contoso.com
List of SharePoint Online PowerShell commands and its documentation

SharePoint Server

The PowerShell cmdlets comes along with SharePoint Server installation. Useful for SharePoint administrator. To use the SharePoint cmdlets (provided as snap-in, not module) in Windows PowerShell, register the snap-in manually, Add-PSSnapin Microsoft.SharePoint.PowerShell. If it is executed from SharePoint Managemetn Shell, it is automatically registered. Command naming convention usually starts with SP as its noun, as example
1
2
Add-PSSnapin Microsoft.SharePoint.PowerShell
Get-SPSite
List of SharePoint Server PowerShell commands and its documentation

PnP PowerShell

This is a PowerShell module with more than 600 commands to interact with SharepPoint Online, Microsoft Teams, Microsoft Entra ID, and etc. It is an open source and community provided library under Microsoft 365 platform community initiative. This module is useful for various team including SharePoint admnistrator, developer, power user and etc. The module is PnP.PowerShell and the command naming convention starts with PnP, as example
1
2
Install-Module PnP.PowerShell -Scope CurrentUser
Connect-PnPOnline
List of PnP PowerShell commands and its documentation

Microsoft Graph PowerShell

This is a PowerShell module (recommended PowerShell core, can be used in Windows PowerShell) that acting as API wrapper for Microsoft Graph APIs. Microsoft Graph API cover various aspects from Azure Entra ID, to other Microsoft services like SharePoint, Exchange, Outlook and etc. This module is useful for SharePoint admin, developer and power user. The main module is Microsoft.Graph and for SharePoint specific submodule is Microsoft.Graph.Sites. The command naming convention starts with Mg, as example
1
2
Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph
List of SharePoint command in Microsoft Graph and its documentation

PowerShell with CSOM / API

SharePoint .NET client-side object model (CSOM) and REST API could be used in PowerShell as .NET object or wrapped as PowerShell command

The CSOM are available to download via SharePoint Online Client Component SDK or SharePoint .NET nuget package.

as example to add/use CSOM (after the CSOM dll been downloaded and location the identified)
1
2
3
4
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)
SharePoint REST API V1 (documentation)
SharePoint REST API V2 (documentation)
SharePoint Sites Microsoft Graph REST API (documentation)

No comments:

Post a Comment