Upgrading from the Legacy version of PnP PowerShell
First make sure to uninstall any edition of PnP PowerShell that runs on the Windows PowerShell version (the one with the blue background).
Uninstall-Module -Name "SharePointPnPPowerShellOnline" -AllVersions -Force
Now install the new module:
Install-Module -Name "PnP.PowerShell"
Setup authentication.
The way PnP PowerShell authenticates you to your tenant has changed. We now use OAuth behind the scenes to authenticate you. We support username/password auth, device code auth and app-only authentication.
If you were using Connect-PnPOnline
with the -Credentials
you will have to register first an Azure AD application on your tenant. This is very straightforward and simple:
Register-PnPManagementShellAccess
This cmdlet will ask you to authenticate, and then provide consent to the PnP Management Shell application. A registration will be added to the Azure AD of your tenant. This is a one-time action per tenant. After you provided consent you will be able to authenticate using:
Connect-PnPOnline -Url https://[tenant].sharepoint.com -Credentials (Get-Credential)
Read more information about authentication.
Changes
Check your scripts. As this is a major release, we have deprecated cmdlets, renamed cmdlets, and we marked some parameters as obsolete.
Important
We marked the -Web
parameter as obsolete on many cmdlets. The -Web
parameter allows you to execute cmdlets to a subweb underneath the current web. Due to API changes under the hood of PnP Powershell we marked this parameter as obsolete. The parameter will be removed in a future release. Notice though that it is still fully possible to connect to a subweb by using the full url to the subweb with Connect-PnPOnline.
Old | New/Replaced with | Notes |
---|---|---|
Apply-PnPProvisioningTemplate |
Invoke-PnPSiteTemplate |
|
Get-PnPProvisioningTemplate |
Get-PnPSiteTemplate |
|
Add-PnPDataRowsToProvisioningTemplate |
Add-PnPDataRowsToSiteTemplate |
|
Add-PnPFileToProvisioningTemplate |
Add-PnPFileToSiteTemplate |
|
Add-PnPListFoldersToProvisioningTemplate |
Add-PnPListFoldersToSiteTemplate |
|
Convert-PnPFolderToProvisioningTemplate |
Convert-PnPFolderToSiteTemplate |
|
Convert-PnPProvisioningTemplate |
Convert-PnPSiteTemplate |
|
Export-PnPListToProvisioningTemplate |
Export-PnPListToSiteTemplate |
|
New-PnPProvisioningTemplate |
New-PnPSiteTemplate |
|
New-PnPProvisioningTemplateFromFolder |
New-PnPSiteTemplateFromFolder |
|
Read-PnPProvisioningTemplate |
Read-PnPSiteTemplate |
|
Remove-PnPFileFromProvisioningTemplate |
Remove-PnPFileFromSiteTemplate |
|
Save-PnPProvisioningTemplate |
Save-PnPSiteTemplate |
|
Set-PnPProvisioningTemplateMetadata |
Set-PnPSiteTemplateMetadata |
|
Add-PnPProvisioningTemplate |
Add-PnPSiteTemplate |
|
Apply-PnPTenantTemplate |
Invoke-PnPTenantTemplate |
|
Get-PnPAppInstance |
Get-PnPApp |
Different parameters |
Import-PnPAppPackage |
Install-PnPApp |
Different parameters |
Uninstall-PnPAppInstance |
Uninstall-PnPApp |
Different parameters |
Get-PnPHealthScore |
Deprecated | |
Enable-PnPResponsiveUI |
Deprecated | |
Disabled-PnPResponsiveUI |
Deprecated | |
Disable-PnPInplaceRecordsManagementForSite |
Set-PnPInPlaceRecordsManagement -Enabled $false |
|
Enable-PnPInplaceRecordsManagementForSite |
Set-PnPInPlaceRecordsManagement -Enabled $true |
|
Measure-PnPResponseTime |
Deprecated. Consider using Fiddler for more detailed data | |
Get-PnPManagementApiAccessToken |
Connect-PnPOnline -Scopes [scopes] |
|
Connect-PnPHubSite |
Add-PnPHubSiteAssociation |
Removed alias |
Disconnect-PnPHubSite |
Remove-PnPHubSiteAssociation |
Removed alias |
Add-PnPOffice365GroupToSite |
Add-PnPMicrosoft365GroupToSite |
Removed alias |
Add-PnPUnifiedGroupMember |
Add-PnPMicrosoft365GroupMember |
Removed alias |
Add-PnPUnifiedGroupOwner |
Add-PnPMicrosoft365GroupOwner |
Removed alias |
Clear-PnPUnifiedGroupMember |
Clear-PnPMicrosoft365GroupMember |
Removed alias |
Clear-PnPUnifiedGroupOwner |
Clear-PnPMicrosoft365GroupOwner |
Removed alias |
Get-PnPDeletedUnifiedGroup |
Get-PnPDeletedMicrosoft365Group |
Removed alias |
Get-PnPUnifiedGroup |
Get-PnPMicrosoft365Group |
Removed alias |
Get-PnPUnifiedGroupMembers |
Get-PnPMicrosoft365GroupMembers |
Removed alias |
Get-PnPUnifiedGroupOwners |
Get-PnPMicrosoft365GroupOwners |
Removed alias |
New-PnPUnifiedGroup |
New-PnPMicrosoft365Group |
Removed alias |
Remove-PnPDeletedUnifiedGroup |
Remove-PnPDeletedMicrosoft365Group |
Removed alias |
Remove-PnPUnifiedGroup |
Remove-PnPMicrosoft365Group |
Removed alias |
Remove-PnPUnifiedGroupMember |
Remove-PnPMicrosoft365GroupMember |
Removed alias |
Remove-PnPUnifiedGroupOwner |
Remove-PnPMicrosoft365GroupOwner |
Removed alias |
Restore-PnPDeletedUnifiedGroup |
Restore-PnPDeletedMicrosoft365Group |
Removed alias |
Set-PnPUnifiedGroup |
Set-PnPMicrosoft365Group |
Removed alias |
Execute-PnPQuery |
Invoke-PnPQuery |
Removed alias |
Ensure-PnPFolder |
Resolve-PnPFolder |
Removed alias |
Install-PnPSolution |
Deprecated | |
Add-PnPWorkflowDefinition |
Deprecated | |
Add-PnPWorkflowSubscription |
Deprecated | |
Get-PnPWorkflowDefinition |
Deprecated | |
Get-PnPWorkflowInstances |
Deprecated | |
Get-PnPWorkflowSubscription |
Deprecated | |
Remove-PnPWorkflowDefinition |
Deprecated | |
Remove-PnPWorkflowSubscription |
Deprecated | |
Resume-PnPWorkflowInstance |
Deprecated | |
Start-PnPWorkflowInstance |
Deprecated | |
Stop-PnPWorkflowInstance |
Deprecated | |
Test-PnPOffice365AliasIsUsed |
Test-PnPMicrosoft365AliasIsUsed |
Parameter Changes
Cmdlet | Parameter | Changes |
---|---|---|
Register-PnPManagementShell |
SiteUrl |
Removed. Not required anymore |
Connect-PnPOnline |
MinimalHealthScore |
Removed. Not applicable anymore |
Connect-PnPOnline |
SkipTenantAdminCheck |
Removed. |
Remove-PnPTenantSite |
FromRecycleBin |
Use Clear-PnPTenantRecycleBinItem |
Set-PnPTenantSite |
UserCodeMaximumLevel |
Sandbox solutions have been deprecated, no more applicable |
Set-PnPTenantSite |
UserCodeWarningLevel |
Sandbox solutions have been deprecated, no more applicable |
New-PnPAzureCertificate |
Out |
Use OutPfx instead |
Get-PnPAvailableLanguage |
Identity |
Removed as it does not apply to SharePoint Online |