How to use the Windows Credential Manager to ease authentication with PnP PowerShell

Erwin van Hunen edited this page Nov 8, 2016 · 5 revisions

In those situation where you don't want to be prompted for a username and password, you could hardcode your credentials in your PowerShell script. However, while this is inflexible, it is also very insecure.

We propose that you use the Windows Credential manager instead, which has a secure and managable storage concept that the PnP PowerShell cmdlets can use.

Setup

Open your control panel, and open the Credential Manager.

  1. Select Windows Credentials
  2. Add a new Generic credential

There are two approaches you can use:

URL based approach

  1. Enter the URL of your site you want to setup a credential for. You can use just your full tenant address (e.g. "https://yourtenant.sharepoint.com", or you can be more specific by entering a more complete URL, alike "https://yourtenant.sharepoint.com/sites/yoursite" or only create a credential for that site.
  2. Enter the username and password to use for that url

From that moment you can simply use the Connect-PnPOnline cmdlet to connect to your site as follows:

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

You will not be prompted for credentials.

You can mix and match the credential manager entries to use specific credentials for other sites.

Label approach

Instead of entering a URL you can also enter -any- label in the URL field. From that moment you can can use the Connect-PnPOnline cmdlet as follows:

Connect-PnPOnline -Url https://yourtenant.sharepoint.com -Credentials YourLabel
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.