Set up Enterprise App to use App-Only Sites.Selected permissions and wite to SharePoint with PnP Powershell
I wanted to run unattended scripts against SharePoint for various governance and content cleanup jobs and found the guidance for this to be a little confusing. I think it's a good idea to limit the access of any script, so I prefer to set up an App per script and use the Sites.Selected permission to limit the sites to which my app has access. Here's the process I used to get it to work: You can register an app in the Azure portal UI, but there's a few steps that must be performed with PowerShell, so I figured just doing it all in Powershell made it consistent. Step 0: Get the right version of PnP.Powershell I also had to use the PnP.PowerShell 2.2.81 nightly build because there was a bug introduced in 2.2.0. If you need to get a specific version you can run Install-Module, but I prefer to use Save-Module with specific version so I can keep different version of PnP.PowerShell around to avoid having my old scripts affected by new modules and potential regression issu