PnP PowerShell and more...

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

Connect-PnPOnline demystified

2018-03-21 2 min read

So here goes: the long list of all ways to authenticate with PnP PowerShell, including some tips

##Credentials This is the most common way and I assume that many of you start off using this method.

Connect-PnPOnline -Url https://contoso.sharepoint.com

If you have not done any set up in the Windows Credential Manager, then executing the cmdlet like will popup a prompt for a username and password. It’s the easiest way to authenticate

##Credentials by specifying them in a variable

$creds = Get-Credential
Connect-PnPOnline -Url https://contoso.sharepoint.com -Credentials $creds

##Credentials by automatically loading them from the Credential Manager There are several ways to set this up.

First the difficult/manual way: On Windows 10 the easiest way to launch the Credential Manager is by simply pressing the Windows/Start button and start type ‘Credentia’. Most likely the first hit you get is the Credential Manager. If you are on other versions of Windows, navigate to Control Panel, You’ll find the Credential Manager in there.

Click ‘Windows Credentials’, and add a Generic Credential (it’s the 3rd section from the top). Enter the base url of your tenant, e.g. https://contoso.sharepoint.com, enter your username and your password.

pnpauth1

Click okay. Now if you use Connect-PnPOnline and your URL starts with the URL you specified in the credential manager entry, it will use those credentials to authenticate. This will really make it simple to create to use PnP PowerShell in unattended automation tasks. Notice that using this trick you can also specify different username/password combinations for different sites. Just enter more complete URLs, alike https://contoso.sharepoint.com/sites/mysite, etc. in the Credential Manager.

Now the somewhat easier way, requiring less clicking As of the March 2018 of PnP PowerShell there is a cmdlet called Add-PnPStoredCredential. Using that one it’s very easy to add a URL to the Windows Credential Manager.