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.
- Added
Get-PnPTenantInstance
which will return one or more tenant instances, depending if you have a multi-geo or single-geo (default) tenant. - Added optional
-ScheduledPublishDate
parameter toAdd-PnPPage
andSet-PnPPage
to allow for scheduling a page to be published - Added
-RemoveScheduledPublish
toSet-PnPPage
to allow for a page publish schedule to be removed - Added support for off peak SharePoint Syntex content classification and extraction for lists and folders via new
-OffPeak
and-Folder
parameters forRequest-PnPSyntexClassifyAndExtract
- Added
Get\Set-PnPPlannerConfiguration
to allow working with the Microsoft Planner tenant configuration - Added
Get\Set-PnPPlannerUserPolicy
to allow setting Microsoft Planner user policies for specific users - Added
Get\Add\Remove-PnPPlannerRoster
which allows a Microsoft Planner Roster to be created, retrieved or removed - Added
Get\Add\Remove-PnPPlannerRosterMember
to be able to read, add and remove members from a Microsft Planner Roster - Added
Get-PnPPlannerRosterPlan
to be able to retrieve the Microsoft Planner plans inside a Microsoft Planner Roster or the ones belonging to a specific user - Added support for off peak SharePoint Syntex content classification and extraction for lists and folders via new
-OffPeak
and-Folder
parameters forRequest-PnPSyntexClassifyAndExtract
- Added
Invoke-PnPSiteScript
which allows for a Site Script to be executed on a site without needing to have it registered in a site design or site script first - Added
Copy-PnPList
which allows for a copy of a SharePoint list to be made in the same site or to another site. Copying along list item data is not yet possible but will follow in a later release. - Added
Get\Set-PnPWebHeader
to work with the Change the look > Header options of a site - Added
Enable-PnPPageScheduling
andDisable-PnPPageScheduling
to enable or disable page publishing scheduling on modern pages - Added ability to add multiple users to a Teams team in the
Add-PnPTeamsUser
cmdlet - Added
-Credentials $cred
or-CurrentCredentials
to be allowed to be used in combination withConnect-PnPOnline -SPOManagementshell
- Added
-InformationBarriersMode
in theSet-PnPTenantSite
cmdlet which allows fine tuning of the information barriers mode per site collection - Added
-InformationBarriersSuspension
in theSet-PnPTenant
cmdlet which allows information barriers to be enabled or disabled in a tenant - Added
-Recycle
parameter toRemove-PnPPage
to delete the page and send it to the recycle bin. This prevents permanently deleting the page and you can also restore it. - Added
-DemoteNewsArticle
parameter to theSet-PnPPage
cmdlet to demote an existing news post to a regular page. - Added
-Translate
and-TranslationLanguageCodes
parameters toSet-PnPPage
andAdd-PnPPage
. This enables multilingual page creation in sites. - Added
DisableSpacesActivation
state to be returned withGet-PnPTenant
- Added
-AllowFilesWithKeepLabelToBeDeletedSPO
and-AllowFilesWithKeepLabelToBeDeletedODB
options toSet-PnPTenant
which allows configuration of files on SharePoint Online and OneDrive for Business being blocked by a retention policy to be possible to be deleted anyway and then moved to the preservation hold library. The default for SharePoint Online for this will change as announced in Message Center announcement MC264360. This will allow reverting it. The current values can be retrieved usingGet-PnPTenant
. - Added
DisableAddToOneDrive
state to be returned withGet-PnPTenant
cmdlet. - Added
-DisableAddToOneDrive
toSet-PnPTenant
cmdlet to enable/disable users from adding shortcuts to OneDrive. - Added optional
-Site
parameter toAdd-PnPContentTypesFromContenTypeHub
which allows a specific site to be specified to add the content type hub content types to - Added
Set-PnPBuiltInSiteTemplateSettings
andGet-PnPBuiltInSiteTemplateSettings
to allow making the built in SharePoint Online site templates visible or hidden and getting their current settings - Added support for Channel sites (ID 69) to
Add-PnPSiteDesign
,Set-PnPSiteDesign
andAdd-PnPSiteDesignFromWeb
- Added optional
-IsDefault
option toGet-PnPPowerPlatformEnvironment
which allows just the default or non default environments to be returned. If not provided, all environments will be returned as was the case before this addition. - Added
ResourceBehaviorOptions
option inNew-PnPTeamsTeam
cmdlet to setResourceBehaviorOptions
while provisioning a Team - Added alias on
Copy-PnPFile
forCopy-PnPFolder
. It could already be used to copy a folder, but to make this more clear, and as we already had aCopy/Move-PnPFolder
as well, the same cmdlet is now also available under its alternative cmdlet name.
- Improved
Get-PnPFile
cmdlet to handle large file downloads - Updated
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
to also allow results fromGet-PnPAzureADUser -Delta
to be provided through-Users
. - A clearer error message will now be returned when using
Add-PnPListItem -List
and specifying an invalid list name. - Response of
Add-PnPContentTypesFromContenTypeHub
is now returned in the root of the response as well as under Value as it was previously for backwards compatibility. - Improved synopsis documentation for
Update-PnPUserType
cmdlet.
- Fixed
Get-PnPGroupMember -User
not properly returning the specified user - Fixed group member retrieval through
Get-PnPAzureADGroupOwner
andGet-PnPAzureAdGroupMember
throwing an exception when a security group has been placed in the Azure Active Directory group being queried - Fixed an issue where
Set-PnPPage
would not be able to find a page if you would start the-Identity
with a forward slash - Fixed an issue where
Set-PnPPage
would not return its parent Folder - Fixed
Set-PnPListItem
not working when usingLabel
andValues
parameters together - Fixed documentation for
Get-PnPFlow
andEnable-PnPFlow
cmdlets - Fixed issue with
Add-PnPListFoldersToProvisioningTemplate
not working when having nested folder structure - Fixed documentation for
Get-PnPFlow
andEnable-PnPFlow
cmdlets - Fixed
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
not being able to deal with multi value properties on the Azure Active Directory side, such asBusinessPhones
- Fixed
Add-PnPListItem
issue with setting MultiChoice columns when using-Batch
parameter - Fixed issue with
Remove-PnPListItem
when trying to use it withBatch
parameter - Fixed
Add-PnPDataRowsToSiteTemplate
not exporting TaxonomyFieldValues properly - Fixed
Add/Set-PnPListItem
issue with managed metadata / taxonomy field value failing in a batched request. - Fixed
Set-PnPListItem
issue with settingModified
date value properly when using-Batch
parameter. - Fixed
Get-PnPTeamsTeam -Identity
throwing an exception if the name of the team would contain special characters - Fixed
Get-PnPTerm
throwing an exception when used in combination with-Includes
#1384 - Fixed
Get-PnPDiagnostics
throwing an unable to cast exception under some circumstances #1380
- Removed
Add-PnPClientSidePage
as that was marked deprecated. UseAdd-PnPPage
instead. - Removed
Get-PnPSubWebs
as that was marked deprecated a year ago. UseGet-PnPSubWeb
instead. #1394
- Koen Zomers [koenzomers]
- Bert Jansen [jansenbe]
- Gautam Sheth [gautamdsheth]
- [reusto]
- Asad Refai [asadrefai]
- Daniel Huber [daniel0611]
- Bart-Jan Dekker [bjdekker]
- Giacomo Pozzoni [jackpoz]
- Chris Kent [thechriskent]
- Filip Bosmans [FilipBosmans]
- [zylantha]
- Justin [pagejustin]
- Collin Argo [SCollinA]
- Leon Armston [LeonArmston]
- Lars Höög [h00g]
- [kachihro]
- [Andy-Dawson]
- David Aeschlimann [TashunkoWitko]
- [outorted]
- [dkardokas]
- Asad Refai [asadrefai]
- Giacomo Pozzoni [jackpoz]
- Added flexibility to mix and pipe
Add\Get\Remove-PnPListItem
withGet-PnPList
- Added ability to remove all list items from a list using
Remove-PnPListItem -List <listname>
and not providing a list item identifier. - Added
Get-PnPMessageCenterAnnouncent
,Get-PnPServiceCurrentHealth
andGet-PnPServiceHealthIssue
cmdlets which pull their data out of the Microsoft Graph API and are replacing the formerGet-PnPOffice365CurrentServiceStatus
,Get-PnPOffice365HistoricalServiceStatus
andGet-PnPoffice365ServiceMessage
cmdlets which pull their data from the Office Health and Communications API which is to be deprecated on December 17, 2021. If you're using any of these last three cmdlets, please rewrite your functionality to start using one of the first three cmdlets before this date. - Added option which allows new SharePoint 2013 Workflow creation to be disabled tenant wide by using
Set-PnPTenant -StopNew2013Workflows
and requesting its current setting usingGet-PnPTenant | Select StopNew2013Workflows
- Added lots of extra information getting returned when using
Get-PnPFlow
. - Added option which allows the Explorer View for Microsoft Edge to be enabled tenant wide by using
Set-PnPTenant -ViewInFileExplorerEnabled
and requesting its current setting usingGet-PnPTenant | Select ViewInFileExplorerEnabled
. It can be that this feature is not enabled on your tenant yet, in which case it will return an error. Try it again later in that case. - Added lots of extra information getting returned when using
Get-PnPPowerPlatformEnvironment
- Added the option to use
-Verbose
withExport-PnPFlow
so it wil show details on why an export failed when it is not possible to export the flow. - Added option to add/list/remove event receivers from the site scope using
Add-PnPEventReceiver -Scope <Site/Web>
,Get-PnPEventReceiver -Scope <All/Site/Web>
andRemove-PnPEventReceiver -Scope <All/Site/Web>
- Added
-Url
parameter toNew-PnPUPABulkImportJob
which allows providing a URL to an existing SharePoint User Profile import mapping instruction file stored on SharePoint Online - Added
Add-PnPSiteDesignFromWeb
which combinesGet-PnPSiteScriptFromWeb
,Add-PnPSiteScript
andAdd-PnPSiteDesign
into one cmdlet to allow for a specific site to directly be added as a site design to allow other sites to be configured similarly - Added
Update-PnPSiteDesignFromWeb
which combinesGet-PnPSiteScriptFromWeb
andSet-PnPSiteScript
into one cmdlet to allow for a specific site design to directly be updated based on an existing site which can function as a template - Added
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
cmdlet which allows direct synchronization of user profile properties of choice between user profiles in Azure Active Directory and their SharePoint Online User Profile Service user profile equivallents
- Renamed
Get-PnPFlowEnvironment
toGet-PnPPowerAutomateEnvironment
- Changed
Get-PnPSiteScriptFromWeb
to get a site script of the currently connected to site if-Url
is omitted. - Improved
Find-PnPFile
error message Get-PnPFileVersion
cmdlet documentation improved with additional example.Add-PnPNavigationNode
cmdlet documentation improved with additional example feature which shows how to add a navigation node as a label.- Changed
Get-PnPSiteDesign
andInvoke-PnPSiteDesign
to when providing a name through-Identity
to be able to work with all site designs having that same name instead of just the first one - Changed
Set-PnPListItemPermission
to support piping in a roledefinition for-AddRole
and-RemoveRole
- Changed that
Get-PnPSiteScript -Identity
now also works with the site script name instead of just the site script Id
- Fixed
Get-PnPChangeLog -Nightly
not returning anything - Fixed issue with
Get-PnPUser -Identity x
ignoring additional requested attributes using-Includes
- Fixed issue with
Set-PnPDefaultColumnValues -List "Documents" -Folder "Földer" -Field "Text" -Value "123"
not working when having a folder name with special characters in it. - Fixed
Get-PnPException
throwing an exception and not showing the last exception if the last cmdlet throwing an exception used-ErrorAction Stop
- Fixed
Get-PnPException -All
throwing an exception. - Fixed an issue with
Set-PnPSite -Identity <url> -Owner <upn>
not working if the URL would be a OneDrive for Business site. - Fixed an issue with
Get-PnPSiteScriptFromWeb
requiring an Include parameter next to providing lists and fixed specifying lists through List\ListName not working. - Fixed issue with 'Remove-PnPSiteDesign -Identity` not accepting a site design name, only a GUID.
- Fixed unable to piping the output of
Get-PnPRoleDefinition
to i.e. filter by RoleTypeKind. - Fixed an issue with several PnP PowerShell cmdlets such as
Get-PnPTeamsUser
where not all results would be returned - Fixed issue with
Remove-PnPSiteDesign -Identity
not accepting a site design name, only a GUID. - Fixed issue with
Get-PnPUPABulkImportStatus
where it did not allow you to pipe its output to i.e. get the most recent one usingSelect -Latest 1
or the ones that failed using? State -ne "Succeeded"
- Removed
ConvertTo-PnPClientSidePage
cmdlet as it has been replaced byConvertTo-PnPPage
this option is not enabled yet on your tenant in which case trying to set it results in toSet-PnPTenant: The requested operation is part of an experimental feature that is not supported in the current environment.
. In that case try again later. - Removed
Add-PnPUserToGroup
as it has been replaced byAdd-PnPGroupMember
- Removed
Get-PnPGroupMembers
cmdlet alias and related warning. The cmdletGet-PnPGroupMember
(singular) is available. - Removed
Remove-PnPUserFromGroup
cmdlet alias and related warning. The cmdletRemove-PnPGroupMember
is available. - Removed
Initialize-PnPPowerShellAuthentication
cmdlet alias and related warning. The cmdletRegister-PnPAzureADApp
is the replacement.
- Koen Zomers [koenzomers]
- Yuriy Samorodov [YuriySamorodov]
- Asad Refai [asadrefai]
- James Eccles [jameseccles]
- Giacomo Pozzoni [jackpoz]
- Todd Klindt [ToddKlindt]
- Rolands Strakis [wonderplayer]
- Bhishma Bhandari [bhishma]
- [reusto]
- [4ndri]
- [WimVandierendonck]
- Updated CSOM release
- Fixes issue with Get-PnPTenantSite
- Get-PnPPage now can load pages living in a folder by specifying "folder/page.aspx"
- Added
-DisableBackToClassic
option to Set-PnPTenant
- [thomassmart]
- Bert Jansen [jansenbe]
- Added
Request-PnPSyntexClassifyAndExtract
cmdlet to request classification and extraction of a file or all files in a list - Added
Get-PnPSyntexModel
cmdlet to list the defined SharePoint Syntex models in a SharePoint Syntex content center site - Added
Publish-PnPSyntexModel
cmdlet to publish a SharePoint Syntex model to a library - Added
Unpublish-PnPSyntexModel
cmdlet to unpublish a SharePoint Syntex model from a library - Added
Get-PnPSyntexModelPublication
cmdlet to list the libraries to which a SharePoint Syntex model was published
- Bert Jansen [jansenbe]
- Koen Zomers [koenzomers]
- Gautam Sheth [gautamdsheth]
- Veronique Lengelle [veronicageek]
- Added
-IncludeOwners
toGet-PnPMicrosoft365Group
. - Added
-AssignedTo
toAdd-PnPPlannerTask
andSet-PnPPlannerTask
allowing you to assign users to a task. - Added
Get-PnPAzureADApp
,Get-PnPAzureADAppPermission
andRemove-PnPAzureADApp
to manage Azure AD apps. - Added All Graph permissions and all SharePoint permissions for selection to
Register-PnPAzureADApp
. - Added
-Template
parameter to New-PnPTeamsTeam to create teams with EDU templates (your tenant needs an EDU license) - Added fixes for authentication to GCC, GCC High and GCC DoD environments using certificate or interactive login.
- Added
Grant-PnPAzureADAppSitePermission
,Get-PnPAzureADAppSitePermission
,Set-PnPAzureADAppSitePermission
andRevoke-PnPAzureADAppSitePermission
- Added
-SkipHiddenWebParts
parameter to theConvertTo-PnPPage
cmdlet that allows to skip hidden webparts during page transformation
- Improved batching speed when creating or updating multiple items that set similar values for taxonomy fields.
- Changed
Register-PnPAzureADApp
registration to by default turn on the ability to authenticate with credentials for a newly created Azure App registration (allowPublicClient: true
). - Refactored
Register-PnPAzureADApp
. Marked-Scopes
as obsolete and introduced-GraphApplicationPermissions
,-GraphDelegatePermissions
,-SharePointApplicationPermissions
and-SharePointDelegatePermissions
. Added additional permission scopes. - Re-enabled Console Logging with Set-PnPTraceLog -On
- Fixed warning showing to use -Interactive instead of -UseWebLogin to show correct url.
- Documentation updates
- Mahesh Chintha [chinthamahesh]
- John Bontjer [JohnBontjer]
- Todd Klindt [ToddKlindt]
- Koen Zomers [koenzomers]
- Veronique Lengelle [veronicageek]
- Mike Jensen [michael-jensen]
- Leon Armston [leonarmston]
- Ganesh Sanap [ganesh-sanap]
- vin-ol [vin-ol]
- Bert Jansen [jansenbe]
- Added
-HideTitleInHeader
parameter toSet-PnPWeb
to hide or show the title in the header. Use-HideTitleInHeader
to hide it and-HideTitleInHeader:$false
to show it. - Added
-ShowContentUrl
parameter toRegister-PnPManagementShellAccess
retrieve the url to consent to the PnP Management Shell application by an administrator. - Added
-IsFavoriteByDefault
parameter on Set-PnPTeamsChannel and Add-PnPTeamsChannel - Added
-GroupIdDefined
boolean parameter to Get-PnPTenantSite to allow filtering on sites which belong to a Microsoft 365 Group - Added
-Interactive
login option toConnect-PnPOnline
which is similar to-UseWebLogin
but without the limitations of the latter. The-UseWebLogin
is using cookie based authentication towards SharePoint and cannot access Graph tokens. Using-Interactive
we use Azure AD Authentication and as a result we are able to acquire Graph tokens.
- Fixed certificate clean up issue on Windows platform when using
Connect-PnPOnline
with a certificate. - Fixed issues with
Register-PnPAzureADApp
when using the various auth options (-DeviceLogin / -Interactive) - Renamed the
-PnPManagementShell
option to-DeviceLogin
onConnect-PnPOnline
.-PnPManagementShell
is still available as an alias. - Added
-ClientId
option to-DeviceLogin
allowing device code authentication with custom app registrations. - Changed
-Url
parameter on Get-PnPTenantSite and Set-PnPTenantSite to-Identity
. Made-Url
available as an alias. - Updated
Set-PnPTenantSite
to support same parameters asSet-SPOSite
- Updated
Get-PnPTenantSite
to return same properties asGet-SPOSite
- Fixed issue where
-Interactive
onConnect-PnPOnline
would prompt for credentials when connecting to new site within same tenant. Added -ForceLogin parameter to force - Get-PnPUser and any other cmdlet that takes a UserPipeBind parameter as input now allows users to be specified by name besides loginname or id.
- Fixed issue where retrieving a single site with Get-PnPTenantSite vs retrieving all sites showed different properties.
- Invoke-PnPSPRestMethod now returns usable objects
- Updated
Set-PnPListItem
to have anUpdateType
parameter. ObsoletedSystemUpdate
. Also updated the backend logic so can now also specifyUpdateOverwriteVersion
to update the editor, author, modified and created fields. Register-PnPAzureADApp
now outputs the base64 encoded version of the certificate which can be used withConnect-PnPOnline -ClientId -CertificateBase64Encoded
- Fixed issue with moving and copying files to subfolder, Issue #165.
- fixed issue where Get-PnPTenantSite was not returning all properties correct, Issue #151
- Added
-Interactive
login option to Register-PnPManagementApp which allows for an interactive authentication flow not using device login for environments that require Multi-Factor Authentication. - Updated all Microsoft365Group cmdlets to only load the SiteUrl of the underlying Microsoft 365 Group where required. This means that
Get-PnPMicrosoft365Group -Identity
will not by default load the site url. Specify-IncludeSiteUrl
to include it.
- Mike Jensen [michael-jensen]
- Koen Zomers [koenzomers]
- Gautam Sheth [gautamdsheth]
- Todd Klindt [ToddKlindt]
- Giacomo Pozzoni [jackpoz]
- Added
-NoWait
switch toCopy-PnPFile
andMove-PnPFile
- Added
Receive-PnPCopyMoveJobStatus
cmdlet which works in combination with the-NoWait
parameter onCopy-PnPFile
andMove-PnPFile
. See the documentation for usage.
- Fixed issue with
Invoke-PnPSPRestMethod
to throw an non authorized exception in certain scenarios. - Fixed issue with using
-UseWebLogin
and site names longer than the length of the managed path it resides in. - Fixed issue with tenant admin site detection on environment with vanity domains
- Fixed issues with
Copy-PnPFile
andMove-PnPFile
- Updated
Get-PnPTenantSite
to support-DisableSharingForNonOwnersStatus
- Added
-NoWait
switch toCopy-PnPFile
andMove-PnPFile
- Added
Receive-PnPCopyMoveJobStatus
cmdlet which works in combination with the-NoWait
parameter onCopy-PnPFile
andMove-PnPFile
. See the documentation for usage.
- Fixed issue with
Invoke-PnPSPRestMethod
to throw an non authorized exception in certain scenarios. - Fixed issue with using
-UseWebLogin
and site names longer than the length of the managed path it resides in.
- Fixed issue with tenant admin site detection on environment with vanity domains
- Fixed issues with
Copy-PnPFile
andMove-PnPFile
- Updated
Get-PnPTenantSite
to support-DisableSharingForNonOwnersStatus
First released version of PnP PowerShell
- Added
Get-PnPFlow
,Get-PnPFlowEnvironment
,Enable-PnPFlow
,Disable-PnPFlow
,Remove-PnPFlow
,Export-PnPFlow
cmdlets
- Documentation updates
- Yannick Reekmans [YannickRe]
- Reintroduced
-CertificateBase64Encoded
onConnect-PnPOnline
- Reorganized Connect-PnPOnline and simplified/cleared up usage. See https://pnp.github.io/powershell/cmdlets/connect-pnponline.html and https://pnp.github.io/powershell/articles/connecting.html for more information.
- Reorganized internals with regards to access token handling.
- Fixed issue with
Set-PnPGroupPermissions
not removing roles from list correctly.
- Leon Armston [leonarmston]
- Koen Zomers [koenzomers]
- Updated certificate handling for
Register-PnPAzureADApp
andNew-PnPAzureCertificate
- Updated
Register-PnPAzureApp
to use popup windows on Microsoft Windows. Added the-NoPopup
switch to disable this behavior. - Updated
Invoke-PnPBatch
to fully execute a batch by default if one of the requests in the large batch throws an exception. Specify the-StopOnException
switch to immmediately stop after an exception occurs. The rest of the batch will be skipped where possible. See https://pnp.github.io/powershell/articles/batching for more information. - Documentation updates
- Leon Armston [leonarmston]
- Added -ClientSideHostProperties to
Set-PnPApplicationCustomizer
- Documentation updates for Teams cmdlets
- Leon Armston [leonarmston]
- Added batching support to
Remove-PnPListItem
- Added initial batching support. See
New-PnPBatch
,Invoke-PnPBatch
,Add-PnPListItem
andSet-PnPListItem
- Updated documentation
- Deprecated the use of the
-Web
cmdlet parameters due to API reasons. UseConnect-PnPOnline -Url [fullsubweburl]
instead to connect to a subweb. - Updated
Get-PnPLabel
to allow returning available compliance tags for a site - Updated several cmdlets to use the Code SDK behind the scenes
- Veronique Lengelle [veronicageek]
- Leon Armston [leonarmston]
- Added
Get-PnPListPermissions
cmdlet.
- Fixed issue where using
Connect-PnPOnline
in a loop would through after several iterations an exception message from MSAL not being able to retrieve a token due to a looped request. We fixed this by trying to reuse the in-memory token cache in scenarios where non-interactive logins are being used. Connect-PnPOnline -Url [url] -PnPManagementShell -LaunchBrowser
will not try to attempt to close the popup window automatically anymore.Set-PnPLabel
will now check first if a label is available.- Documentation fixes
- Leon Armston [leonarmston]
- Bhishma Bhandari [bhishma]
- Renamed
Add-PnPUserToGroup
toAdd-PnPGroupMember
. Alias for the old cmdlet name is available. - Renamed
Remove-PnPUserFromGroup
toRemove-PnPGroupMember
. Alias for the old cmdlet name is available. - Renamed
Get-PnPGroupMembers
toGet-PnPGroupMember
. Alias for the old cmdlet name is available.
- Fixed issue when using
Connect-PnPOnline
using either-UseWebLogin
or-SPOManagementShell
and invoking a site template containing modern pages, or when trying to create or update modern pages using the PnP Cmdlets.
Register-PnPManagementShellAccess
will not automatically close the window after consent anymore.Connect-PnPOnline -UseWebLogin
now allows you to return the connection with-ReturnConnection
PR #71Remove-PnPTermGroup
now includes a-Force
parameter PR #70Get-PnPListItem
now can filter on both the GUID or the UniqueId value by specifying the -UniqueId parameter. PR #68
- Gautam Sheth [gautamdsheth]
- Added
-ReadSecurity
and-WriteSecurity
toSet-PnPList
cmdlet (0.3.15)
- Renamed
Add-PnPClientSidePage
toAdd-PnPPage
(0.3.15) - Renamed
Add-PnPClientSidePageSection
toAdd-PnPPageSection
(0.3.15) - Renamed
Add-PnPClientSideText
toAdd-PnPPageTextPart
(0.3.15) - Renamed
Add-PnPClientSideWeb
toAdd-PnPPageWebPart
(0.3.15) - Renamed
Export-PnPClientSidePage
toExport-PnPPage
(0.3.15) - Renamed
Export-PnPClientSidePageMapping
toExport-PnPPageMapping
(0.3.15) - Deprecated
Get-AvailableClientSidePageComponents
. UseGet-PnPPageComponents -Page <yourpage> -ListAvailable
(0.3.15) - Renamed
Get-PnPClientSidePageComponents
toGet-PnPPageComponents
(0.3.15) - Renamed
Get-PnPClientSidePage
toGet-PnPPage
(0.3.15) - Renamed
Move-PnPClientSidePageComponent
toMove-PnPPageComponent
(0.3.15) - Renamed
Remove-PnPClientSidePage
toRemove-PnPPage
(0.3.15) - Renamed
Remove-PnPClientSideComponent
toRemove-PnPPageComponent
(0.3.15) - Renamed
Save-PnPClientSidePageConversionLog
toSave-PnPPageConversionLog
(0.3.15) - Renamed
Set-PnPClientSidePage
toSet-PnPPage
(0.3.15) - Renamed
Set-PnPClientSideText
toSet-PnPPageTextPart
(0.3.15) - Renamed
Set-PnPClientSideWebPart
toSet-PnPPageWebPart
(0.3.15) - Removed '-Url' parameter from
Set-PnPWebPermission
. Use-Identity
instead. (0.3.13) - Renamed
Get-PnPSubWebs
toGet-PnPSubWeb
which is in line with PowerShell naming standards which state that cmdlets should use a singalar noun. Alias forGet-PnPSubWebs
is available. (0.3.13) Register-PnPManagementShellAccess
now uses a popup window to authenticate you when your run the cmdlet on Windows (0.3.10)- Breaking change: we changed
Grant-PnPTenantServicePrincipalPermission
andRevoke-PnPTenantServicePrincipalPermission
to use the Graph behind the scenes. This is a breaking change when it comes to the required permissions, but the new approach is more future proof. (0.3.8) - Refactored internal code to use hardcoded PnP prefixes for cmdlets, which allows $PSDefaultParameterValues in PowerShell to work as expected. (0.3.7)
- Added
-HeaderLayoutType
parameter toSet-PnPClientSidePage
(0.3.6) - Fixed documentation for
Clear-PnPRecycleBinItem
(0.3.6) - Fixed issue with
Invoke-PnPTenantTemplate
not being able to acquire correct access token (0.3.6) - Added
GrouplessTeamSite
option to-WebTemplate
parameter forAdd-PnPSiteDesign
andSet-PnPSiteDesign
(0.3.6)
- Gautam Sheth [gautamdsheth]
- Todd Klindt [toddklindt]
- Michael Jensen [michael-jensen]
- Frank Potrafky [FPotrafky]
- Veronique Lengelle [veronicageek]
- James May [fowl2]
- Added
Convert-PnPSiteTemplateToMarkdown
to convert an existing XML based template to a markdown report. Notice that this is work in progress and the functionality will increase. See also the 'Changed' section below for information aboutGet-PnPSiteTemplate
(0.3.5) - Added
-UseWeblogin
and-ForceAuthentication
toConnect-PnPOnline
to allow using Multi-Factor Authentication. Notice this uses cookie based authentication, which is limited in its functionality. Using -UseWebLogin we will for instance not be able to acquire an access token for the Graph, and as a result none of the Graph related cmdlets will work. Also some of the functionality of the provisioning engine (Get-PnPSiteTemplate
,Get-PnPTenantTemplate
,Invoke-PnPSiteTemplate
,Invoke-PnPTenantTemplate
) will not work because of this reason. The cookies will in general expire within a few days and if you use-UseWebLogin
within that time popup window will appear that will dissappear immediately, this is expected. Use-ForceAuthentication
to reset the authentication cookies and force a new login. (0.2.25) - Allowed to specify -ClientId when logging in with credentials so people can use their own Azure AD apps and credentials for authentication towards SharePoint Online (0.2.17)
- Added environment variable check (set
PNPPOWERSHELL_UPDATECHECK
toOff
) to Connect-PnPOnline to skip version check if set. (0.2.15) - Added
Get-PnPChangeLog
cmdlet which returns this changelog. (0.2.14) - Added
-DeviceLogin
parameter toRegister-PnPAzureADApp
(renamed from Initialize-PnPPowerShellAuthentication in 0.2.15) which allows for users with MFA to setup a custom app (0.2.12) - Added
NoVersionCheck
optional flag toConnect-PnPOnline
PR#28 (0.2.9) - Added native support for Secret Management Modules (0.1.34)
- Marked -ExcludeSiteUrl as obselete on
Get-PnPMicrosoft365Group
for performance reasons. Use -IncludeSiteUrl instead. - Added -CloudShell switch to
Connect-PnPOnline
which can be used in the Azure Cloud Shell. If specified you will automatically authenticate using the current identity you're logged in with to the Azure Cloud Shell. Notice: only Graph based cmdlets (Teams, Microsoft Groups etc.) will function. For SharePoint connectivity use one of the other connection options withConnect-PnPOnline
. - Added -DisableCustomAppAuthentication to
Set-PnPTenant
and added support for DisableCustomAppAuthentication inGet-PnPTenant
.
- Added
Add-PnPHubToHubAssociation
cmdlet. - Added
Export-PnPUserInfo
cmdlet. - Added
Add-PnPSiteScriptPackage
cmdlet. - Added
Export-PnPUserProfile
cmdlet (0.1.6). - Added
Get-PnPAppErrors
cmdlet (0.1.6) - Added
Get-PnPAppInfo
cmdlet (0.1.6) - Added
Get-PnPBrowserIdleSignOut
cmdlet (0.1.6) - Added
Set-PnPBrowserIdleSignOut
cmdlet (0.1.6) - Added
Get-PnPBuiltInDesignPackageVisibility
cmdlet (0.1.6) - Added
Set-PnPBuiltInDesignPackageVisibility
cmdlet (0.1.7) - Added
Get-PnPExternalUser
cmdlet (0.1.7) - Added
Remove-PnPExternalUser
cmdlet (0.1.7) - Added
Get-PnPSiteCollectionAppCatalogs
cmdlet (0.1.7) - Added
Request-PnPPersonalSite
cmdlet (0.1.7) - Added
Get-PnPSiteGroup
cmdlet (0.1.8) - Added
Get-PnPSiteUserInvitations
cmdlet (0.1.8) - Added
Invoke-PnPSiteSwap
cmdlet (0.1.8) - Added
New-PnPSdnProvider
cmdlet (0.1.8) - Added
Remove-PnPSdnProvider
cmdlet (0.1.8) - Added
Remove-PnPHubToHubAssocation
cmdlet (0.1.9) - Added
Remove-PnPSiteUserInvitations
cmdlet (0.1.9) - Added
Remove-PnPTenantSyncClientRestriction
cmdlet (0.1.9) - Added
Remove-PnPUserInfo
cmdlet (0.1.9) - Added
Remove-PnPUserProfile
cmdlet (0.1.9) - Added
Repair-PnPSite
cmdlet (0.1.9) - Added
Test-PnPSite
cmdlet (0.1.9) - Added
Revoke-PnPUserSession
cmdlet (0.1.9) - Added
New-PnPSiteGroup
cmdlet (0.1.9) - Added
Remove-PnPSiteGroup
cmdlet (0.1.9) - Added
Set-PnPSiteGroup
cmdlet (0.1.9) - Added
Set-PnPSiteScriptPackage
cmdlet (0.1.9) - Added
Update-PnPUserType
cmdlet (0.1.9) - Added
Get-SPOStructuralNavigationCacheSiteState
cmdlet (0.1.10) - Added
Get-SPOStructuralNavigationCacheWebState
cmdlet (0.1.10) - Added
Set-SPOStructuralNavigationCacheSiteState
cmdlet (0.1.10) - Added
Set-SPOStructuralNavigationCacheWebState
cmdlet (0.1.10) - Added
Add-PnPTermToTerm
cmdlet (0.1.11) - Added
Get-PnPTermLabel
cmdlet (0.1.11) - Added
Remove-PnPTermLabel
cmdlet (0.1.11) - Added
Remove-PnPTerm
cmdlet (0.1.11) - Added
Set-PnPTerm
cmdlet (0.1.11) - Added
Add-PnPPlannerBucket
cmdlet (0.1.16) - Added
Add-PnPPlannerTask
cmdlet (0.1.16) - Added
Get-PnPPlannerBucket
cmdlet (0.1.16) - Added
Get-PnPPlannerPlan
cmdlet (0.1.16) - Added
Get-PnPPlannerTask
cmdlet (0.1.16) - Added
New-PnPPlannerPlan
cmdlet (0.1.16) - Added
Set-PnPPlannerBucket
cmdlet (0.1.16) - Added
Set-PnPPlannerPlan
cmdlet (0.1.16) - Added
Remove-PnPPlannerBucket
cmdlet (0.1.17) - Added
Remove-PnPPlannerPlan
cmdlet (0.1.17) - Added
Remove-PnPPlannerTask
cmdlet (0.1.17) - Added
Set-PnPPlannerTask
cmdlet (0.1.18)
- Added filename support for .md file with
Get-PnPSiteTemplate
to generate a markdown file. e.g. you can now execute for instanceGet-PnPSiteTemplate -Out .\myreport.md -Handlers Lists,ContentTypes,Features,WebSettings
to generate an markdown report of those artifacts. This is work in progress. - Fixed issue with
-UseWebLogin
throws a 403 error when connecting to a different site collection than the root site collection. - Removed
Enable-PnPPowerShellTelemetry
andDisable-PnPPowerShellTelemetry
. See Configure PnP PowerShell for more information on how to enable or disable telemetry collection (0.2.22) - Obsoleted
-NoTelemetry
and-NoVersionCheck
onConnect-PnPOnline
. You can set these as environment variables now. See Configure PnP PowerShell for more information (0.2.22) - Updated telemetry handling. If the environment variable
PNPPOWERSHELL_DISABLETELEMETRY
is set totrue
, no telemetry will be recorded. If the .pnppowershelltelemetry file is present in the home folder of the user then the the contents of this file will override the environment variable settings. SeeEnable-PnPPowerShellTelemetry
andDisable-PnPPowerShellTelemetry
to manage this file. (0.2.21) - Renamed
-CloudShell
to-ManagedIdentity
onConnect-PnPOnline
(0.2.20) -CertificatePath
onConnect-PnPOnline
now accepts a relative path (0.2.19)- Reintroduced
-SPOManagementShell
as login option withConnect-PnPOnline
(0.2.18) - Fixed issue where Connect-PnPOnline -Url [url] -AccessToken [token] is not creating an client context. (0.2.17)
- Renamed
Initialize-PnPPowerShellAuthentication
toRegister-PnPAzureADApp
(0.2.15) - Updated
Get-PnPAzureCertificate
to work on Windows and Non-Windows OSes. (0.2.15) - Updated
Get-PnPAzureCertificate
to use-Path
and-Password
parameters instead of-CertificatePath
and-CertificatePassword
parameters (0.2.15) - Fixed using
New-PnPAzureCertificate
andGet-PnPAzureCertificate
throwing an exception PR #30 (0.2.15) - Updated
Initialize-PnPPowerShellAuthentication
so it can generate self-signed certs on other platforms than Windows. - Updated
Get-PnPUnifiedAuditLog
to support paged results. - Removed SiteUrl parameter from
Register-PnPManagementShell
as it is not required anymore - Fixed documentation on Add-PnPTeamsChannel PR#9
- Fixed documentation on Remove-PnPTeamsUser PR#10
- Renamed
Apply-PnPProvisioningTemplate
toInvoke-PnPSiteTemplate
. - Renamed
Get-PnPProvisioningTemplate
toGet-PnPSiteTemplate
. - Renamed
Add-PnPDataRowsToProvisioningTemplate
toAdd-PnPDataRowsToSiteTemplate
. - Renamed
Add-PnPFileToProvisioningTemplate
toAdd-PnPFileToSiteTemplate
. - Renamed
Add-PnPListFoldersToProvisioningTemplate
toAdd-PnPListFoldersToSiteTemplate
. - Renamed
Convert-PnPFolderToProvisioningTemplate
toConvert-PnPFolderToSiteTemplate
. - Renamed
Convert-PnPProvisioningTemplate
toConvert-PnPSiteTemplate
. - Renamed
Export-PnPListToProvisioningTemplate
toExport-PnPListToSiteTemplate
. - Renamed
New-PnPProvisioningTemplate
toNew-PnPSiteTemplate
. - Renamed
New-PnPProvisioningTemplateFromFolder
toNew-PnPSiteTemplateFromFolder
. - Renamed
Read-PnPProvisioningTemplate
toRead-PnPSiteTemplate
. - Renamed
Remove-PnPFileFromProvisioningTemplate
toRemove-PnPFileFromSiteTemplate
. - Renamed
Save-PnPProvisioningTemplate
toSave-PnPSiteTemplate
. - Renamed
Set-PnPProvisioningTemplateMetadata
toSet-PnPSiteTemplateMetadata
. - Renamed
Add-PnPProvisioningTemplate
toAdd-PnPSiteTemplate
. - Renamed
Apply-PnPTenantTemplate
toInvoke-PnPTenantTemplate
. - Removed
Get-PnPAppInstance
. UseGet-PnPApp
instead. - Removed
Import-PnPAppPackage
. UseInstal-PnPApp
instead. - Removed
Uninstall-AppInstance
. UseUninstall-PnPApp
instead. - Removed
Get-PnPHealthScore
as the value reported is only applicable to on-premises. - Removed
-MinimalHealthScore
fromConnect-PnPOnline
as the value reported from the server only applies to on-premises. - Removed
-SkipTenantAdminCheck
fromConnect-PnPOnline
. Check will be executed everytime where applicable. - Removed Obsolete parameter
-FromRecycleBin
fromRemove-PnPTenantSite
. UseClear-PnPTenantRecycleBinItem
instead. - Removed
-UserCodeMaximumLevel
and-UserCodeWarningLevel
fromSet-PnPTenantSite
: sandboxed solutions have been deprecated from SharePoint Online and these values are not applicable anymore. - Removed
-Out
parameter onNew-PnPAzureCertificate
. Use-OutPfx
instead. - Removed
Enable-PnPResponsiveUI
andDisable-PnPResponsiveUI
. - Removed
Disable-PnPInPlaceRecordsManagementForSite
. UseSet-PnPInPlaceRecordsManagement -Enabled $false
. - Removed
Enable-PnPInPlaceRecordsManagementForSite
. UseSet-PnPInPlaceRecordsManagement -Enabled $true
. - Removed
Measure-PnPResponseTime
. Use Fiddler for more detailed data instead. - Removed
-Identity
from Get-PnPAvailableLanguage as it does not apply to SharePoint Online. - Removed
Get-PnPManagementApiAccessToken
andGet-PnPOfficeManagementApiAccessToken
cmdlets. Use Connect-PnPOnline instead with either the -Scopes parameter and other optional parameters - Removed alias
Connect-PnPHubsite
. UseAdd-PnPHubSiteAssociation
. - Removed alias
Disconnect-PnPHubSite
. UseRemove-PnPHubSiteAssociation
. - Removed alias
Add-PnPOffice365GroupToSite
. UseAdd-PnPMicrosoft365GroupToSite
. - Removed alias
Add-PnPUnifiedGroupMember
. UseAdd-PnPMicrosoft365GroupMember
. - Removed alias
Add-PnPUnifiedGroupOwner
. UseAdd-PnPMicrosoft365GroupOwner
. - Removed alias
Clear-PnPUnifiedGroupMember
. UseClear-PnPMicrosoft365GroupMember
. - Removed alias
Clear-PnPUnifiedGroupOwner
. UseClear-PnPMicrosoft365GroupOwner
. - Removed alias
Get-PnPDeletedUnifiedGroup
. UseGet-PnPDeletedMicrosoft365Group
. - Removed alias
Get-PnPUnifiedGroup
. UseGet-PnPMicrosoft365Group
. - Removed alias
Get-PnPUnifiedGroupMembers
. UseGet-PnPMicrosoft365GroupMembers
. - Removed alias
Get-PnPUnifiedGroupOwners
. UseGet-PnPMicrosoft365GroupOwners
. - Removed alias
New-PnPUnifiedGroup
. UseNew-PnPMicrosoft365Group
. - Removed alias
Remove-PnPDeletedUnifiedGroup
. UseRemove-PnPDeletedMicrosoft365Group
. - Removed alias
Remove-PnPUnifiedGroup
. UseRemove-PnPMicrosoft365Group
. - Removed alias
Remove-PnPUnifiedGroupMember
. UseRemove-PnPMicrosoft365GroupMember
. - Removed alias
Remove-PnPUnifiedGroupOwner
. UseRemove-PnPMicrosoft365GroupOwner
. - Removed alias
Restore-PnPDeletedUnifiedGroup
. UseRestore-PnPDeletedMicrosoft365Group
. - Removed alias
Set-PnPUnifiedGroup
. UseSet-PnPMicrosoft365Group
. - Removed alias
Execute-PnPQuery
. UseInvoke-PnPQuery
. - Removed alias
Ensure-PnPFolder
. UseResolve-PnPFolder
. - Removed
Install-PnPSolution
. Sandboxed solutions have been deprecated. - Removed
Add-PnPWorkflowDefinition
,Add-PnPWorkflowSubscription
,Get-PnPWorkflowDefinition
,Get-PnPWorkflowInstances
,Get-PnPWorkflowSubscription
,Remove-PnPWorkflowDefinition
,Remove-PnPWorkflowSubscription
,Resume-PnPWorkflowInstance
,Start-PnPWorkflowInstance
andStop-PnPWorkflowInstance
due to deprecated of the Workflow Services in SharePoint Online. - Renamed
Test-PnPOffice365AliasIsUsed
toTest-PnPMicrosoft365AliasIsUsed
- Refactored some of the Taxonomy cmdlet parameters. See documentation.
- Change in
Copy-PnPFile
which should resolve some issues you may run into when copying files PR #2796 - Fixed several issues with
Get-PnPSubwebs
and added optional parameter-IncludeRootWeb
PR #3011
- Koen Zomers [koenzomers]
- Carlos Marins Jr [kadu-jr]
- Aimery Thomas [a1mery]
- Veronique Lengelle [veronicageek]