PnP PowerShell and more...

Here I occasionally post about Microsoft 365 Patterns and Practices in general and PnP PowerShell more specifically.

The hidden gem in PnP PowerShell

2018-03-17 1 min read
There is something ‘hidden in plain sight’ in PnP PowerShell for SharePoint Online, and it’s been there already for a few years. Let me show you the command: Connect-PnPOnline -Url -CreateDrive Notice that last parameter? -CreateDrive. It does exactly what it says it does. It creates a drive that you can navigate into. And you are effectively navigating into your site. How cool is that? By default it creates a drive called SPO: Continue reading

PnP PowerShell and multi-factor authentication

2018-03-16 3 min read PowerShell SharePoint
If you use PnP PowerShell, you might be aware of the fact that there many many ways to authenticate towards your SharePoint Online Tenant. If you have multi-factor authentication enabled on your tenant, basically the only way for you to connect to your tenant was by using the -UseWebLogin method. The way it worked is that we launched a browser window, you authenticated, and we captured the authentication cookie that was returned by the browser. Continue reading

Cross Platform PnP PowerShell

2018-03-14 6 min read PowerShell SharePoint
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). Continue reading

The PnP PowerShell Cmdlets are now available on the PowerShell Gallery

2016-11-08 2 min read PowerShell SharePoint
Update: links updated to changed package names Until today you had basically two options to install the Office Developer Patterns and Practices PowerShell Cmdlets: you either downloaded the GitHub repository and build your own version, or you downloaded the binary installers and installed the module. While both ways will be supported in the future, I believe we have a better/easier way to distribute the cmdlets, and that’s through the PowerShell Gallery available at https://www. Continue reading

The case of Get-SPOSite

2016-10-31 4 min read PowerShell SharePoint
If you use both the PnP cmdlets and the Microsoft Office 365 Management cmdlets, you might have noticed that both have an Get-SPOSite cmdlet. And those conflict. There are a few ways around that problem, but they are cumbersome. To resolve this, basically the only way is either them (Microsoft) or us (PnP) rename the Get-SPOSite cmdlet. So we sat down with the PnP Core team, looked at a few scenarios, and we came up with what I describe a bit below in this post. Continue reading

Changes to the PnP PowerShell Cmdlets Naming

2016-05-10 1 min read PowerShell SharePoint
Following the changes in the PnP Core Library naming, the PnP PowerShell Cmdlets have been renamed too. Besides that, we added another version of the PowerShell module too. Internal naming We renamed the internal project name and the namespaces from OfficeDevPnP to SharePointPnP Old OfficeDevPnP.PowerShell.Commands OfficeDevPnP.PowerShell.Tests OfficeDevPnP.PowerShell.Setup OfficeDevPnP.PowerShell.CmdletHelpAttributes OfficeDevPnP.PowerShell.CmdletHelpGenerator New SharePointPnP.PowerShell.Commands SharePointPnP.PowerShell.Tests SharePointPnP.PowerShell.Setup (deprecated/removed in the latest master branch) SharePointPnP.PowerShell.CmdletHelpAttributes SharePointPnP.PowerShell.CmdletHelpGenerator Packages on the PowerShell Gallery We also renamed the packages on the PowerShell Gallery to a more intuitive naming (we think): Continue reading

Multilingual Provisioning Templates with the Office 365 Developer Patterns and Practices Provisioning Engine

2016-02-05 3 min read PowerShell SharePoint Provisioning Engine
Somehow I don’t seem to be able to come up with short titles for my posts :-) A much requested feature was the ability to create a multi-language provisioning template. It turned out that the implementation of that wasn’t actually that complex, we had much of the plumbing already in place in the engine. The main question we had to ask ourselves was: how do we specify the various values for each language? Continue reading
Older posts Newer posts