PnP PowerShell vs SharePoint Online Management Shell

Well, it's not really a matter of one versus the other. When we started of with PnP PowerShell, we used the -SPO prefix in the cmdlets, the same as what the by Microsoft provided SharePoint Online Management Shell is using. And while that worked quite okay, we ran into an issue when we released the Get-SPOSite cmdlet. That one was available already in the SharePoint Online Management Shell. Result: conflict. Which one should PowerShell use? There were a few work arounds for that but in the end it was easier if we simply changed our prefix to -PnP. I've been...

Automatic Context Switching in PnP PowerShell

PnP PowerShell does something we call 'context switching'. Let me show you how this is making your life a tiny bit easier: Connect-PnPOnline https://contoso.sharepoint.com Get-PnPList Get-PnPTenantSite This will connect first to your root site collection in your tenant, return all the lists in the site, and then the next cmdlet will show you all the (classic) site collections in your tenant. Normally you would have to connect (if you're a developer, you have to create a new ClientContext) to your tenant admin site first in order to do this. However, already for quite some time we made...

Getting started with the PnP Provisioning Engine and PnP PowerShell

Two of the most popular cmdlets in the PnP PowerShell module are Get-PnPProvisioningTemplate and its sibling Apply-PnPProvisioningTemplate. Follow me in this post where I dive into using them and show how make the most of them in your provisioning flow. Creating a Template Okay, so while it's totally possible to start creating a template by hand from scratch, it's a daunting task for sure. The PnP Provisioning Engine supports so many artifacts and each artifact has so many properties, you'll end up browsing the schema documentation for hours to come. Lets do it easier: create a site collection, modern, classic,...

Cross Platform PnP PowerShell

For a long time I played with the thought: wouldn't it be nice if we could use PnP PowerShell on other platforms than just Windows? I realize that the majority of you are most likely running Windows, but there is a (albeit minor) part of you that prefer to work on a Mac, and most likely even a smaller part runs on Linux. However, with the growth and functionality of Azure, another possible location to run your cmdlets show up: in a Docker image (which is based upon Linux for instance). Until last year, it was not possible to do...