Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
806 lines (592 sloc) 35.9 KB

SharePointPnP.PowerShell Changelog

Please do not commit changes to this file, it is maintained by the repo owner.

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

[3.8.1904.0] - unreleased


  • Added Sync-PnPAppToTeams to synchronize an app from the tenant app catalog to the Microsoft Teams App Catalog
  • Added Export-PnPClientSidePageMapping to export the mapping files needed during publishing page transformation


  • Added a -Kerberos switch to Connect-PnPOnline to facility authentication using Kerberos
  • Added the ability to set the view fields using Set-PnPView -Fields
  • Added the ability to add and removed indexed property keys to lists
  • Added the option to search by title on Get-PnPAlert
  • Added -CreateTeam to New-PnPUnifiedGroup and Set-PnPUnifiedGroup
  • Added -ContentType parameter to Add-PnPClientSidePage and Set-PnPClientSidePage
  • ConvertTo-PnPClientSidePage: added -Library and -Folder parameters to support modernization of pages living outside of the SitePages folder
  • ConvertTo-PnPClientSidePage: added -LogType, -LogFolder, -LogSkipFlush and -LogVerbose parameters to support log generation to an md file or SharePoint page
  • ConvertTo-PnPClientSidePage: added -DontPublish and -DisablePageComments parameters to control the page publishing and commenting
  • ConvertTo-PnPClientSidePage: added -PublishingPage and -PageLayoutMapping to support publishing page transformation


  • Heinrich Ulbricht [heinrich-ulbricht]
  • Gautam Sheth [gautamdsheth]
  • Thomas Meckel [tmeckel]
  • Jose Gabriel Ortega Castro [j0rt3g4]
  • Fabian Seither [fabianseither]



  • Added support for client side pages on SP2019
  • Added support for ALM cmdlets (Add-PnPApp, Get-PnPApp etc.) on SP2019
  • Added Add-PnPAlert cmdlet to create alerts (SPO and SP2019 only)
  • Added Get-PnPAlert to list alerts (SPO and SP2019 only)
  • Added Remove-PnPAlert to remove alerts (SPO and SP2019 only)
  • Added support to Connect-PnPOnline authenticate to SharePoint Online when Legacy Authentication has been turned off (Set-PnPTenant -LegacyAuthProtocolsEnabled:$false / Set-SPOTenant -LegacyAuthProtocolsEnabled:$false)
  • Support for cross site page transformation (create modern pages in other site then the one hosting the classic pages) via the TargetWebUrl parameter
  • Support for page transformation mapping parameters (UseCommunityScriptEditor and SummaryLinksToHtml). The first one will use the community script editor as a possible modern target web part, the second one will transform the summarylinks web part to html text instead of the default QuickLinks web part


  • Many typo fixes in code
  • Apply-PnPTenantTemplate will now list the sites created after applying a tenant template.
  • Fixed an issue with Connect-PnPOnline throwing an exception when authenticating using the -SPOManagementShell parameter.
  • Fixed connection issue with URL's containing spaces - #1250


  • Heinrich Ulbricht [heinrich-ulbricht]
  • Nick Schonning [nschonni]
  • Koen Zomers [KoenZomers]
  • Marvin Dickhaus [Weishaupt]
  • Lars Fernhomberg [lafe]




  • Fixed issue where New-PnPSite would through a null reference exception when creating a site collection without associating it to a hubsite.
  • Fixed issue were Save-PnPTenantTemplate was not adding files the PnP file.
  • Fixed issue where Save-PnPTenantTemplate would not allow files larger than 10MB.





  • Fixed Set-PnPTenantSite where the NoScriptSite parameter would always be set to false if not specified.




  • Added initial support for SharePoint 2019
  • Added Clear-PnPDefaultColumnValues cmdlet
  • Added Remove-PnPSearchConfiguration cmdlet
  • Added Export-PnPClientSidePage to export a page to a Provisioning Template
  • Added Add-PnPSiteDesignTask to apply a site design to a site. Intended as a replacement for Invoke-PnPSiteDesign as it the task can handle more than 30 actions.
  • Added Get-PnPSiteDesignRun to retrieve the list of site designs applied to a site collection
  • Added Get-PnPSiteDesignRunStatus to retrieve a list of all site script actions executed for a specified site design applied to a site
  • Added Get-PnPSiteDesignTask to retrieve a list of all currently scheduled site design tasks.
  • Added Remove-PnPSiteDesignTask to remove a previously scheduled site design task.
  • Added -IncludeHiddenLists to Get-PnPProvisioningTemplate to optionally also extract hidden lists in a template.
  • Added -HubSiteId to New-PnPSite to associate the site with a hubsite at creation time
  • Added -Owners to New-PnPSite to set the owners while creating a modern team site.


  • Set-PnPDefaultColumnValues: Fixed character encoding issue on folders #1706
  • Fixed import of search configuration to tenant via string
  • Set-PnPTenantSite: Added support for setting default sharing and sharing permissions
  • ConvertTo-PnPClientSidePage: Added support for copying page metadata to the modern version of the page + parameter to clear the transformation cache
  • Enable-PnPTelemetry and Disable-PnPTelemetry do not require a connection anymore.
  • Return more friendly exception if App Catalog does not exist when using Set-PnPStorageEntity, Get-PnPStorageEntity or Remove-PnPStorageEntity
  • Added -SystemUpdate flag to Set-PnPListItemPermission
  • Clean up temp data when using PEM string certificates, and support password on PEM string certificates.
  • Updated Set-PnPGroup to update both the Notes -and- the Description of a SharePoint group if using the -Description parameter


  • Koen Zomers (KoenZomers)
  • Gautam Sheth (gautamdsheth)



  • Added Reset-PnPFileVersion cmdlet


  • Add-PnPClientSidePageSection: Added support for section the section background of a client side page
  • Updated file and folder cmdlets to support special characters



  • Eric Skaggs (skaggej)
  • Gautam Sheth (gautamdsheth)



  • ConvertTo-PnPClientSidePage: creates a modern client side page from a classic wiki or web part page


  • Added support for setting the page header type in Set-PnPClientSidePage






  • Copy-PnPFile now supports special characters like '&' in file names
  • Updated New-PnPSite to support language/locale for new sites.
  • Updated documentation for New-PnPTenantSite
  • Fixed documentation for Measure-PnPWeb, Set-PnPSite
  • Updated samples
  • Fixes issue with Set-PnPUnifiedGroup where if you only change for instance the displayname a private group would be marked as public.
  • Renamed (and created aliases for the old cmdlet name) Apply-PnPProvisioningHierarchy to Apply-PnPTenantTemplate
  • Renamed (and created aliases for the old cmdlet name) Add-PnPProvisioningSequence to Add-PnPTenantSequence
  • Renamed (and created aliases for the old cmdlet name) Add-PnPProvisioningSite to Add-PnPTenantSequenceSite
  • Renamed (and created aliases for the old cmdlet name) Add-PnPPnPProvisioningSubSite to Add-PnPTenantSequenceSubSite
  • Renamed (and created aliases for the old cmdlet name) Get-PnPProvisioningSequence to Get-PnPTenantSequence
  • Renamed (and created aliases for the old cmdlet name) Get-PnPProvisioningSite to Get-PnPTenantSequenceSite
  • Renamed (and created aliases for the old cmdlet name) New-PnPProvisioningSequence to New-PnPTenantSequence
  • Renamed (and created aliases for the old cmdlet name) New-PnPProvisioningTeamSite to New-PnPTenantSequenceTeamSite
  • Renamed (and created aliases for the old cmdlet name) New-PnPProvisioningCommunicationSite to New-PnPTenantSequenceCommunicationSite
  • Renamed (and created aliases for the old cmdlet name) New-PnPProvisioningTeamNoGroupSite to New-PnPTenantSequenceTeamNoGroupSite
  • Renamed (and created aliases for the old cmdlet name) New-PnPProvisioningTeamNoGroupSubSite to New-PnPTenantSequenceTeamNoGroupSubSite
  • Renamed (and created aliases for the old cmdlet name) New-PnPProvisioningHierarchy to New-PnPTenantTemplate
  • Renamed (and created aliases for the old cmdlet name) Read-PnPProvisioningHierarchy to Read-PnPTenantTemplate
  • Renamed (and created aliases for the old cmdlet name) Save-PnPProvisioningHierarchy to Save-PnPTenantTemplate
  • Renamed (and created aliases for the old cmdlet name) Test-PnPProvisioningHierarchy to Test-PnPTenantTemplate


  • Marked Get-PnPProvisioningTemplateFromGallery as deprecated as the PnP Template Gallery has been shut down.


  • Paul Bullock (pkbullock)
  • Fran�ois-Xavier Cat (lazywinadmin)
  • Koen Zomers (KoenZomers)
  • Kevin McDonnell (kevmcdonk)

[3.2.1810.0] Released


  • Add-PnPProvisioningSequence : Adds an in-memory sequence to an in-memory provisioning hierarchy
  • Add-PnPProvisioningSite : Adds an in-memory site definition to a in-memory sequence
  • Add-PnPProvisioningSubSite : Adds an in-memory sub site defintion to an in-memory site
  • Apply-PnPProvisioningHierarchy : Applies a provisioninghierarchy with a site sequence to a tenant
  • Get-PnPProvisioningSite : Returns a site as an in-memory object from a given provisioning hierarchy
  • New-PnPProvisioningHierarchy : Creates a new in-memory provisioning hierarchy
  • New-PnPProvisioningSequence : Creates a new in-memory provisioning sequence
  • New-PnPProvisioningCommunicationSite : Creates a new in-memory communication site definition
  • New-PnPProvisioningTeamNoGroupSite : Creates a new in-memory team site definition which has no associated office365 group
  • New-PnPProvisioningTeamNoGroupSubSite : Creates a new in-memory team sub site definition which has no associated office365 group
  • New-PnPProvisioningTeamSite : Creates a new in-memory team site definition
  • Read-PnPProvisioningHierarchy : Reads an existing (file based) provisioning hierarchy into an in-memory instance
  • Save-PnPProvisioningHierarchy : Saves an in-memory provisioning hierarchy to a pnp file
  • Test-PnPProvisioningHierarchy : Tests an in-memory hierarchy if all template references are correct in the site sequence
  • Get-PnPException : Returns the last occurred exception that occurred while using PowerShell.


  • Updated Set-PnPSite to allow for setting of a logo on modern team site
  • Updated Get-PnPTerm to allow for -IncludeChildTerms parameter, which will load, if available all child terms
  • Updated Get-PnPTerm to allow for only specifying the id of a termset, without needing to require to specify the termset and termgroup.





  • Minor bugfixes
  • Updated core library



  • Added Get-PnPLabel and Set-PnPLabel to get and set compliancy tags/labels on a list or library. Only available for SharePoint Online.


  • Fixed Get-PnPSearchCrawlLog where listing user profile crawl entries failed for some tenants
  • Added default pipebind to Get-PnPListitem
  • Add-PnPDocumentSet now adds the content type to the document library.
  • Updated documentation for Clear-PnPRecycleBinItem and Restore-PnPRecycleBinItem
  • Updated documentation for New-PnPSite


  • KoenZomers
  • robinmeure



  • Added IncludeClassification to Get-PnPUnifiedGroup
  • Updated documentation for Get-PnPSearchCrawlLog
  • Added -NewFileName to Add-PnPFile cmdlet


  • vipulkelkar
  • wobba
  • koenzomers



  • Added Grant-PnPTenantServicePrincipalPermission to explicitly grant a permission on a resource for the tenant.


  • Fixed edge cases where progress sent to PowerShell would be null, causing the provisioning of a template to end prematurely.
  • Fixed Unregister-PnPHubSite where you could not unregister a hub site if the site was deleted before unregistering





  • Added -Timeout option to Add-PnPApp
  • Added -CollapseSpecification option to Submit-PnPSearchQuery
  • Added -InSiteHierarchy to Get-PnPField to search for fields in the site collection
  • Added Get-PnPSearchCrawlLog


  • Fix for issue where using Add-PnPFile and setting Created and Modified did not update values



  • Added Enable-PnPPowerShellTelemetry, Disable-PnPPowerShellTelemetry, Get-PnPPowershellTelemetryEnabled
  • Added Enable-PnPTenantServicePrincipal
  • Added Disable-PnPTenantServicePrincipal
  • Added Get-PnPTenantServicePrincipal
  • Added Get-PnPTenantServicePermissionRequests
  • Added Get-PnPTenantServicePermissionGrants
  • Added Approve-PnPTenantServicePrincipalPermissionRequest
  • Added Deny-PnPTenantServicePrincipalPermissionRequest
  • Added Revoke-PnPTenantServicePrincipalPermission
  • Added -Scope parameter to Get-PnPStorageEntity, Set-PnPStorageEntity and Remove-PnPStorageEntity to allow for handling storage entity on site collection scope. This only works on site collections which have a site collection app catalog available.
  • Added -CertificatePassword option to New-PnPAzureCertificate
  • Added output of thumbprint for New-PnPAzureCertificate and Get-PnPAzureCertificat


  • Added -NoTelemetry switch to Connect-PnPOnline
  • Updated Connect-PnPOnline to allow for -LoginProviderName when using -UseAdfs to authenticate
  • Fixed issue where Add-PnPApp would fail where -Publish parameter was specified and -Scope was set to Site
  • Fixed issue where New-PnPUnifiedGroup prompted for creation even though mail alias did not exist



  • Martin Duceb [cebud]
  • Kev Maitland [kevmaitland]
  • Martin Loitzl [mloitzl]



  • Now using signed core library assembly
  • Updated Set-PnPTenantSite to handle changing the Site Lock State correctly. You cannot use both -LockState and set other properties at the same time due to possible delays in making the lockstate effective.



  • Added -Tree parameter to Get-PnPNavigationNode which will return a tree representation of the selected navigation structure
  • Added -Parent parameter which takes an ID to Add-PnPNavigationNode instead of using the -Header parameter
  • Added -Scope parameter to Add-PnPApp, Get-PnPApp, Install-PnPApp, Publish-PnPApp, Remove-PnPApp, Uninstall-PnPApp, Unpublish-PnPApp, Update-PnPApp to support site collection app catalog
  • Added -Wait parameter to Install-PnPApp which will wait for the installation to finish
  • Added Get-PnPHideDefaultThemes cmdlet
  • Added Set-PnPHideDefaultThemes cmdlet
  • Added Get-PnPListRecordDeclaration cmdlet
  • Added Set-PnPListRecordDeclaration cmdlet
  • Added Get-PnPInPlaceRecordsManagement cmdlet
  • Added Get-PnPInformationRightsManagement cmdlet
  • Added Set-PnPInformationRightsManagement cmdlet
  • Added New-PnPUPABulkImportJob cmdlet
  • Added Get-PnPUPABulkImportStatus cmdlet


  • Added additional properties to Set-PnPList: Description, EnableFolderCreation, ForceCheckout, ListExperience
  • ALM Cmdlets (Add-PnPApp, etc.) now allow for specifying the app title instead of only an id.
  • Updated Set-PnPInPlaceRecordsManagement cmdlet to use a -Enabled parameter instead of -On and -Off
  • Add-PnPClientSideWebPart and Add-PnPClientSideText now return the client side component added
  • Fixed issue with Set-PnPTenantTheme not recognizing a parameter value accordingly
  • Added -HideDefaultThemes parameter to Set-PnPTenant
  • Get-PnPTenant now returns if default themes are hidden or not
  • Added ability to cancel Device Login requests with CTRL+C
  • Renamed Connect-PnPHubSite to Add-PnPHubSiteAssociation and added alias for Connect-PnPHubSite
  • Renamed Disconnect-PnPHubSite to Remove-PnPHubSiteAssociation and added alias for Disconnect-PnPHubSite
  • Fixed output of File/Folder objects which caused the creation of an error message that was not thrown to the output but was available in the $error built-in variable
  • Fixed Set-PnPUserProfileProperty cmdlet to accept $null values to clear properties
  • Fixed Invoke-PnPSiteDesign where you connected to the -admin URL, and it ignored the WebUrl parameter when applying the site design
  • Added WebUrl parameter to Set-PnPWebTheme to support connection via -admin URL needed by app-only connections
  • Fixed issue with


  • Deprecated -Header parameter on Add-PnPNavigationNode in favor or -Parent [Id]
  • Deprecated Disable-PnPInPlaceRecordsManagementForSite in favor of Set-PnPInPlaceRecordsManagement -Enabled $true
  • Deprecated Enabled-PnPInPlaceRecordsManagementForSite in favor of Set-PnPInPlaceRecordsManagement -Disabled $true
  • Deprecated Connect-PnPHubSite. Use Add-PnPHubSiteAssociation
  • Deprecated Disconnect-PnPHubSite. Use Remove-PnPHubSiteAssociation


casselc stevebeauge velingeorgiev cebud jensotto

[2.24.1803.0] - 2018-03-06


  • Added Get-PnPTenant cmdlet
  • Added Set-PnPTenant cmdlet
  • Added Set-PnPWebTheme cmdlet
  • Added Invoke-PnPSiteDesign cmdlet
  • Added Read-PnPProvisioningTemplate cmdlet [Rename: see deprecated section]
  • Added Invoke-PnPQuery cmdlet [Rename: see deprecated section]
  • Added Resolve-PnPFolder cmdlet [Rename: see deprecated section]
  • Added New-PnPAzureCertificate cmdlet
  • Added Get-PnPAzureCertificate cmdlet
  • Added Test-PnPOffice365GroupAliasIsUsed cmdlet
  • Added Remove-PnPStoredCredential
  • Added Add-PnPStoredCredential
  • Added Get-PnPHubSite cmdlet
  • Added Set-PnPHubSite cmdlet
  • Added Grant-PnPHubSiteRights cmdlet
  • Added Register-PnPHubSite cmdlet
  • Added Unregister-PnPHubSite cmdlet
  • Added Connect-PnPHubSite cmdlet
  • Added Disconnect-PnPHubSite cmdlet
  • Added Add-PnPTenantTheme cmdlet
  • Added Get-PnPTenantTheme cmdlet
  • Added Remove-PnPTenantTheme cmdlet
  • Added Set-PnPTenantCdnEnabled cmdlet
  • Added Get-PnPTenantCdnEnabled cmdlet
  • Added Get-PnPTenantCdnOrigin cmdlet
  • Added Add-PnPTenantCdnOrigin cmdlet
  • Added Remove-PnPTenantCdnOrigin cmdlet
  • Added Get-PnPTenantCdnPolicies cmdlet
  • Added Set-PnPTenantCdnPolicy cmdlet
  • Added Add-PnPSiteCollectionAppCatalog cmdlet
  • Added Remove-PnPSiteCollectionAppCatalog cmdlet
  • Added Get-PnPNavigationNode cmdlet
  • Added Get-PnPRoleDefinition cmdlet
  • Added Add-PnPRoleDefinition cmdlet
  • Added Remove-PnPRoleDefinition cmdlet
  • Implemented .NET 2.0 Standard project to allow for cross-platform use with PowerShell 6.0


  • Added "Formula" dynamic parameter to Add-PnPField to allow creating calculated fields.
  • Updated Set-PnPClientSidePage to support setting the page title
  • Added -Graph [and -LaunchBrowser] option to authenticate with Connect-PnPOnline to the Graph using the PnP O365 Management Shell Azure AD Application
  • Updated the UnifiedGroup cmdlets to also take an Alias of group as a value for the -Identity parameter
  • Minor documentations updates [thechriskent]
  • Updated Connect-PnPOnline to support connecting using PEM encoded certificate strings
  • Updated Connect-PnPOnline for On-Premises to allow for additional HighTrustCertificate parameters [fowl2]
  • Added -EnableAttachment parameter for Set-PnPList [Laskewitz]
  • Added -Approve parameter for Set-PnPFileCheckedIn [Aproxmiation]
  • Added -EnableModeration for Set-PnPList [Apromixation]
  • Fixed issue where it was not possible to use New-PnPSite when using Connect-PnPOnline with the -UseWebLogin parameter
  • Fixed issue with Copy-PnPFile when copying to a location within the current web where metadata was not being retained
  • Fixed issue with Add-PnPFile when a new file was uploaded and using the cmdlet also field values where set, the version would increase to 2.0 instead of the expected 1.0
  • Fixed issues with Set-PnPTheme cmdlet not accepting site relative urls
  • Move-PnPFolder now returns the folder that has been moved
  • Updated Get-PnPStoredCredentials to support .NET Standard
  • Updated/fixed documentation on various cmdlets
  • Fixed issue with Get-PnPTenantSite not returning all sites in large tenants
  • Added -PnPO365ManagementShell [and -LaunchBrowser] login option to Connect-PnPOnline
  • Changed changelog format
  • Updated Remove-PnPNavigationNode cmdlet to support removal by Id
  • Updated Remove-PnPNavigationNode cmdlet to support the -All parameter
  • Updated Set-PnPList cmdlet to change moderation setting
  • Updated Set-PnPFileCheckedIn to approve the file


  • [SharePoint Online Only] Deprecated Get-PnPAppInstance, Import-PnPAppPackage, Uninstall-PnPAppPackage. Use Add-PnPApp, Install-PnPApp, Publish-PnPApp, Uninstall-PnPApp, Remove-PnPApp instead where applicable.
  • Deprecated Load-PnPProvisioningTemplate, renaming it to Read-PnPProvisioningTemplate which follows the PowerShell approved verb standard. Load-PnPProvisioningTemplate has been added as an alias for Read-PnPProvisioningTemplate.
  • Deprecated Execute-PnPQuery, renaming it to Invoke-PnPQuery which follows the PowerShell approved verb standard. Execute-PnPQuery has been added as an alias for Invoke-PnPQuery.
  • Deprecated Ensure-PnPFolder, moving functionality to Resolve-PnPFolder which follows the PowerShell approved verb standard. Ensure-PnPFolder has been added as an alias for Resolve-PnPFolder.
  • Documentation/Markdown generation has been removed from build, now points to
  • Deprecated Remove-PnPNavigationNode -Title and -Header parameters. Use the Identity parameter instead.
  • Marked -WebTemplate parameter on Get-PnPTenantSite as obsolete. Use -Template instead.
  • Deprecated Get-PnPAzureADManifestKeyCredentials. Use Get-PnPAzureCertificate instead.

[2.23.1802.0] - 2018-02-05


  • Added Set-PnPSiteDesign and Set-PnPSiteScript cmdlets



  • Added Get-PnPTenantAppCatalogUrl
  • Start-PnPWorkflowInstance
  • Get-PnPWorkflowInstance


  • Added cmdlets for Site Designs: Add-PnPSiteDesign, Add-PnPSiteScript, Get-PnPSiteDesign, Get-PnPSiteScript, Get-PnPSiteDesignRights, Grant-PnPSiteDesignRights, Remove-PnPSiteDesign, Remove-PnPSiteScript, Revoke-PnPSiteDesignRights


  • Added additional authentication option with Connect-PnPOnline allowing you use an existing Access Token for authentication
  • Added Get-PnPClientSideComponent, Move-PnPClientSideComponent, Remove-PnPClientSideComponent, Set-PnPClientSideText, Set-PnPClientSideWebPart


  • Added Measure-PnPWeb, Measure-PnPList and Measure-PnPResponseTime cmdlets
  • Added Set-PnPStorageEntity, Get-PnPStorageEntity and Remove-PnPStorageEntity cmdlets to manage storage entities / farm properties


  • Fixed issues with Set-PnPListItem -Values, Add-PnPListItem -Values and Add-PnPFile -Values, updated documentation for these cmdlets
  • Added confirmation prompt to Get-PnPFile to ask if local file should be overwritten. Use -Force to overwrite this


  • Added Set-PnPWebPermissions
  • Updated Get-PnPListItem to execute scriptblocks
  • Added Set-PnPListItemPermissions
  • Added Get-PnPDefaultColumnValues
  • Added Set-PnPListPermissions


  • Added Get-PnPTerm
  • Added Get-PnPTermSet
  • Added New-PnPTerm
  • Added New-PnPTermSet
  • Added New-PnPTermGroup
  • Updated Get-PnPTermGroup to optionally return all termgroups in a TermStore


  • Introducing the -Includes parameter. The parameter will allow you (on selected cmdlets) to retrieve values for properties that are not being retrieved by default. The parameter exposes the possible values on pressing tab, and you can specify multiple values. The parameter is available on the following cmdlets: Get-PnPAppInstance, Get-PnPCustomAction, Get-PnPDocumentSetTemplate, Get-PnPEventReceiver, Get-PnPFeature, Ensure-PnPFolder, Get-PnPFolder, Get-PnPList, Get-PnPView, Get-PnPGroup, Get-PnPRecyclyBinItem, Get-PnPSite, Get-PnPTermGroup, Get-PnPWeb.
  • Updated the output of a view cmdlets so return table formatted data.


  • Added Submit-PnPSearchQuery cmdlet
  • Added Set-PnPSiteClosure and Get-PnPSiteClosure cmdlets
  • Added Get-PnPContentTypePublishingHubUrl
  • Added Get-PnPSiteCollectionTermStore which returns the Site Collection Term Store.


  • Added Get-PnPTenantRecyclyBinItem cmdlet to list all items in the tenant scoped recycle bin
  • Added -Wait and -LockState properties to Set-PnPTenantSite
  • The Tenant cmdlets now report progress if the -Wait parameter is specified (where applicable)


  • Added Clear-PnPRecyclyBinItem, Clear-PnPTenantRecyclyBinItem, Get-PnPRecyclyBinItem, Move-PnPRecyclyBinItem, Restore-PnPRecyclyBinItem, Restore-PnPTenantRecyclyBinItem cmdlets
  • Added Move-PnPFolder, Rename-PnPFolder cmdlets
  • Added Add-PnPPublishingImageRendition, Get-PnPPublishingImageRendition and Remove-PnPPublishingImageRendition cmdlets
  • Refactored Get-PnPFile. ServerRelativeUrl and SiteRelativeUrl are now obsolete (but will still work), use the Url parameter instead which takes either a server or site relative url.


  • Added support to enable versionining and set the maximum number of versions to keep on a list and library with Set-PnPList
  • Updated Add-PnPUserToGroup to allow to send invites to external users


  • Added Set-PnPUnifiedGroup cmdlet


  • Exposed ResetSubwebsToInherit and UpdateRootwebOnly parameters to Set-PnPTheme.


  • Marked Get-SPOSite as deprecated. We will remove this cmdlet in the January 2017 release. Please switch as soon as possible to Get-PnPSite instead. A warning will be shown the moment Get-SPOSite is used.
  • Renamed all cmdlet verbs from -SPO* to -PnP*. From now all cmdlets follow the Verb-PnPNoun pattern. There are corresponding aliases available now that allow existing scripts to continue to work.


  • Added Get-SPOProvisioningTemplateFromGallery cmdlet


  • Added Get-SPOFolder cmdlet
  • Minor update to Set-SPOListItem
  • Added attributes to Get-SPOFile
  • Added return type to generated documentation for those cmdlets that return an object or value


  • Added Load-SPOPRovisioningTemplate
  • Added Save-SPOProvisioningTemplate


  • Live from MS Ignite: Added Remove-SPOTaxonomyItem cmdlet
  • Live from MS Ignite: Added Remove-SPOTermGroup cmdlet


  • Added Add-SPODocumentSet cmdlet


  • Added Enable-SPOResponsiveUI and Disable-SPOResponsiveUI cmdlets
  • Added -CreateDrive parameter to Connect-SPOnline cmdlet, allowing to create a virtual drive into a SharePoint site
  • Added Invoke-SPOWebAction cmdlet


  • Namespace, Assembly and Project rename from OfficeDevPnP.PowerShell to SharePointPnP.PowerShell


  • Added -ExtensibilityHandlers parameter to Get-SPOPRovisioningTemplate


  • Added List parameter to Get-SPOContentType, allowing to retrieve the ContentTypes added to a list.


  • Added Remove-SPOListItem
  • Updated Get-SPOWeb and Get-SPOSubWebs to include ServerRelativeUrl
  • Added Ensure-SPOFolder cmdlet


  • Added Remove-SPOFieldFromContentType cmdlet
  • Added Get-SPOSiteSearchQueryResults cmdlet


  • Added -PersistPublishingFiles and -IncludeNativePublishingFiles parameters to Get-SPOProvisioningTemplate

**2016-02-03 **

  • Added -ExcludedHandlers attribute to Apply-SPOProvisioningTemplate and Get-SPOPRovisioningTemplate 2016-02-01

  • Added Convert-SPOProvisioningTemplate cmdlet


  • Added -AsIncludeFile parameter to New-SPOProvisioningTemplateFromFolder


  • Added a Set-SPOContext cmdlet


  • Added Set-SPOListItem cmdlet


  • Added, where applicable, Site Relative Url parameters, besides the existing Server Relative Url parameters on cmdlets.
  • Implemented the use of PnP Monitored Scope. Turn on the trace log with Set-SPOTraceLog -On -Level Information -LogFile c:\pathtoyourlogfile.log to see the tracelog.
  • Added a Get-SPOTheme cmdlet


  • Added New-SPOProvisioningTemplateFromFolder cmdlet


  • Added optional -Encoding parameter to Export-SPOTaxonomy


  • Update Get-SPOSearchConfiguration and Set-SPOSearchConfiguration to support Path parameter to export to or import from a file


  • Added -Parameters parameter to Apply-SPOProvisioningTemplate. See help for the cmdlet for more info.
  • Renamed PageUrl parameter of web part cmdlets to ServerRelativePageUrl. Set PageUrl as parameter alias to not break existing scripts.


  • Added Get-SPOProperty to dynamically load specified properties from objects.


  • Renamed Path parameter of Set-SPOHomePage to RootFolderRelativeUrl. Set Path as parameter alias.


  • Started adding unit tests
  • Added warning when using Install-SPOSolution to documentation. The cmdlet can potentially clear the composed look gallery.


  • Added Set-SPOTraceLog cmdlet


  • Added -Recurse parameter to Get-SPOSubWebs cmdlet to recursively retrieve all subwebs


  • Modified Connect-SPOnline to output version number when specifying -Verbose parameter


  • Added Get-SPOWebPartXml cmdlet to export web part XML from a page.


  • Added Set-SPOUserProfileProperty (only available for SharePoint Online due to limitations of the On-Premises CSOM SDK) 2015-07-22

  • Added Remove-SPOGroup cmdlet


  • Added additional attribute (-Key) to Get-SPOWebPartProperty cmdlet


  • Added additional functionality for connect-sponline in resolving credentials. If no credentials are specified throught the -Credentials parameter, a query is done against the Windows Credentials Manager to retrieve credentials. First is checked for the full URL of the connect request, e.g. https://yourserver/sites/yoursite. If no credential is found for that entry, a query is done for https://yourserver/sites. If no credential is found that entry, a query is done for https://yourserver, if no credential is found for that entry a query is done for 'yourserver'. So:
Connect-SPOnline -Url

will mean that it will check your credential manager for entries in this order:

Notice that using

Connect-SPOnline -Url -Credentials <yourlabel>

still works as before.


  • Added Get-SPOSearchConfiguration and Set-SPOSearchConfiguration cmdlets
  • Added support for folder property bags in Set-SPOPropertyBagValue, Get-SPOPropertyBag and Remove-SPOPropertyBagValue. See the help of the cmdlets for more details and examples.


  • Added Add-SPOIndexedProperty and Remove-SPOIndexedProperty to allow adding or removing single keys from a set of indexed properties.


  • Added OverwriteSystemPropertyBagValues parameter to Apply-SPOProvisioningTemplate cmdlet
  • Updated installer to allow for setting advanced properties.


  • Changed installers from 64 bit to 32 bit.
  • Added ResourceFolder parameter to Apply-SPOProvisioningTemplate cmdlet


  • Added OnQuickLaunch parameter to New-SPOList cmdlet


  • Added Add-SPOWorkflowDefinition cmdlet
  • Updated Add-SPOField to allow for -Field parameter to add a site column to a list.


  • Added Set-SPOSitePolicy and Get-SPOSitePolicy cmdlets


  • Updated Add-SPOHtlPublishingPageLayout and Add-SPOPublishingPageLayout to support DestinationFolderHierarchy parameter
  • Updated Add-SPOFile to create the target folder is not present
  • Updated Remove-SPOUserFromGroup to accept either a login name or an email address of a user.


  • Updated Set-SPOList to switching if ContentTypes are enabled on the list


  • Updated Get-SPOProvisioningTemplate and Apply-SPOProvisioningTemplate to show a progress bar
  • Updated GEt-SPOProvisioningTemplate with optional switches to export either Site Collection Term Group (if available) or all Term Groups in the default site collection termstore.
  • Added Export-SPOTermGroup cmdlet that supports the provisioning engine XML format
  • Added Import-SPOTermGroup cmdlet that supports the provisioning engine XML format


  • Admin cmdlets: Get-SPOTenantSite, New-SPOTenantSite, Remove-SPOTenantSite, Set-SPOTenantSite and Get-SPOWebTemplates now automatically switch context. This means that you don't have to connect to first in order to execute them.


  • Added Apply-SPOProvisioningTemplate cmdlet
  • Added Get-SPOPRovisioningTemplate cmdlet
  • Extended Enable-SPOFeature cmdlet to handle Sandboxed features


  • Added Get-SPOJavaScript link cmdlet
  • Refactored JavaScript related cmdlets to use -Name parameter instead of -Key (-Key still works for backwards compatibility reasons)
  • Refactored JavaScript related cmdlets to use -Scope [Web|Site] parameter instead of -FromSite, -SiteScoped and -AddToSite parameters. The old parameters still work for backwards compatibility reasons.
  • Fixed an issue in cmdlet help generation where the syntax would not be shown for cmdlets with only one parameter set.


  • Added Sequence parameter to Add-SPOJavaScriptLink and Add-SPOJavaScriptBlock cmdlets
  • Added Remove-SPOFile cmdlet


  • Updated Location parameter in Add-/Remove-SPONavigationNode


  • Introduced new Cmdlet: Get-SPOWebPartProperty to return web part properties
  • Updated Set-SPOWebPartProperty cmdlet to support int values


  • Removed SetAssociatedGroup parameter from new-spogroup cmdlet and moved it to a separate cmdlet: Set-SPOGroup
  • Introduced new Cmdlet: Set-SPOGroup to set the group as an associated group and optionally add or remove role assignments
  • Introduced new Cmdlet: Set-SPOList to set list properties
  • Introduced new Cmdlet: Set-SPOListPermission to set list permissions


  • Changed New-SPOWeb to return the actual web as an object instead of a success message.
  • Added -SetAssociatedGroup parameter to New-SPOGroup to set a group as a default associated visitors, members or owners group
  • Updated New-SPOGroup to allow setting groups as owners


  • Added Get-SPOListItem cmdlet to retrieve list items by id, unique id, or CAML. Optionally you can define which fields to load.


  • Added Add-SPOFolder cmdlet


  • Added Get-SPOIndexedPropertyBagKeys cmdlet
  • Updated Set-SPOPropertyBagValue to not remove a property from the indexed properties if it was already in the indexed properties.
  • Updated Get-SPOTenantSite output formatting


  • Split up Add-SPOField into Add-SPOField and Add-SPOFieldFromXml. The latter only accepts XML input while the first takes parameters to create fields


  • Added Add-SPOWorkflowSubscription, Get-SPOWorkflowDefinition, Get-SPOWorkflowSubscription, Remove-SPOWorkflowDefinition, Remove-SPOWorkflowSubscription, Resume-SPOWorkflowInstance, Stop-SPOWorkflowInstance


  • Added Get-SPOUserProfileProperty cmdlet
  • Added New-SPOPersonalSite cmdlet
  • Fixed Get-SPOView cmdlet


  • Added Set-SPODefaultColumnValue


  • Removed Url Parameters on Add-SPOFile and made Folder parameter mandatory.


  • Added new Set-SPOWeb cmdlet to set Title, SiteLogo, or AlternateCssUrl


  • Renamed Add-SPOApp to Import-SPOAppPackage to align with server cmdlet
  • Renamed Remove-SPOApp to Uninstall-SPOAppInstance to align with server cmdlet


  • Removed OfficeDevPnP.PowerShell.Core project, not in use anymore as all cmdlets now make use of the OfficeDevPnP.Core project.


  • Split up Add-SPOWebPart in two cmdlets, Add-SPOWebPartToWikiPage and Add-SPOWebPartToWebPartPage, to reduce confusing parameter sets
  • Changed parameters of Add-SPOCustomAction cmdlet
  • Changed name of Add-SPONavigationLink to Add-SPONavigationNode, in sync with method name of OfficeDevPnP.Core. Changed parameters of cmdlet.


  • Updated several commands to use OfficeDevPnP.Core instead of OfficeDevPnP.PowerShell.Core
  • Marked SPOSite and SPOTaxonomy as obsolete. Use OfficeDevPnP.Core extensions instead


  • Simplified connection code, added functionality to connect with add-in Id and add-in Secret.
  • Added connection samples in samples folder.
  • Added Get-SPORealm command.


  • Namespace change from OfficeDevPnP.SPOnline to OfficeDevPnP.PowerShell
You can’t perform that action at this time.