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 tab completers for all cmdlets using a ListPipeBind parameter (e.g.
Get-PnPList -Identity
), all cmdlets using a FieldPipeBind parameter (e.g.Get-PnPField -Identity
),Get-PnPPropertyBag
, ContentType related cmdlets (Get-PnPContentType
etc.) and Page related (Get-PnPPage
etc.) cmdlets. The argument lookup will timeout after 2 seconds. This value can controlled by setting an environment variables called "PNPPSCOMPLETERTIMEOUT" and set the value to a number specifying milliseconds (e.g. 2000 is 2 seconds). If you want to disable the completer functionality on tabs, set the timeout value to 0 (zero). - Added
Reset-PnPDocumentID
cmdlet to request resetting the document ID for a document #4238 - Added
Get-PnPPriviledgedIdentityManagementEligibleAssignment
,Get-PnPPriviledgedIdentityManagementRole
andEnable-PnPPriviledgedIdentityManagement
cmdlets to allow scripting of enabling Privileged Identity Management roles for a user #4039 - Added
Add-PnPTenantRestrictedSearchAllowedList
which allows setting up a list of allowed URLs for Restricted SharePoint Search #3993 - Added optional
-IsCopilotSearchable
toAdd-PnPOrgAssetsLibrary
which allows for an organizational assets library to be accessible to Microsoft 365 CoPilot for searching corporate images #4254 - Added
Set-PnPOrgAssetsLibrary
cmdlet which allows for updating the settings of an existing organizational assets library #4254 - Added additional Graph permissions to the GraphPermissions parameter set. #4283
- Added
-SignInAudience
parameter toRegister-PnPEntraIDApp
andRegister-PnPEntraIDAppForInteractiveLogin
which allows you to make the EntraID app support creation of multi-tenant apps. #4289 - Added
-OutputInstance
parameter toExport-PnPPage
cmdlet to allow export of the page as in-memory template. #4323 - Added
-X509KeyStorageFlags
parameter toConnect-PnPOnline
cmdlet which allows setting of how private keys are to be imported. #4324 - Added
-RestrictContentOrgWideSearch
parameter toSet-PnPSite
which allows for applying the Restricted Content Discoverability (RCD) setting to a site #4335 - Added
-LaunchBrowser
parameter toRegister-PnPEntraIDAppForInteractiveLogin
andRegister-PnPEntraIDApp
cmdlets to open browser and continue app registration in the browser. #4347 & #4348 - Added
Get-PnPSearchExternalItem
which allows retrieving the current external items for a specific external connection #4375 - Added
Remove-PnPSearchExternalItem
which allows for removal of an external item from the Microsoft Search index #4378 - Added
-Scopes
parameter toGet-PnPAccessToken
cmdlet to retrieve access token with specific scopes. #4398 - Added
-Icon
and-Color
parameters toSet-PnPList
cmdlet. #4409 - Added
Remove-PnPTenantRestrictedSearchAllowedList
cmdlet to removes site URLs from the allowed list when Restricted SharePoint Search is enabled. #4399 - Added
Get-PnPDeletedFlow
cmdlet to retrieve a list of flows which are soft deleted. #4396 - Added
Restore-PnPFlow
cmdlet which allows for undeleting a flow within 21 days of deletion. #4415 - Added
-ExcludeDeprecated
toExport-PnpTaxonomy
which allows for deprecated terms to be excluded from the export #4053 - Added
-HidePeoplePreviewingFiles
toSet-PnPSite
which allows for hiding the people previewing files feature on a site #4416 - Added
-AllowWebPropertyBagUpdateWhenDenyAddAndCustomizePagesIsEnabled
toSet-PnPTenant
which allows for updating of web property bag when DenyAddAndCustomizePages is enabled #4508 - Added
SiteId
to the output ofGet-PnPTenantSite
#4527 - Added
Add-PnPFileSensitivityLabel
which allows for assigning sensitivity labels to SharePoint files #4538 - Added
-CanSyncHubSitePermissions
parameter toSet-PnPSite
cmdlet to set value of allowing syncing hub site permissions to this associated site. - Added
Get-PnPProfileCardProperty
,New-PnPProfileCardProperty
andRemove-PnPProfileCardProperty
cmdlets to manage showing additional properties on the Microsoft 365 user profile #4548
- **PnP PowerShell is now .NET 8.0 based, and requires PowerShell 7.4.4 or newer **
-Interactive
login is now the default.- In case of errors when Graph batch method is used, it will now throw a clearer error message about what was the issue. #4327
Get-PnPAccessToken
,Request-PnPAccessToken
andGet-PnPGraphAccessToken
output type is changed toMicrosoft.IdentityModel.JsonWebTokens.JsonWebToken
. Earlier they returnedSystem.IdentityModel.Tokens.Jwt
.New-PnPContainerType
will temporarily disable standard containers to be created due to changed being applied at Microsoft to allow this to be possible in the future #4125- Renamed
Get-PnPLabel
cmdlet toGet-PnPRetentionLabel
. #4387 Add-PnPNavigationNode
cmdlet updated to now support-OpenInNewTab
parameter for different types of navigation. #3969Remove-PnPFile
,Rename-PnPFile
,Set-PnPFileCheckedIn
,Set-PnPFileCheckedOut
&Undo-PnPFileCheckedOut
cmdlets now use PnP Core SDK behind the scenes. #4389Set-PnPFileCheckedIn
cmdlet now expectsCheckInType
to be of typePnP.Core.Model.SharePoint.CheckinType
instead of the earlier one based on CSOM. #4389Disable-PnPFeature
andEnable-PnPFeature
now use PnP Core SDK for processing requests. #4390Remove-PnPContentType
andRemove-PnPContentTypeFromList
now use PnP Core SDK for processing requests. #4390Clear-PnPRecycleBinItem
,Move-PnPRecycleBinItem
andRestore-PnPRecycleBinItem
cmdlets now use PnP Core SDK for processing requests. #4393Get-PnPSearchCrawlLog
cmdlet now shows a warning in case application permissions are used. #4391- All Power Platform cmdlets no longer require an environment to be specified. If omitted, the default environment will be retrieved and used. #4415
- When passing in an existing connection using
-Connection
onConnect-PnPOnline
, the clientid from the passed in connection will be used for the new connection #4425 - Removed
-Confirm
parameter fromRemove-PnPUser
andRemove-PnPAvailableSiteClassification
cmdlets. Use-Force
instead. #4455 Get-PnPFile
now also supports passing in a full SharePoint Online URL #4480Send-PnPMail
now throws a warning about the retirement of the SharePoint SendEmail API.
- Fixed issue with
Set-PnPSearchExternalSchema
cmdlet when used with the-Wait
parameter throwing a warning #4253 - Fix
Get-PnPSearchExternalSchema
not returning the label properly for a property linked to 'iconUrl' #4245 - Fix
Restore-PnPListItemVersion
cmdlet to also restore fields with TaxonomyFieldType. #4262 - Fix
Set-PnPMicrosoft365GroupSetting
cmdlet to not throw runtime error. #4274 - Fix
New-PnPMicrosoft365GroupSetting
cmdlet to not throw runtime error. #4277 - Fix
Get-PnPSiteTemplate -PersistMultiLanguageResources
not working correctly for xml file types. #4326 - Fix
Add-PnPDataRowsToSiteTemplate
setting keyColumn to null when not passed. #4325 - Fix
Connect-PnPOnline
not working correctly when-DeviceLogin
and-LaunchBrowser
both are specified. It used to open it in a popup. Now it correctly launches the browser. #4325 Export-PnPUserInfo
,Export-PnPUserProfile
andRemove-PnPUserProfile
cmdlets now work properly with proper-Connection
parameter if specified. #4389- Fixed
Get-PnPAzureADAppSitePermission
,Grant-PnPAzureADAppSitePermission
andRevoke-PnPAzureADAppSitePermission
cmdlets throwing an error when the site URL is not specified and the app registration used only having Graph permissions #4421 - Fixed
Get-PnPTerm
cmdlet not working correctly when-ParentTerm
parameter is specified. #4454 - Fixed the PnP PowerShell version check to only check nightly version in nightly builds and major version in release builds. #4453
- Fixed
-ConsistencyLevelEventual
flag onInvoke-PnPGraphMethod
to work correctly. #4523 - Fixed
Get-PnPServiceHealthIssue
returning an error when certain service states were active #4530
- Removed
Publish-PnPCompanyApp
cmdlet as it was not supported anymore. #4387 - Removed
-UserVoiceForFeedbackEnabled
parameter fromSet-PnPTenant
cmdlet as it was obsolete. #4387 - Removed
Set-PnPLabel
andReset-PnPLabel
aliases. You need to useSet-PnPRetentionLabel
andReset-PnPRetentionLabel
respectively. #4387 - Removed
Get-PnPPowerPlatformConnector
alias. You need to useGet-PnPPowerPlatformCustomConnector
. #4387 - Removed
-IsFavoriteByDefault
parameter fromAdd-PnPTeamsChannel
cmdlet. It was obsolete and not supported by Graph API. #4387 - Removed
Get-PnPAppAuthAccessToken
,Remove-PnPGraphAccessToken
andRequest-PnPAccessToken
cmdlets. UseGet-PnPAccessToken
instead. #4398 - Removed support for sending mail via SMTP. It's usage is not recommended by .NET due to its lack of support for modern protocols.
- Konrad K. [wilecoyotegenius]
- Antti K. Koskela [koskila]
- Steve Beaugé [stevebeauge]
- [reusto]
- Fredrik Thorild [fthorild]
- San [sankarkumar23]
- Christian Veenhuis [ChVeen]
- Nishkalank Bezawada [NishkalankBezawada]
- Dan Toft [Tanddant]
- Jürgen Rosenthal-Buroh [JuergenRB]
- [PeterRevsbech]
- Peter Paul Kirschner [petkir]
- Giacomo Pozzoni [jackpoz]
- wuxiaojun514
- Reshmee Auckloo [reshmee011]
- Koen Zomers [koenzomers]
- Erwin van Hunen [erwinvanhunen]
- Gautam Sheth [gautamdsheth]
- Added support for
WAM
login for Windows OS to support Windows Hello, FIDO keys, Conditional Access policies and other secure authentication modes. - Added
-SkipCertCreation
parameter inRegister-PnPAzureADApp
cmdlet to prevent creation and uploading of certificates in the Entra ID app. - Added support to
-ValidateConnection
in managed identity authentication. - Added
New-PnPSearchExternalConnection
,Get-PnPSearchExternalConnection
,Set-PnPSearchExternalConnection
andRemove-PnPSearchExternalConnection
cmdlets to manage external connections for Microsoft Search #4231 - Added
Get-PnPSearchExternalSchema
andSet-PnPSearchExternalSchema
cmdlets to manage the schema for external connections for Microsoft Search #4231 - Added
OverrideSharingCapability
,RequestFilesLinkExpirationInDays
&RequestFilesLinkEnabled
parameters toSet-PnPTenantSite
cmdlet.
- Release due to deprecation/shutdown of support for the PnP Management Shell Refer to https://pnp.github.io/powershell/articles/registerapplication.html on how to registration your own application
- Added output for clientid/Entra App Id when using
-Verbose
withConnect-PnPOnline
- Added
-OutputTask
switch toAdd-PnPPlannerTask
cmdlet which will return the just created task so inspect its ID, ETag, etc. values. - Improved
Invoke-PnPGraphMethod
cmdlet now to also support a hashtable value for the AdditionalHeaders parameter besides the current Dictionary<string,string>. See documentation. - Improved managed identity authentication for connecting to different M365 services.
- Improved error message for
Export-PnPPage
cmdlet when the page doesn't exist. - Improved
Register-PnPEntraIDApp
&Register-PnPEntraIDAppForInteractiveLogin
cmdlets to better work in non-commercial cloud environments. - Improved
Get-PnPDiagnostics
cmdlet to properly handle a scenrio where there's no correlationId.
- Removed version check dependency on version.txt located in Github repo. Use metadata from powershellgallery.com instead.
- Fix issue with
Get-PnPDiagnostics
cmdlet not working correctly ifCorrelationId
is null. - Fix issue with App-only authentication not properly fetching tokens.
- Fix issue with Power Platform cmdlets not working correctly in non-commercial cloud environments.
- Fix issue with
Get-PnPFlow
not working correctly when-AsAdmin
parameter is specified due to API changes. #4244 - Fix
Connect-PnPOnline
not returning correctClientId
in the connection object.
- Erwin van Hunen [erwinvanhunen]
- Giacomo Pozzoni [jackpoz]
- Nishkalank Bezawada [NishkalankBezawada]
- Reshmee Auckloo [reshmee011]
- Koen Zomers [koenzomers]
- Added Register-PnPEntraIdAppForInteractiveLogin cmdlet
- Erwin van Hunen [erwinvanhunen]
Fixed app registration on Windows
- Erwin van Hunen [erwinvanhunen]
- Added in depth verbose logging to all cmdlets which is revealed by adding
-Verbose
to the cmdlet execution #4023 - Added
-CoreDefaultShareLinkScope
and-CoreDefaultShareLinkRole
parameters toSet-PnPTenant
cmdlet. #4067 - Added
-Identity
parameter to theGet-PnPFileSharingLink
cmdlet allowing for the retrieval of sharing links based on the file's unique identifier, file instance, listitem instance, or server relative path and supporting retrieval of sharing links for multiple files, such as all in a document library #4093 - Added
Remove-PnPAzureADUser
which allows removal of a user from Azure Active Directory / Entra ID #4123 - Added support for
GuestSharingGroupAllowListInTenantByPrincipalIdentity
andOneDriveSharingCapability
parameters inSet-PnPTenant
cmdlet. #4122 - Added
-AsListItem
paramter toGet-PnPFolder
cmdlet to return as folder as a list item object. #4151 - Added support for handling
$ErrorActionPreference
global variable to make it work with PnP PowerShell cmdlets. #4079 - Added
-Folder
parameter toAdd-PnPDocumentSet
cmdlet to allow creation of document sets in a specific folder instead of the list root folder. #4029
Get-PnPTeamsChannel
andGet-PnPTeamsPrimaryChannel
returningunknownFutureValue
as MembershipType instead ofshared
#4054- Fixed using a AzureADUserPipeBind with
New-PnPAzureADUserTemporaryAccessPass
,Get-PnPAvailableSensitivityLabel
andSet-PnPSearchExternalItem
to not work when passing in the User ID GUID #4123 - Fixed issue with
Get-PnPWebHeader
cmdlet not working properly in Group connected SharePoint sites. #4147 - Fixed issue with
Get-PnPTeamsChannelFilesFolder
cmdlet to work properly for channels having data more than 2 GB. #4127
- Fixed
Update-PnPTeamsUser
cmdlet to throw a better error message when after a user is removed from a Team but is still in the connected M365 group, for the few seconds that the 2 are out of sync. #4068 - Changed
-FileUrl
onGet-PnPFileSharingLink
to become obsolete. Please switch to using-Identity
instead, passing in the same value #4093
- Dan Cecil [danielcecil]
- Reshmee Auckloo [reshmee011]
- Giacomo Pozzoni [jackpoz]
- Koen Zomers [koenzomers]
- Added
New-PnPLibraryFileVersionBatchDeleteJob
andNew-PnPSiteFileVersionBatchDeleteJob
cmdlets to queue a job for deleting the file versions based on age. #3799 - Added
New-PnPLibraryFileVersionExpirationReportJob
andNew-PnPSiteFileVersionExpirationReportJob
cmdlets to queue a job for generating a file version expiration report for all files in a document library or site. #3799 - Added
Remove-PnPLibraryFileVersionBatchDeleteJob
andRemove-PnPSiteFileVersionBatchDeleteJob
cmdlets to cancel the job for deleting file versions based on age. #3799 - Added
Get-PnPLibraryFileVersionExpirationReportJobProgress
andGet-PnPSiteFileVersionExpirationReportJobProgress
cmdlets to getting the progress for the job for file versions based on age. #3799 - Added
-UseVersionExpirationReport
parameter toGet-PnPFileVersion
cmdlet to get the version expiration report for a single file. #3799 - Added
-DelayDenyAddAndCustomizePagesEnforcement
parameter toSet-PnPTenant
cmdlet which allows delay of the change to custom script set on the Tenant until mid-November 2024. #3815 - Added additional permissions for Graph application permission validate sets. #3835
- Added the ability to upload entire local folders with files and optionally subfolders to SharePoint Online into 'Copy-PnPFolder' #3850
- Added
LoopDefaultSharingLinkRole
,DefaultShareLinkScope
,DefaultShareLinkRole
,LoopDefaultSharingLinkScope
andDefaultLinkToExistingAccessReset
parameters toSet-PnPTenant
cmdlet. #3874 - Added
Unlock-PnPSensitivityLabelEncryptedFile
which allows the encryption to be removed from a file #3864 - Added
Get-PnPLibraryFileVersionBatchDeleteJobStatus
andGet-PnPSiteFileVersionBatchDeleteJobStatus
to check on the status of applying file based version expiration based on age on a library and site level #3828 - Added support for
Get-PnPSiteCollectionAppCatalog
andGet-PnPTenantSite
to be used with vanity domain tenants #3895 - Added support for using vanity domain tenants with
Grant-PnPTenantServicePrincipalPermission
,Revoke-PnPTenantServicePrincipalPermission
,Set-PnPWebTheme
,Invoke-PnPListDesign
,Set-PnPSite
,Add-PnPSiteDesignTask
,Get-PnPSiteDesignRun
,Get-PnPSiteDesignTask
andInvoke-PnPSiteDesign
cmdlets #3898 - Added
-Detailed
toGet-PnPMicrosoft365Group
which allows retrieval of the AllowExternalSenders, IsSubscribedByMail and AutoSubscribeNewMembers properties of the group #3958 - Added
-RequireSenderAuthenticationEnabled
and-AutoSubscribeNewMembers
toSet-PnPMicrosoft365Group
which allows setting these properties on a group #3958 - Added
Get-PnPContainerType
cmdlet to retrieve the list of Container Types created for a SharePoint Embedded Application in the tenant. #3946 - Added
-RecycleBinRetentionPeriod
,-OneDriveBlockGuestsAsSiteAdmin
,-OneDriveDefaultShareLinkRole
,-OneDriveDefaultShareLinkScope
and-OneDriveDefaultLinkToExistingAccess
parameters to theSet-PnPTenant
cmdlet. #3977 - Added
Get-PnPTenantRestrictedSearchMode
andSet-PnPTenantRestrictedSearchMode
cmdlets to enable and set up Restricted SharePoint Search. #3976 - Added
Get-PnPTenantInternalSetting
cmdlet to retrieve internal tenant settings not exposed via CSOM SDK. #3902 - Added
Add-PnPHomeSite
cmdlet to add a home site to your tenant. #3989 - Added
Get-PnPPageSchedulingEnabled
cmdlet to get the state of the modern page schedule feature in the library. PR - Added
-IncludeSensitivityLabels
parameter toGet-PnPMicrosoft365Group
cmdlet to retrieve sensitivity labels assigned to M365 Groups. #3991 - Added
Get-PnPFileSensitivityLabelInfo
cmdlet to retrieve sensitivity label information about a file in a SharePoint site. #3994 - Added
Get-PnPTenantRestrictedSearchAllowedList
cmdlet to retrieve existing list of URLs in the allowed list. #3997 - Added
-IsSharePointAddInsDisabled
to theSet-PnPTenant
cmdlet which allows disabling SharePoint Add-ins #4032 - Added
-RestrictContentOrgWideSearch
,-ReadOnlyForUnmanagedDevices
and-InheritVersionPolicyFromTenant
parameters toSet-PnPTenantSite
cmdlet. #4024
- Fixed
Get-PnPChangeLog -Version 2.3.0
not returning the changelog for that version #3804 - Fixed
Get-PnPFlow
cmdlet throwing time out error due to incorrect URL used in HTTP request. #3820 - Fixed
Copy-PnPList
cmdlet to better handle lookup columns. #3870 - Fixed NullDereferenceException happening when an exception is logged in PnPConnectedCmdlet but the connection passed through -Connection parameter is not the last one. #3885
- Fixed NullDereferenceException in
Get-PnPUserProfileProperty
cmdlet when the user profile doesn't exist, showing a better error message. #3891 - Fixed the dev build process on Mac OS devices. #3907
- Fixed
Get-PnPContainer
cmdlet to also handle pagination in case of large no. of containers in a tenant. #3990 - Fixed
New-PnPTeamsTeam
cmdlet to better handle error specifically such asConflict (409): Team already exists
. #3992 - Fixed
Remove-PnPTeamsChannel
issue where it was throwing incorrect exception. #4036
- Renamed
Get-PnPSiteFileVersionExpirationReportJobProgress
toGet-PnPSiteFileVersionExpirationReportJobStatus
#3828 - Renamed
Get-PnPSiteVersionPolicyProgress
toGet-PnPSiteVersionPolicyStatus
#3828 Remove-PnPGroupMember
cmdlet now supports removing members from pipeline. #3955- Changed
Set-PnPTenantCdnPolicy
cmdlet to allow PolicyValue parameter to be an empty string or $null, while still being mandatory. #3937 - Marked
UserVoiceForFeedbackEnabled
as obsolete inSet-PnPTenant
cmdlet as Microsoft doesn't support this. #3985 Get-PnPTenantSite
cmdlet now returns additional properties likeArchiveStatus
,EnableAutoExpirationVersionTrim
and many more. #3987Add-PnPListFoldersToSiteTemplate
cmdlet now wont export RoleBindings which areLimited Access
. It caused issues while applying the template. #3918
- Removed
UserVoiceForFeedbackEnabled
property fromGet-PnPTenant
as it is deprecated. PR
- Maxime Hazebroucq [mhazebroucq]
- Paolo Pialorsi [PaoloPia]
- Marc Studer [Studermarc]
- Mark Gort [markgort86]
- Christian Veenhuis [ChVeen]
- Tobias Maestrini [tmaestrini]
- WCONFR [WCONFR]
- Jenny Wu [msjennywu]
- Reshmee Auckloo [reshme011]
- Aimery Thomas [a1mery]
- Arleta Wanat [PowershellScripts]
- Giacomo Pozzoni [jackpoz]
- [blarrywangmsft]
- Koen Zomers [koenzomers]
- Erwin van Hunen [erwinvanhunen]
- Added
-IsDataAccessInCardDesignerEnabled
toSet-PnPTenant
which allows for configuring Viva Connections Adaptive Cards to connect to backend services for their data #3635 - Added
Remove-PnPContainer
cmdlet to remove the SharePoint embed container. #3629 - Added
Convert-PnPFile
cmdlet which allows for a file to be converted to from one format to another. #3435 & #3643 - Added
Merge-PnPTerm
cmdlet which allows merging of one term into another. #3638 - Added
Get-PnPDeletedContainer
cmdlet which returns a list of all deleted Containers in the recycle bin. #3648 - Added
-Batch
parameter toAdd-PnPGroupMember
cmdlet which allows adding members to a SharePoint group in a batch. #3651 - Added
Get-PnPContainerTypeConfiguration
cmdlet which fetches the container type configuration values. #3660 - Added
-AppBypassInformationBarriers
and-DefaultOneDriveInformationBarrierMode
parameters toSet-PnPTenant
cmdlet. #3679 - Added
Add-PnPFileAnalyticsData
cmdlet to allow retrieval of file analytics data. #3644 - Added
Add-PnPSiteAnalyticsData
cmdlet to allow retrieval of site analytics data. #3645 - Added
Get-PnPPowerPlatformSolution
cmdlet to Power Platform solutions. #3675 - Added
New-PnPContainerType
cmdlet to create a new SharePoint container type. #3669 - Added
Remove-PnPContainerType
cmdlet which removes a specific container type. #3689 - Added
Restore-PnPDeletedContainer
cmdlet which recovers a deleted Container from the Recycle Bin. #3661 - Added the ModerationSettings to be returned with
Get-PnPTeamsChannel
when passing in-IncludeModerationSettings
and using-Identity <channelId>
#3580 - Added
AllowNewMessageFromBots
,AllowNewMessageFromConnectors
,ReplyRestriction
andUserNewMessageRestriction
toSet-PnPTeamsChannel
which allows setting the moderation settings on a Teams channel #3580 - Added
Get-PnPWebPermission
cmdlet which retrieves permission given by user for specific web. #3685 - Added
-HorizontalQuickLaunch
parameter toSet-PnPWeb
cmdlet to allow navigation orientation to be horizontal. #3722 - Added support for different sovereign cloud environment for Power Platform related cmdlets #3725
- Added
Set-PnPRetentionLabel
andReset-PnPRetentionLabel
cmdlets to support setting a retention label on one or more items #3599 - Added
-SiteThumbnailUrl
parameter toSet-PnPWebHeader
cmmdlet to support setting thumbnail of the site. #3746 - Added
-Like
parameter toSet-PnPPage
cmdlet to support liking/unliking a modern page. #3788 - Added
Get-PnPPageLikedByInformation
cmdlet to retrieve list of users who liked a modern page. #3781
- Fixed
Grant-PnPAzureADAppSitePermission
cmdlet which allows it to work in multi-geo environment. #3658 - Fixed
Get-PnPTeamsChannelMessageReply
cmdlet which didn't work correctly when-IncludeDeleted
parameter was not specified. #3676 - Fixed
Add-PnPNavigationNode
cmdlet to also search for nodes in child navigation items. #3625 - Fixed
Get-PnPFlow
cmdlet to use the newer Flow URLs instead of the old ARM URLs. #3677 - Fixed
Get-PnPPowerPlatformConnector
,Get-PnPPowerPlatformEnvironment
,Get-PnPPowerApp
,Add-PnPFlowOwner
,Disable-PnPFlow
,Enable-PnPFlow
,Export-PnPFlow
,Get-PnPFlowOwner
,Get-PnPFlowRun
,Remove-PnPFlow
,Remove-PnPFlowOwner
,Restart-PnPFlow
andStop-PnPFlowRun
cmdlets to use the new HTTP endpoints. #3687 - Fixed
Add-PnPHubSiteAssociation
cmdlet to allow support for multi-geo scenario. #3568 - Fixed
Enable/Disable-PnPPageScheduling
cmdlet to also work with Viva connections enabled site. #3713 - Fixed
Register-PnPManagementShellAccess
andRegister-PnPAzureADApp
cmdlets to also work with custom environment. #3763 - Fixed
Set-PnPPPage
cmdlet to only change layout of the page if the parameter is specified. #3777 - Fixed
New-PnPGroup
cmdlet to correctly show the group description with HTML making it similar toSet-PnPGroup
.
-IsFavoriteByDefault
parameter is now obsolete inAdd-PnPTeamsChannel
cmdlet due to deprecation by Microsoft Graph API. #3712Get-PnPSiteTemplate
will now only containPersistPublishingFiles
,IncludeNativePublishingFiles
,IncludeTermGroupsSecurity
,IncludeSearchConfiguration
,SkipVersionCheck
andPersistMultiLanguageResources
if these are provided with the cmdlet as switch parameters #3715- Due to backend changes in Microsoft Graph,
Get-PnPUnifiedAuditLog
cmdlet requires some more permissions. Updated the cmdlet to handle that. #3745
- Arleta Wanat [PowershellScripts]
- Jenny Wu [msjennywu]
- Aimery Thomas [a1mery]
- Nils Andresen [nils-a]
- Gautam Sheth [gautamdsheth]
- Nishkalank Bezawada [NishkalankBezawada]
- Konrad K. [wilecoyotegenius]
- Leon Armston [LeonArmston]
- Daniel Cecil [danielcecil]
- Rohit Devmore [rohit404404]
- Konrad K. [wilecoyotegenius]
- Kunj Balkrishna Sangani [kunj-sangani]
- Koen Zomers [koenzomers]
- Reshmee Auckloo [reshme011]
- Nishkalank Bezawada [NishkalankBezawada]
- Jørgen Wiik [joHKwi]
- Siddharth Vaghasia [siddharth-vaghasia]
- Jürgen Rosenthal-Buroh [JuergenRB]
- Added
-MediaTranscription
and-MediaTranscriptionAutomaticFeatures
toSet-PnPTenant
which allows for configuring the media transcription settings. #3238 - Added
-Includes
option toGet-PnPListItem
which allows for specifying additional fields to be retrieved. #3270 - Added
-AllowCommentsTextOnEmailEnabled
parameter toSet-PnPTenant
which allows including the surrounding document context in email notification when user is mentioned in document comments. #3268 - Added
Export-PnPPowerApp
cmdlet which will export a specified PowerApp as zip package. #2990 - Added
AzureADLoginEndPoint
andMicrosoftGraphEndPoint
parameters toConnect-PnPOnline
cmdlet for use in custom Azure environments. #2925 - Added
Get-PnPFolder
cmdlet without any parameters to return the folder representing the root of the current web #3319 - Added
Get-PnPFileInFolder
cmdlet which allows retrieval of all files in a folder or site and optionally request additional properties from them #3319 - Added
Get-PnPFolderInFolder
cmdlet which allows retrieval of all folders in a folder or site and optionally request additional properties from them #3319 - Added
-SharingStatus
parameter toGet-PnPFlow
which allows for filtering flows based on their sharing status. #3287 - Added
-AzureADLoginEndPoint
and-MicrosoftGraphEndPoint
parameters toConnect-PnPOnline
cmdlet for use in custom Azure environments. #2925 - Added
SiteOwnerManageLegacyServicePrincipalEnabled
parameter toSet-PnPTenant
cmdlet. With this parameter site owners will not be able to register/update apps unless the tenant admin explicitly allows it. #3318 - Added
-EnableAutoExpirationVersionTrim
,-ExpireVersionsAfterDays
,-MajorVersions
,-MinorVersions
,-InheritTenantVersionPolicySettings
,-StartApplyVersionPolicySettingToExistingDocLibs
and-CancelApplyVersionPolicySettingToExistingDocLibs
toSet-PnPSite
to allow for time based version expiration on the site level #3373 - Added
-ReduceTempTokenLifetimeEnabled
,-ReduceTempTokenLifetimeValue
,-ViewersCanCommentOnMediaDisabled
,-AllowGuestUserShareToUsersNotInSiteCollection
,-ConditionalAccessPolicyErrorHelpLink
,-CustomizedExternalSharingServiceUrl
,-IncludeAtAGlanceInShareEmails
and-MassDeleteNotificationDisabled
toSet-PnPTenant
#3348 - Added
Add-PnPFlowOwner
andRemove-PnPFlowOwner
cmdlets which allow granting or removing permissions to a Power Automate flow #3343 - Added
Get-PnPFlowOwner
cmdlet which allows retrieving the owners of a Power Automate flow #3314 - Added
-AvailableForTagging
toSet-PnPTerm
which allows the available for tagging property on a Term to be set #3321 - Added
Get-PnPPowerPlatformConnector
cmdlet which allows for all custom connectors to be retrieved #3309 - Added
Set-PnPSearchExternalItem
cmdlet which allows ingesting external items into the Microsoft Search index for custom connectors. #3420 - Added
Get-PnPTenantInfo
which allows retrieving tenant information by its Id or domain name #3414 - Added option to create a Microsoft 365 Group with dynamic membership by passing in
-DynamicMembershipRule
#3426 - Added option to pass in a Stream or XML string to
Read-PnPTenantTemplate
allowing the tenant template to be modified before being applied. #3431 - Added
Get-PnPTenantInfo
which allows retrieving tenant information by its Id or domain name. #3414 - Added option to create a Microsoft 365 Group with dynamic membership by passing in
-DynamicMembershipRule
#3426 - Added
Get-PnPSiteVersionPolicy
which allows retrieval of the version policy settings for a site #3470 - Added
RestrictedAccessControl
,ClearRestrictedAccessControl
,RemoveRestrictedAccessControlGroups
,AddRestrictedAccessControlGroups
andRestrictedAccessControlGroups
parameters toSet-PnPTenantSite
cmdlet to handle restricted access control. #3463 - Added
Get-PnPRetentionLabel
cmdlet to retrieve Purview retention labels. #3459 - Added GCC support for
Get-PnPAzureADUser
,Add-PnPFlowOwner
,Remove-PnPFlowOwner
,Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
,New-PnPAzureADUserTemporaryAccessPass
andGet-PnPAvailableSensitivityLabel
cmdlets. #3484 - Added
-Detailed
option toGet-PnPTenantDeletedSite
to optionally fetch more information on the deleted sites #3550 - Added a devcontainer for easily building a minimal environment necessary to contribute to the project. #3497
- Added
-RelativeUrl
parameter toConnect-PnPOnline
cmdlet to allow specifying custom URLs for usage with-WebLogin
method. #3530 - Added
-RetryCount
toSubmit-PnPSearchQuery
which allows for specifying the number of retries to perform when an exception occurs #3528 - Added
-MailNickname
parameter toSet-PnPMicrosoft365Group
cmdlet to allow changing of this property on a Microsoft 365 Group #3529 - Added
-SanNames
toNew-PnPAzureCertificate
which allows for controlling the Subject Alternative Names set on the generated certificate #3555 - Added Information Barriers information to the output of
Get-PnPTenantSite
#3556 - Added
RequestFilesLinkEnabled
andRequestFilesLinkExpirationInDays
to the output ofGet-PnPSite
#3557 - Added
CoreRequestFilesLinkEnabled
,CoreRequestFilesLinkExpirationInDays
,OneDriveRequestFilesLinkEnabled
,OneDriveRequestFilesLinkExpirationInDays
,BusinessConnectivityServiceDisabled
to the output ofGet-PnPTenant
#3557 - Added
-BusinessConnectivityServiceDisabled
parameter toSet-PnPTenant
cmdlt to allow disabling the Business Connectivity Service #3562 - Added support for executing the 'Invoke-PnPSPRestMethod' cmdlet in a batch #3565
- Added
Get-PnPSiteSetVersionPolicyProgress
cmdlet which allows for getting the progress of setting a version policy for existing document libraries on a site #3564 - Added
EnableSensitivityLabelForPDF
toSet-PnPTenant
andGet-PnPTenant
#3581 - Changed
Restore-PnPRecycleBinItem
, made-Identity
parameter as non-mandatory. #2499 - Added the ability to set Manage and FullControl permissions directly when using Sites.Selected with
Grant-PnPAzureADAppSitePermission
#3617 - Added
Remove-PnPMicrosoft365GroupPhoto
cmdlet which allows removal of profile picture of M365 Group. #3607
- Fixed
Add-PnPContentTypeToList
cmdlet to better handle piped lists. #3244 - Fixed
Get-PnPUserProfileProperty
cmdlet not allowing basic user profile properties to be retrieved using-Properties
#3247 - Fixed
Export-PnPTermGroupToXml
cmdlet issue with exporting site collection term groups. #3256 - Fixed
Register-PnPAzureADApp
cmdlet issue with creation of Azure AD application. #3265 - Fixed
Get-PnPServiceHealthIssue
cmdlet issue with null reference objection. #3286 - Fixed
New-PnPSite
cmdlet issue with team site creation when using a connection object. #3285 - Fixed issue with colliding assemblies when using PnP PowerShell with other modules. #3280
- Fixed issue with
-ArchiveRedirectUrl
parameter not working correctly inSet-PnPTenant
cmdlet. #3289 - Fixed
New-PnPAzureADGroup
cmdlet throwing null reference error when owners and members are not specified. #3308 - Fixed
New-PnPTeamsTeam
cmdlet, it will now throw error if it fails to teamify a Microsoft 365 group. #3310 - Fixed
Get-PnPFolderItem
cmdlet not accepting piping a folder instance to it #3319 - Fixed
Get-PnPFolderItem
cmdlet not working well with the-Recursive
and-Identity
parameters provided together #3319 - Fixed
Get-PnPFolderItem
cmdlet not working well with the-ItemName
parameter #3319 - Fixed
Connect-PnPOnline
cmdlet throwing host not reachable errors. #3337 - Fixed
Set-PnPTerm
cmdlet throwing object reference error when only the term Id is specified. #3341 - Fixed
New-PnPTeamsTeam
cmdlet throwing an error when specifying members #3351 - Fixed
New-PnPTeamsTeam
cmdlet not working well with a managed identity #3351 - Fixed
Copy-PnPFile
,Copy-PnPFolder
andMove-PnPFile
to better handle copying or moving operations to OneDrive or Multi-geo environments. #3245 - Fixed
Get-PnPTenantTemplate
not doing anything when the-SiteUrl
parameter had not been specified. It will now use the currently connected site when the parameter is omitted. #3431 - Fixed
Enable-PnPPageScheduling
andDisable-PnPPageScheduling
cmdlets not working due to changes in backend code. #3469 - Fixed an issue when trying to download a file using
Get-PnPFile
from a location that's deeply nested into folders and/or has a really long filename PnP Core #1290 - Fixed retrieving error detail in
Get-UPABulkImportStatus
cmdlet. #3494 - Fixed
Rename-PnPTenantSite
cmdlet to allow support for vanity tenant URLs. #3533 - Fixed
Get-PnPAzureADUser
,Get-PnPEntraIDUser
,Add-PnPFlowOwner
andRemove-PnPFlowOwner
not working when an UPN containing an apostrophe was passed in #3570
- Improved
Set-PnPListItem
cmdlet handling of Purview labels. #3340 - The
Publish-PnPCompanyApp
cmdlet is now obsolete. It will be removed in the next version. #3349 - Verbose output will no longer show the access token #3352
- Improved
Add-PnPFile
cmdlet. It will now automatically checkout the file if-CheckinType
parameter is specified. #3403 - Improved the error message thrown when using
-ValidateConnection
withConnect-PnPOnline
and it failing due to i.e. an expired ClientSecret so the reason of the failed connect becomes more clear. #3440 - If a cmdlet gets renamed and an alias gets added for it for backwards compatibility, a cmdlet page for the alias will automatically be created so it can still be found in the documentation #3455
- Improved
Remove-PnPFlow
cmdlet to throw error if the Flow doesn't exist and also added verbose logging. #3474 - Changed
Get-PnPContentType
to now also support-Includes
to allow retrieval of additional properties of the content type #3518 Get-PnPTeamsTeam
cmdlet throws error message if the team isn't found when-Identity
parameter is specified. #3502- Improved
Get-PnPSiteCollectionAdmin
cmdlet to allow retrieval of additional properties when-Includes
parameter is specified. #3521
- Removed
-DisableListSync
and-SyncAadB2BManagementPolicy
fromSet-PnPTenant
as the underlying properties have been removed from SharePoint CSOM as well #3388
- Pieter Veenstra [Pieter-Veenstra]
- Konrad K. [wilecoyotegenius]
- Dan Cecil [danielcecil]
- Antti K. Koskela [koskila]
- Christian Veenhuis [ChVeen]
- Kunj Balkrishna Sangani [kunj-sangani]
- Dave Paylor [paylord]
- [smsdaniel]
- Jim Duncan [sparkitect]
- Jonathan Smith [jonathan-m-smith]
- Carl Joakim Damsleth [damsleth]
- Rodel Pacurib [ryder-cayden]
- [CatSchneider]
- [msjennywu]
- Reshmee Auckloo [reshmee011]
- Per Østergaard [per-oestergaard]
- Nishkalank Bezawada [NishkalankBezawada]
- [PowerBugi]
- Ganesh Sanap [ganesh-sanap]
- Siddharth Vaghasia [siddharth-vaghasia]
- Giacomo Pozzoni [jackpoz]
- Martin Lingstuyl [martinlingstuyl]
- Arleta Wanat [PowershellScripts]
- Nils Andresen [nils-a]
- Koen Zomers [koenzomers]
- Added
DisableDocumentLibraryDefaultLabeling
,DisableListSync
,IsEnableAppAuthPopUpEnabled
,ExpireVersionsAfterDays
,MajorVersionLimit
andEnableAutoExpirationVersionTrim
,OneDriveLoopSharingCapability
,OneDriveLoopDefaultSharingLinkScope
,OneDriveLoopDefaultSharingLinkRole
,CoreLoopSharingCapability
,CoreLoopDefaultSharingLinkScope
,CoreLoopDefaultSharingLinkRole
,DisableVivaConnectionsAnalytics
,CoreDefaultLinkToExistingAccess
,HideSyncButtonOnTeamSite
,CoreBlockGuestsAsSiteAdmin
,IsWBFluidEnabled
,IsCollabMeetingNotesFluidEnabled
,AllowAnonymousMeetingParticipantsToAccessWhiteboards
,IBImplicitGroupBased
,ShowOpenInDesktopOptionForSyncedFiles
,OneDriveRequestFilesLinkExpirationInDays
andShowPeoplePickerGroupSuggestionsForIB
parameters to theSet-PnPTenant
cmdlet. #2979 and #3015 - Added
-OutFile
toInvoke-PnPGraphMethod
which allows for the response to be written to a file #2971 - Added
-OutStream
toInvoke-PnPGraphMethod
which allows for the response to be written to a memory stream #2976 - Added
-PreviousNode
toAdd-PnPNavigationNode
which allows for adding a navigation node after a specific node #2940 - Added
EnableAzureADB2BIntegration
to be returned byGet-PnPTenant
#3022 - Added
-SkipUrlValidation
toGet-PnPSiteCollectionAppCatalog
which allows for skipping the URL validation when retrieving the site collection app catalog making it faster but potentially returning URLs that have been renamed #2305 - Added
Get-PnPLargeListOperationStatus
cmdlet to retrieve the status of a large list operation. #3033 - Added
-BlockDownloadFileTypePolicy
,-BlockDownloadFileTypeIds
and-ExcludedBlockDownloadGroupIds
parameters toSet-PnPTenant
cmdlet. #3081 - Added
-BlockDownloadPolicy
,-ExcludeBlockDownloadPolicySiteOwners
andExcludedBlockDownloadGroupIds
parameters toSet-PnPTenantSite
andSet-PnPSite
cmdlets. #3084 - Added
-OpenInNewTab
parameter toAdd-PnPNavigationNode
cmdlet to allow links to be opened in a new tab. #3094 - Added
-ArchiveRedirectUrl
toSet-PnPTenant
allowing the configuration of a custom page to be shown when navigating to an archived SharePoint Online site #3100 - Added
-BlockSendLabelMismatchEmail
toSet-PnPTenant
allowing the warning e-mail being sent when uploading a file with a higher sensitivity label than the site it is being uploaded to to be disabled. #3113 - Added
Move-PnPTerm
andMove-PnPTermSet
cmdlets to allow moving the terms and termsets. #2989 - Added
-VerticalZoneEmphasis
parameter toAdd-PnPPageSection
cmdlet to allow setting the emphasis value for vertical columns. #3129 - Added
-AllowDeletion
parameter toSet-PnPList
cmdlet to allow or prevent deletion of list from the SharePoint UI. #3142 - Added
EnableClassicAudienceTargeting
andEnableModernAudienceTargeting
parameters toSet-PnPList
cmdlet to enable audience targeting in lists. #3153 - Added
-Attachments
parameter toSend-PnPMail
cmdlet to allow sending attachments via Microsoft Graph API. #3157 - Added cmdlets for list item version history:
Get-PnPListItemVersion
,Restore-PnPListItemVersion
andRemove-PnPListItemVersion
. #3086 - Added
Add-PnPFileOrganizationalSharingLink
andAdd-PnPFolderOrganizationalSharingLink
cmdlets to allow creating organizational sharing links for files and folders. #3177 - Added
Add-PnPFileUserSharingLink
andAdd-PnPFolderUserSharingLink
cmdlets to allow creating sharing links for files and folders to share them with specified list of users. #3178 - Added
Get-PnPFileSharingLink
andGet-PnPFolderSharingLink
cmdlets to retrieve sharing links for files and folders respectively. #3181 - Added
Add-PnPFileAnonymousSharingLink
andAdd-PnPFolderAnonymousSharingLink
cmdlets to create anonymous sharing links. #3198 - Added
Add-PnPFileSharingInvite
andAdd-PnPFolderSharingInvite
cmdlets to invite users to a file or a folder. #3199 - Added
Remove-PnPFileSharingLink
andRemove-PnPFolderSharingLink
cmdlets to delete sharing links associated with files and folders. #3200 - Added
Get-PnPUnfurlLink
cmdlet to support unfurling a link to get more information about the link. #3224 - Added
ListsShowHeaderAndNavigation
parameter to always show lists with site elements intact when specified inSet-PnPTenantSite
andSet-PnPSite
cmdlets. #3233 - Added
-AzureADWorkloadIdentity
parameter toConnect-PnPOnline
cmdlet to support Azure AD Workload Identity authentication. #3097 - Added Managed identity support for Power Platform related cmdlets. #3097
- Added
-ShowInPublishDate
parameter toSet-PnPPage
to allow the publication date to be shown or hidden on a page #3417
- Fixed issue with
Grant-PnPAzureADAppSitePermission
cmdlet where users are not able to set selected site in theSites.Selected
permission. #2983 - Fixed issue with
Get-PnPList
cmdlet not working with site-relative URL as identity. #3005 - Fixed issue with
Add-PnPNavigationNode
cmdlet where the target audience would not correctly be set when creating a node as a child of a parent node #2940 - Fixed regressions within the following cmdlets
Get-PnPTenantCdnEnabled
,Get-PnPTenantCdnOrigin
,Get-PnPTenantCdnPolicies
,Get-PnPTenantDeletedSite
,Get-PnPTenantInstance
#3030 - Fixed issue where
Add-PnPSiteCollectionAdmin -PrimarySiteCollectionAdmin <user>
would require owners to be specified as well. #3035 - Fixed
Get-PnPAzureADGroup
returns only 100 results even if there are more groups present in Azure AD. #3085 - Fixed
Get-PnPAccessToken
cmdlet to correctly retrieve the access token for the specified resource URL. #3091 - Fixed issue with
Get-PnPTenantSyncClientRestriction
cmdlet not populating the necessary properties. #3099 - Fixed
Add/Set/Get-PnPPage
cmdlets when using multilingual translation parameters which caused some exceptions. #3120 - Fixed
New-PnPSite
cmdlet now supports creating Team site in non-commercial cloud environments. #885 - Fixed issue where
Get-PnPField
cmdlet was throwing error in case-Includes
parameter was used. #3225 - Fixed issue with
Add-PnPDataRowsToSiteTemplate
cmdlet where it would throw property not initialized error when using-IncludeSecurity
parameter. #3226
- Improved
Set-PnPSite
cmdlet when using theScriptSafeDomainName
parameter. If a domain is already existing, it will now throw a warning. #3073 - Change
Set-PnPWebhookSubscription
to use the same default expiration date asAdd-PnPWebhookSubsription
cmdlet which is 180 days instead of 6 months.#3106 - Improved
Set-PnPHomePage
cmdlet to handle forward slash issue. #3128 - Improved
Connect-PnPOnline
cmdlet to handle ping on the destination server to check if it exists. PR and #3154 - Improved
Invoke-PnPGraphMethod
cmdlet to show a better error message when sufficient permissions are not available. #3133 - Improved
Add-PnPDataRowsToSiteTemplate
cmdlet to retrieve list item with pagination. #3152 - Improved error message when caused using Graph endpoints used via PnP Core SDK. #3179
- Improved
Add-PnPDataRowsToSiteTemplate
cmdlet performance to not load and execute every list item. #3226
- Removed alias
Get-PnPSiteCollectionAppCatalogs
forGet-PnPSiteCollectionAppCatalog
#2305 - Removed alias
Export-PnPClientSidePage
, please useExport-PnPPage
cmdlet. #3158 - Removed alias
Export-PnPClientSidePageMapping
, please useExport-PnPPageMapping
cmdlet. #3158 - Removed alias
Get-PnPClientSideComponent
, please useGet-PnPPageComponent
cmdlet. #3158 - Removed alias
Remove-PnPClientSideComponent
, please useRemove-PnPPageComponent
cmdlet. #3158 - Removed alias
Set-PnPClientSideText
, please useSet-PnPPageTextPart
cmdlet. #3158 - Removed alias
Set-PnPClientSideWebPart
, please useSet-PnPPageWebPart
cmdlet. #3158
- Arleta Wanat [PowershellScripts]
- Michał Romiszewski [mromiszewski]
- Kasper Larsen [kasperbolarsen]
- Ganesh Sanap [ganesh-sanap]
- Giacomo Pozzoni [jackpoz]
- James Eccles [jameseccles]
- Kunj Balkrishna Sangani [kunj-sangani]
- Dayana Hristova [makarovv]
- Rodrigo Pinto [ScoutmanPt]
- Reshmee Auckloo [reshmee011]
- Dan Toft [Tanddant]
- [reusto]
- [dhiabedoui]
- Koen Zomers [koenzomers]
- Fixed an issue with the signing of the PnP PowerShell 2.1.0 release
- Added support for
.NET 6.0
since.NET Core 3.1
support is getting deprecated. We have removed support for .NET Core 3.1, so users will have to update fromPowerShell 7.0.x
toPowerShell 7.2.x or later
#2292 - Added default table formatted output for
Get-PnPVivaConnectionsDashboardACE
- Added
Get-PnPAzureADServicePrincipal
which allows for service principals/application registrations to be retrieved from Azure Active Directory #2551 - Added
Get-PnPAzureADServicePrincipalAssignedAppRole
which allows for the assigned app roles of a service principal/application registration to be retrieved from Azure Active Directory #2551 - Added
Get-PnPAzureADServicePrincipalAvailableAppRole
which allows for the available app roles of a service principal/application registration to be retrieved from Azure Active Directory #2551 - Added
Add-PnPAzureADServicePrincipalAppRole
which allows for app roles to be assigned to a service principal/application registration in Azure Active Directory #2551 - Added
Remove-PnPAzureADServicePrincipalAppRole
which allows for app roles to be removed from a service principal/application registration in Azure Active Directory #2551 - Added latest added SharePoint Online Site Templates to
Set-PnPBuiltInSiteTemplateSettings
allowing them to be hidden or shown #2586 - Added
-EnableAzureADB2BIntegration
and-SyncAadB2BManagementPolicy
parameters toSet-PnPTenant
#2631 - Added
-ShowInFiltersPane
toSet-PnPField
which allows fields to be shown or hidden in the filters pane #2623 - Added
-KeyColumn
toAdd-PnPDataRowsToSiteTemplate
which allows for overwriting existing list items in a site template #2616 - Added
Get-PnPFolderStorageMetric
which allows storage usage of a specific folder to be retrieved #2646 - Added
IsTeamsConnected
,IsTeamsChannelConnected
andTeamChannelType
to be returned whenGet-PnPTenantSite
cmdlet is executed. #2656 - Added
HTTP/2
support for all HTTP requests to improve performance for HTTP requests. #2687 - Added
-EnvironmentVariable
parameter toConnect-PnPOnline
to connect using Azure environment variables. #2681 - Added
ResponseHeadersVariable
parameter to theInvoke-PnPSPRestMethod
which if specified will store the response headers values in the PowerShell variable name that is specified. #2711 - Added
-Filter
parameter toGet-PnPAzureADServicePrincipal
cmdlet to retrieve specific application registrations based on filter conditions. It supports simple and advanced queries. #2710 - Added
-Filter
parameter toGet-PnPMicrosoft365Group
cmdlet to retrieve specific M365 groups based on filter conditions. It supports simple and advanced queries. #2709 - Added
-CoreRequestFilesLinkExpirationInDays
and-CoreRequestFilesLinkEnabled
toSet-PnPTenant
and-RequestFilesLinkExpirationInDays
toSet-PnPSite
to allow configuration of the new receive files to SharePoint Online folder feature #2719 - Added
PSVersion
tracking, which tracks the PowerShell version being used. #Commit - Added
-Bcc
option toSend-PnPMail
#2726 - Added
-AudienceIds
option toAdd-PnPNavigationNode
to allow setting the audience for a navigation node #2736 - Added
-PrimarySiteCollectionAdmin
toAdd-PnPSiteCollectionAdmin
to allow for the primary site collection admin to be set on the current site #2750 - Added
-PrimarySiteCollectionAdmin
toSet-PnPTenantSite
to allow for the primary site collection admin to be set on a provided site #2750 - Added additional fallback logic for retrieving tokens in Azure VM scenario using well-know endpoint when using Managed Identity authentication. #2761
- Added
-IsVivaConnectionsDefaultStartForCompanyPortalSiteEnabled
parameter toGet-PnPHomeSite
which returns information on whether Viva Connections landing experience is set to the SharePoint home site. #2779 - Added
-VivaConnectionsDefaultStart
parameter toSet-PnPHomeSite
which sets the home site to the provided site collection url and keeps the Viva Connections landing experience to the SharePoint home site. #2779 - Added
-LargeList
parameter toRemove-PnPList
cmdlet which improves the list recycling experience for Lists containing huge number of items. #2778 - Added support for specifying the ContentUrl and WebsiteUrl configuration in
Add-PnPTeamsTab
cmdlet when trying to add a SharePoint page or list as a tab in Teams channel. #2807 - Added
-CheckinType
parameter toAdd-PnPFile
cmdlet which provides the option to specify the checkin type for a file. The default value is set toMinorCheckIn
. #2806 - Added
-DefaultSensitivityLabelForLibrary
toSet-PnPList
which allows setting the default sensitivity label for a library. #2825 - Added
-ApplicationId
as alias for-ClientId
inConnect-PnPOnline
andRequest-PnPAccessToken
cmdlets. #2805 - Added
-Connection
option toConnect-PnPOnline
which allows of reusing an authenticated connection to connect to a different site #2821 - Added
-UserAssignedManagedIdentityAzureResourceId
and-UserAssignedManagedIdentityClientId
as alternatives to-UserAssignedManagedIdentityObjectId
forConnect-PnPOnline -ManagedIdentity
to provide an user managed identity to authenticate with. #2813 - Added clearer error message when connecting using an expired client secret and trying to execute a command.#2828
- Added
Undo-PnPFileCheckedOut
which allows a checked out file to discard its changes and revert to the last checked in version. #2837 - Added option for sending e-mail using Microsoft Graph and through a SMTP server of choice in the
Send-PnPMail
cmdlet #2880 - Added
-OpenDocumentsMode
option toSet-PnPList
which allows configuring if documents should be opened in the browser or in the local client #2873 - Added
-Properties
parameter toGet-PnPUserProfileProperty
cmdlet which allows retrieval of specific properties if specified. #2840 - Added support for specifying the
-ContentUrl
configuration inAdd-PnPTeamsTab
cmdlet when trying to add a Planner as a tab in Teams channel. #2850 - Added
Get-PnPSharePointAddIn
cmdlet to retrive list of SharePoint addins installed in the site collection. #2920 - Added
Get-PnPAzureACSPrincipal
cmdlet to retrieve list of installed Azure ACS Principals in the site collection or tenant. #2920 - Added
-LogoFilePath
parameter toRegister-PnPAzureADApp
cmdlet to allow setting the logo for the Azure AD app. #2881 - Added support for
-Verbose
inMove-PnPFile
which will show if it has problems determining if the destination location is a folder or a file #2888 - Added
CalendarMemberReadOnly
andConnectorsDisabled
as-ResourceBehaviorOptions
toNew-PnPMicrosoft365Group
#2929 - Added
-Identity
option toGet-PnPPowerPlatformEnvironment
which allows retrieval of one specific environment by its displayname or id. #2794 - Added
Get-PnPPowerApp
which allows PowerApps to be retrieved #2794 - Added
-DisableCommenting
toSet-PnPList
which allows enabling or disabling commenting on a list. #2939 - Added
-EnableAutoExpirationVersionTrim
and-ExpireVersionsAfterDays
toSet-PnPList
which allows enabling or disabling auto expiration of versions on a list or library based on the days passed. #2869 - Added
-Detailed
parameter toGet-PnPHomeSite
which will return detailed information on all home sites configured on the tenant #2954
Update-PnPVivaConnectionsDashboardACE
is now calledSet-PnPVivaConnectionsDashboardACE
butUpdate-PnPVivaConnectionsDashboardACE
will still work as an alias.- All
Set|Get|Remove-PnPVivaConnectionsDashboardACE
cmdlets now take either the InstanceId (preferred), Title, the Id, or an actual ACE for the Identity property. If multiple ACEs of the same id or with the same title are found a warning will be shown if Id or Title is used to find the ACE. - Made PropertiesJSON an optional parameter on
Add-PnPVivaConnectionsDashboardACE
as it is not always required when adding an ACE - Added a 10 second timeout on the new version check on
Connect-PnPOnline
to prevent the cmdlet from hanging when the connection is slow, GitHub being blocked by a firewall or GitHub being unavailable #2550 - Improved
Add-PnPField
,Get-PnPListItem
andGet-PnPSiteDesignRun
cmdlets by improving null checks based on warnings from compiler. #PR1 and #PR2 - Improved
Register-PnPAzureADApp
andRegister-PnPManagementShellAccess
cmdlets to reuse existing HTTP client instead of creating a new one. #2682 - Improved
Register-PnPAzureADApp
cmdlet based on compiler warnings. #2682 Connect-PnPOnline
will now throw a much clearer error message if the site to be connected doesn't exist when using the legacy Client Id with Secret (ACS) authentication mode. #2707- Properties of
Get-PnPAzureADServicePrincipal
are now all typed instead of some of them returning unparsed JSON fragments. #2717 - Changed
Add-PnPTeamsChannel
to no longer require an-OwnerUPN
to be provided when specifying-ChannelType Standard
#2786 - Changed
Add-PnPFile
by default to upload a file as a draft with a minor version now instead of publishing it as a major version.-CheckinType MajorCheckIn
can be used to still upload the file as a major published version #2806 - Changed
Send-PnPMail
to support-Verbose
and provide feedback if sending the e-mail has failed #2880 - Improved
Restore-PnPRecycleBinItem
andClear-PnPRecycleBinItem
cmdlets to better work with large items in recycle bin. [#2866] (#2866) - Changed
Get-PnPUserProfileProperty
to no longer return additional user profile properties under UserProfileProperties but instead directly on the returned instance. #2840
- Removed support for PowerShell 5, only PowerShell 7.2 and later will be supported from here onwards #2764
- Removed
Get-PnPSubscribeSharePointNewsDigest
andSet-PnPSubscribeSharePointNewsDigest
as the implementation behind these features has been changed in SharePoint Online causing them no longer to work. At present, there's no alternative for this that we can call into thus we will have to remove these in a future version. There is a Design Change Request open with the Program Group to add back APIs for doing this. If that will be accepted and implemented, we will add these back again. #2720 - Removed
-ReturnTyped
parameter from theGet-PnPField
cmdlet. The retrieved fields will always be returned by theirTypeKind
. #2849 - Removed alias
Get-PnPFlowEnvironment
fromGet-PnPPowerPlatformEnvironment
. Please use the latter going forward. #2794 - Marked
BlockEdit
andBlockDeletion
parameters as obsolete inSet-PnPLabel
cmdlet. #2934
- Fixed issue with -CreateDrive on
Connect-PnPOnline
throwing exception on non-existing context - Fixed issue with non-existing ItemProxy cmdlet aliases being registered
- Fixed issue with
-TranslationLanguageCode
failures inAdd-PnPPage
andSet-PnpPage
cmdlets. #2634 - Fixed issue with
Export-PnPUserInfo
andRemove-PnPUserInfo
cmdlets not working due to issue with parameter validation. #2688 - Fixed issue with
Add-PnPNavigationNode
not always showing the new navigation node without requiring a manual edit and save of the menu first #2736 - Fixed issue with
Get-PnPFolder
ignoring-Includes
parameter when passing in a specific list through-List
#2735 - Fixed the handling of
-ErrorAction
so it follows the standard PowerShell behavior #2741 - Fixed issue with
Set-PnPContentType
not allowing you to update basic properties of a content type #2760 - Fixed
Add-PnPField
not supporting a ReturnType to be set for calculated fields when created on the site level #2765 - Fixed issue with
Invoke-PnPSPRestMethod
throwing error when the response string is empty. #2784 - Removed
Get-PnPSubscribeSharePointNewsDigest
andSet-PnPSubscribeSharePointNewsDigest
cmdlet as the implementation behind these features has been changed in SharePoint Online causing them no longer to work. At present, there's no alternative for this that we can call into. - Fixed issue with
Invoke-PnPSPRestMethod
andInvoke-PnPGraphMethod
throwing error when passing complex JSON object as payload. #2802 - Fixed issue with
Add-PnPListItem
andSet-PnPListItem
not correctly setting the PurviewUnlocked by default
. #2800 - Fixed issue with
Get-PnPListItem
cmdlet not respectingRowLimit
in the CAML query. #2804 - Fixed
Connect-PnPOnline -ManagedIdentity -UserAssignedManagedIdentityClientId
not working in Azure Automation Runbooks as it required usage of the object_id parameter instead of the principal_id to get an access token. #2813 - Fixed issue with
Send-PnPMail
not being able to send out e-mail due to the deprecation of basic authentication on Exchange Online #2880 - Fixed
Register-PnPAzureADApp
cmdlet to not change or generate certificate if-CertificatePath
parameter is already specified. #2878 - Fixed
New-PnPSite
cmdlet to work with non-commercial cloud environments. - Fixed
Set-PnPSearchSettings
cmdlet not working with vanity domain tenants #2884 - Fixed
Add-PnPFieldFromXml
cmdlet. It will now return the correct typed field if the added field was of typeTaxonomy
. #2926 - Fixed
New-PnPSitetemplateFromFolder
removing the first character of filenames #2944
- Sumit Kumar [sumitkumar0608]
- [msjennywu]
- [enthusol]
- Chris R. [ChrisRo89]
- Aimery Thomas [a1mery]
- Ganesh Sanap [ganesh-sanap]
- Markus Hanisch [m-hanisch]
- Kasper Larsen [kasperbolarsen]
- Arnaud Rompen [rompenar]
- [reusto]
- Ronald Mavarez [ronaldmavarez]
- [lilealdai]
- Martin Lingstuyl [martinlingstuyl]
- Reshmee Auckloo [reshmee011]
- Arleta Wanat [PowershellScripts]
- Leon Armston [LeonArmston]
- Robin Meure [robinmeure]
- Rohit Varghese [rohitvarghese96]
- Erwin van Hunen [erwinvanhunen]
- Marc Studer [studermarc]
- [vin-ol]
- Koen Zomers [koenzomers]
- Added
-DisableGridEditing
option toSet-PnPList
which allows gridview editing to be enabled or disabled on a list #2188 - Added verbose logging for
Invoke-PnPSiteSwap
,Restore-PnPTenantSite
and cmdlets which depend onSpoOperation
. #2207 - Added support for
DisplayNamesOfFileViewers
andDisplayNamesOfFileViewersInSpo
properties inGet-PnPTenant
andSet-PnPTenant
cmdlets to show/hide viewers in property pane for a file. #2271 - Added
MailEnabled
,PreferredDataLocation
,PreferredLanguage
andSecurityEnabled
parameters toNew-PnPMicrosoft365Group
cmdlet. #2268 - Added
-DraftVersionVisibility
parameter to theSet-PnPList
cmdlet to specify draft item security for list items. #2285 - Added support for
-ErrorAction:Stop
to PnP PowerShell cmdlets. Notice that if you were using this in combination with the specific try/catch [System.Management.Automation.PSInvalidOperationException], it will no longer catch the exception. It will throw anSystem.Management.Automation.ErrorRecord
exception instead. Remove the-ErrorAction:Stop
parameter from your cmdlet or catch this new exception type to avoid this behavior. #2288 - Added ability to create shared Teams channels using
Add-PnPTeamsChannel -ChannelType Shared
#2308 - Added support for
IsLoopEnabled
properties inGet-PnPTenant
andSet-PnPTenant
cmdlets to to enable/disable loop components in the tenant. #2307 - Added support for
SubscribeMembersToCalendarEventsDisabled
resource behavior option inNew-PnPMicrosoft365Group
andNew-PnPTeamsTeam
cmdlet. #2349 - Added
-OneDriveRequestFilesLinkEnabled
option toSet-PnPTenant
to allow configuring the request files anonymously feature on the tenant level #2360 - Added
-RequestFilesLinkEnabled
option toSet-PnPSite
to allow configuring the request files anonymously feature on a per site collection level #2360 - Added
ScriptSafeDomainName
option toSet-PnPSite
to allow contributors to insert iframe from specified domains only. #2363 - Added
AlertTemplateName
paramter toAdd-PnPAlert
to allow configuring the Alert Template type name in the email. #2362 - Added
Get-PnPAzureADActivityReportDirectoryAudit
to retrieve the audit logs generated by Azure AD. #2095 - Added
-Path
option toSet-PnPList
which allows the url of a list to be changed within the same site #2381 - Added
-Force
option toSet-PnPListem
to force it to update a list item even without changing something. Can be useful in i.e. triggering a webhook. #2396 - Added
ImageUrl
,PageImageAlignment
,ImageHeight
andImageWidth
parameters toAdd-PnPPageTextPart
cmdlet so that users can add an inline image into a text webpart. #2401 - Added
TextBeforeImage
andTextAfterImage
parameters toAdd-PnPPageTextPart
cmdlet so that users can add before and after text for an inline image into a text webpart. #2403 - Added
Add-PnPPageImageWebPart
cmdlet to allow users to easily add Image to a modern page. #2406 - Added system assigned Managed Identity support for SharePoint Online cmdlets. #2354
- Added user assigned Managed Identity support for Microsoft Graph and SharePoint Online cmdlets. #2491
- Added
Get-PnPTeamsTag
cmdlet to retrieve Team tags information. #2414 - Added
Properties
attribute toUpdate-PnPVivaConnectionsDashboardACE
to allow for updating the properties of a Viva Connections dashboard ACE component using its typed properties #2433 - Added
Set-PnPTeamsTag
cmdlet to update Team tags information. #2419 - Added
Remove-PnPTeamsTag
cmdlet to delete a Team tag. #2419 - Added
Disable-PnPPowerShellTelemetry
cmdlet to disable telemetry collection. #2432 - Added
Enable-PnPPowerShellTelemetry
cmdlet to enable telemetry collection. #2432 - Added
Get-PnPAzureADActivityReportSignIn
cmdlet to enable retrieving of Azure AD sign ins. #2436 - Added support to remove the site collection app catalog by using Id of the site collection in
Remove-PnPSiteCollectionAppCatalog
cmdlet. #2452 - Added support for the
EnableRestrictedAccessControl
parameter toSet-PnPTenant
andRestrictedAccessControl
forSet-PnPSite
to restrict site access to members of a Microsoft 365 group. #2462 - Added
Set-PnPImageListItemColumn
cmdlet to support setting of the new image/thumbnail value for a SharePoint list item.#2468 - Added
-Filter
parameter toGet-PnPTeamsTeam
cmdlet to retrieve specific teams based on filter conditions. It supports simple and advanced queries. #2467 , #2474 - Added
Get-PnPMicrosoft365ExpiringGroup
cmdlet to retrieve Microsoft 365 groups which are nearing expiration.#2466 - Added additional parameters to
Set-PnPContentType
cmdlet to support SPFx form customizer related properties.#2456 - Added
-Filter
parameter toGet-PnPAzureADApp
cmdlet to retrieve specific Azure AD apps based on filter conditions. It suppports simple and advanced queries. #2477 - Added
Get-PnPDeletedTeam
cmdlet to retrieve all deleted Microsoft Teams teams #2487 - Added
-ServerRelativePath
and-Path
parameters toSet-PnPImageListItemColumn
cmdlet to allow for file to be uploaded for the Image type column. #2503 - Added support for sovereign tenants in
Get-PnPTenandId
by utilizing the-AzureEnvironment
parameter. #2512 - Added
Set-PnPTeamsTeamPicture
which allows setting the picture of a Teams team #3590
- Changed to no longer require
https://
to be prefixed when usingConnect-PnPOnline -Url tenant.sharepoint.com
#2139 Get-PnPAvailableSensitivityLabel
cmdlet now uses the non-deprecated Graph API to retrieve sensitivity label. #2234- Improved
Get-PnPMicrosoft365Group
cmdlet to better check the Id, DisplayName and MailNickname of Microsoft 365 Group. #2258 - Improved
Get-PnPStorageEntity
cmdlet whenKey
parameter is specified. #2275 - Improved
Get-PnPAuthenticationRealm
cmdlet to useHTTP Client
instead ofWebRequest
. #2304 - Changed
Get-PnPRoleDefinition
so that it now also supports the role definition Id to be used with-Identity
as well as the role definition name #2336 - Creating private Teams channels formerly using
Add-PnPTeamsChannel -Private
should now useAdd-PnPTeamsChannel -ChannelType Private
instead #2308 - Improved
Get-PnPAuthenticationRealm
cmdlet to useHTTPClient
instead ofWebRequest
. #2304 - Improved
Connect-PnPOnline
with ACS method. Replace the usage ofWebRequest
withHTTPClient
. #2352 - Improved
Remove-PnPFieldFromContentType
cmdlet to ensure proper null check for non-existing fields. It will now throw properField not found
error. #2407 - Changed the Microsoft 365 Groups cmdlets to use the
v1.0
endpoint instead of thebeta
#2426 - Changed
Add-PnPMicrosoft365GroupToSite
to longer require the-Url
parameter to be specified. If its not provided, the currently connected to site will be groupified. #2496
- Marked
-Resource
parameter fromGet-PnPAccessToken
cmdlet as obsolete as it was not used anymore anyway. It will be removed in a future version. #2182 - Removed
-SystemUpdate
option fromSet-PnPListItem
as it has been deprecated two years ago. Use-UpdateType SystemUpdate
instead #2396 - Removed
-Force
parameter fromNew-PnPTenantSite
. It was marked obsolete and not used anymore in the code. - Removed
-BlockDownloadOfNonViewableFiles
parameter fromSet-PnPTenantSite
cmdlet. It was marked obsolete. Instead use-AllowDownloadingNonWebViewableFiles
parameter. - Removed
-NoTelemetry
and-NoVersionCheck
parameters fromConnect-PnPOnline
cmdlet. They were marked obsolete. Instead you need to specifyPNP_DISABLETELEMETRY
andPNPPOWERSHELL_UPDATECHECK
as environment variable. - Removed
-Connection
parameter fromDisconnect-PnPOnline
cmdlet. For more information on how to deal with this, please read this documentation. - Removed
-Web
parameter support for cmdlets that are currently using it. Instead you should useConnect-PnPOnline
to connect to a specific Web instance like a sub-site or a site under a sub-site. - Removed
-Resource
parameter fromGet-PnPAccessToken
cmdlet. It was marked as obsolete and not used anymore. - Removed
-SkipSourceFolderName
parameter fromCopy-PnPFile
cmdlet. It was marked as obsolete and not used anymore. - Removed
-ExcludeSiteUrl
,-IncludeClassification
and-IncludeHasTeam
parameters fromGet-PnPMicrosoft365Group
cmdlet. They were marked as obsolete. The site URL(s) are excluded by default, instead use-IncludeSiteUrl
parameter if you want to retrieve site URL(s). The classification will always be retrieved. TheHasTeam
value is always retrieved. - The
UserType
andEnvironment
properties will not be retrieved when usingGet-PnPFlow
andRemove-PnPFlow
cmdlets. They were marked as obsolete. You should usedProperties.Creator.UserType
andEnvironmentDetails
instead. - The
OnlyAllowMembersViewMembership
andSetAssociatedGroup
parameters have been removed. They were already marked as obsolete. You should use-DisallowMembersViewMembership
parameter to disallow group members viewing membership and useSet-PnPGroup
cmdlet to set groups as associated groups. - Removed
-Owner
paramter fromNew-PnPTeamsTeam
cmdlet. It was marked as obsolete. You should instead use-Owners
parameter. - Removed support for
2019-03
version of the PnP Provisioning Schema fromConvert-PnPSiteTemplate
,New-PnPSiteTemplateFromFolder
and other cmdlets which are using this schema. It was already marked as deprecated in the PnP Provisioning engine. You should use a newer version of the schema. - Removed
-NoBaseTemplate
parameter fromGet-PnPSiteTemplate
cmdlet. It was marked as obsolete. It will not use the default web base template of the connected site. - Removed
-Private
parameter fromAdd-PnPTeamsChannel
cmdlet. It was marked as obsolete. You should useTeamMembershipType
parameter instead.
- Fixed issue where passing in
-Connection
toDisconnect-PnPOnline
would throw an exception #2093 - Fixed
Get-PnPSiteSearchQueryResults
throwingValue cannot be null
exception #2138 - Fixed
New-PnPUPABulkImportJob
not returing the job Id #2144 - Fixed
Get-PnPSiteCollectionAppCatalog
throwing an exception when the site was deleted #2201 - Fixed
Set-PnPTermGroup
throwing an exception even when the group existed. #2232 - Fixed
Remove-PnPFile
cmdlet parameter set error. #2230 - Fixed
Get-PnPAccessToken
cmdlet to be able to work with different site collections as well as require an actual connection first. #2270 - Fixed
Copy-PnPList
cmdlet to be able to copy the list structure to the destination web. #2313 - Fixed
Add-PnPField
cmdlet , it was throwing null reference error when-Type
was not specified and after the prompt you entered the correct type. #2338 - Fixed regression issue with
New-Microsoft365Group
cmdlet. #2349 - Fixed issue with
Add-PnPTaxonomyField
, it was throwing error when using-TaxonomyItemId
parameter. #2351 - Fixed
Import-PnPTermGroupFromXml
issue where a valid template was not working. #2353 - Fixed
Set-PnPTenant
cmdlet not working when-Force
parameter is specified. #2373 - Fixed
Add-PnPTeamsTab
cmdlet not working with certain types when using dynamic parameters. #2405 - Fixed
Get-PnPVivaConnectionsDashboardACE
missing theisVisible
property underCardButtonActions
causing usingUpdate-PnPVivaConnectionsDashboardACE
to hide card buttons [#2433](#2433 - Fixed issue with
Set-PnPTeamsChannel -IsFavoriteByDefault
throwing aNullable object must have a value
under certain circumstances #2425 - Fixed
Register-PnPManagementShellAccess
for non-commercial cloud environment. Users must enter the tenant name if the environment is a non-commercial cloud environment. #2437 - Fixed issue with writing warning or error messages in Azure automation or screens with small width. #2438
- Fixed issue with
Enable-PnPTenantServicePrincipal
not respecting-Force
parameter. #2448 - Fixed issue with
Get-PnPRecycleBinItem
not working when there are large number of items in recycle bin.#2472 - Fixed Microsoft Graph based cmdlets not showing detailed error results when a call fails #2490
- Fixed
Restore-PnPRecycleBinItem
cmdlet not working with-RowLimit
parameter. #2499 - Fixed cmdlets throwing error when
-ErrorAction SilentlyContinue
was specified. #2510 - Fixed
Get-PnPAzureADAppSitePermission
not returning the roles assigned to each permission #2523 - Fixed
Add-PnPListItem
cmdlet issue when using-Batch
cmdlet, we were not able to set the SharePoint group in people or group fields. [#2879] (#2879)
- Valeras Narbutas [ValerasNarbutas]
- Russell Gove [russgove]
- Jasper Beerens
- Aleksandr Sapozhkov [shurick81]
- James Eccles [jameseccles]
- Martin Lingstuyl [martinlingstuyl]
- Antti K. Koskela [koskila]
- Dan Toft [tandddant]
- Yannick Plenevaux [ypcode]
- Rob Lempens [RobLempens]
- Marc Studer [Studermarc]
- Giacomo Pozzoni [jackpoz]
- Adam Wójcik [Adam-it]
- reusto
- Mikael Svenson [wobba]
- Josef Benda [SmarterJB]
- Alex Grover [groveale]
- Nik Charlebois [NikCharlebois]
- Milan Holemans [milanholemans]
- Miguel A. Tena [mikewaretena]
- Reshmee Auckloo [reshmee011]
- Leon Armston [LeonArmston]
- Giacomo Pozzoni [jackpoz]
- James May [fowl2]
- Jimmy Hang [JimmyHang]
- Marcus Blennegård [mblennegard]
- Arleta Wanat [PowerShellScripts]
- Koen Zomers [koenzomers]
- Added
-Wait
and-Verbose
optional paramarers toNew-PnPUPABulkImportJob
#1752 - Added
Add-PnPTeamsChannelUser
which allows members and owners to be added to private channels in Teams #1735 - Added
Channel
parameter toAdd-PnPTeamsUser
cmdlet which if specified will allow owners and members to be added to private channels in a Teams Team. #1772 - Added the ability to retrieve site collection information by its Id using
Get-PnPTenantSite -Identity <id>
#1766 - Added
ResourceBehaviorOptions
option inNew-PnPMicrosoft365Group
cmdlet to setResourceBehaviorOptions
while provisioning a Microsoft 365 Group. #1774 - Added
Add-PnPTeamsChannelUser
which allows members and owners to be added to private channels in Teams #1735 - Added
ExcludeVisualPromotedResults
parameter toGet-PnPSearchConfiguration
which excludes promoted results #1750 - Added
MediaTranscription
parameter toSet-PnPTenantSite
andSet-PnPSite
cmdlets which when enabled allows videos to have transcripts generated on demand or generated automatically in certain scenarios. - Added
-SensitivityLabels
parameter toNew-PnPTeamsTeam
andNew-PnPMicrosoft365Group
cmdlets to apply sensitivity label to the Microsoft 365 Group and Team. - Added
-SensitivityLabels
parameter toSet-PnPMicrosoft365Group
cmdlets to apply sensitivity label to the Microsoft 365 Group and Team. - Added
MediaTranscription
parameter toSet-PnPTenantSite
andSet-PnPSite
cmdlets which when enabled allows videos to have transcripts generated on demand or generated automatically in certain scenarios - Added
Get-PnPTeamsChannelFilesFolder
cmdlet to retrieve metadata for the location where files of a Teams channel are stored. #1799 - Added
Get-PnPVivaConnectionsDashboardACE
to retrieve the Adaptive Card extensions from the Viva connections dashboard page. #1805 - Added
Add-PnPVivaConnectionsDashboardACE
to add an Adaptive Card extension to the Viva connections dashboard page. #1805 - Added
Update-PnPVivaConnectionsDashboardACE
to update an Adaptive Card extension in the Viva connections dashboard page. #1805 - Added
Remove-PnPVivaConnectionsDashboardACE
to remove an Adaptive Card extension in the Viva connections dashboard page. #1805 - Added
Accept
parameter toInvoke-PnPSPRestMethod
cmdlet which if specified will pass the Accept HTTP request header. #1795 - Added
Get-PnPFlowRun
cmdlet to retrieve a specific run, or all runs from a specific Power Automate flow. #1819 - Added
Invoke-PnPGraphMethod
cmdlet to invoke generic Microsoft Graph API Methods. #1820 - Added
TimeZone
parameter toNew-PnPSite
cmdlet which allows setting of the site collection in the specified timezone. - Added
Stop-PnPFlowRun
cmdlet to stop/cancel a specific Power Automate flow run. #1838 - Added
Remove-PnPTeamsChannelUser
cmdlet to remove a user from a private channel. #1840 - Added
Get-PnPListItemPermission
cmdlet to retrieve item level permissions. #1534 - Added
Get-PnPTeamsChannelMessageReply
to retrieve all replies or a specific reply of a message in a Teams channel #1885 - Added
-Identity
parameter toGet-PnPTeamsChannelMessage
cmdlet to retrieve a specific message #1887 - Added new
PnP.PowerShell
image which also gets published to Docker Hub. #1580 - Added capability to Debug the module in Visual Studio. #1880
- Added
Set-PnPTeamsChannelUser
cmdlet to update the role of user in a private channel. #1865 - Added
Restart-PnPFlowRun
which allows for a failed Power Automate flow run to be retried #1915 - Added optional
-Connection
parameter toGet-PnPConnection
,Get-PnPContext
andSet-PnPContext
which allows for using any of these for a specific connection #1919 - Added
-IncludeDeprecated
parameter toGet-PnPTerm
cmdlet to fetch deprecated terms if specified #1903 - Added
-IncludeContentType
parameter, which if specified will retrieve content type information of the list items. #1921 - Added optional
-ValidateConnection
toConnect-PnPOnline
which will check if the site you are connecting to exists and if not, will throw an exception #1924 - Added
-Description
and-Priority
toSet-PnPPlannerTask
#1947 - Added
AllowTenantMoveWithDataMigration
toGet-PnPPlannerConfiguration
andSet-PnPPlannerConfiguration
#1934 - Added the ability to retrieve a Planner plan by only its Id using
Get-PnPPlannerPlan -Identity <id>
#1935 - Added
Add-PnPListItemAttachment
cmdlet to provide ability to upload a file as an attachment to a SharePoint list item. #1932 - Added
Remove-PnPListItemAttachment
cmdlet to provide ability to delete a list item attachment. #1932 - Added
Get-PnPListItemAttachment
cmdlet to download the attachments from a list item. #1932 - Added
-ReturnTyped
parameter toGet-PnPField
cmdlet so that it returns specific type instead of the generic field type. #1888 - Added
Add-PnPViewsFromXML
cmdlet to create one or more views in a list based on an XML string. #1963 - Added
-ExemptFromBlockDownloadOfNonViewableFiles
parameter toSet-PnPList
cmdlet to configure access capabilites for unmanaged devices at list level. #1973 - Added
-PercentComplete
,-Priority
,-StartDateTime
,-DueDateTime
and-Description
toAdd-PnPPlannerTask
#1964 - Added
Set-PnPContentType
cmdlet to update the properties of the Content Types in a list or a web. #1981 - Added
-SharingCapability
parameter to theNew-PnPTenantSite
cmdlet to update the Sharing capabilties of the newly provisioned classic site collection. #1994 - Added optional
-IncludeAllLists
toGet-PnPSiteScriptFromWeb
which will include the JSON definition of all custom lists of the current site in the output #1987 - Added
-UpdateChildren
parameter toAdd-PnPFieldToContentType
cmdlet. This allows users to skip pushing the fields to child content types. #1992 - Added optional
-SensitivityLabel
toSet-PnPSite
which allows for a Microsoft Purview sensitivitylabel to be set #2024 - Added
-UpdateChildren
parameter toAdd-PnPFieldToContentType
cmdlet. This allows users to skip pushing the fields to child content types. #1092 - Added
Get-PnPAvailableSensitivityLabel
cmdlet to retrieve Microsoft Purview sensitivity labels available on the tenant #2023 - Added
Get-PnPSiteSensitivityLabel
cmdlet to retrieve the Microsoft Purview sensitivity label set on the current site #2036 - Added
Set-PnPSiteClassification
cmdlet which allows setting a classic site classification on the current site #2036 - Added
Set-PnPSiteSensitivityLabel
cmdlet which allows setting a Microsoft Purview sensitivity label on the current site #2036 - Added
Remove-PnPSiteSensitivityLabel
cmdlet which allows removing the Microsoft Purview sensitivity label from the current site #2036 - Added
Get-PnPSensitivityLabel
cmdlet to retrieve Microsoft Purview sensitivity labels available on the tenant #2023 - Added
Get-Microsoft365GroupYammerCommunity
cmdlet to retrieve details on the Yammer Community connected to a Microsoft 365 Group #2038 - Added
Get-Microsoft365GroupTeam
cmdlet to retrieve details on the Microsoft Teams team connected to a Microsoft 365 Group #2038 - Added
Get-Microsoft365GroupEndpoints
cmdlet to retrieve details on all endpoints connected to a Microsoft 365 Group #2038 - Added
-ExcludeDeletedSites
optional parameter toGet-PnPSiteCollectionAppCatalogs
which allows for site collections with App Catalogs that are in the recycle bin to be exluded from the results #2044 - Added
-CurrentSite
optional parameter toGet-PnPSiteCollectionAppCatalogs
which allows for checking if the currently connected to site has a site collection App Catalogs provisioned on it #2044 - Added
ExternalUserExpirationRequired
andExternalUserExpireInDays
parameters toSet-PnPTenant
cmdlet to handle expiration policy for External users.
- Changed
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
to map users based on their Ids instead which should resolve some issues around user identities reporting not to exist. You can use the new-IdType
option to switch it back toPrincipalName
if needed. #1752 - Changed
Add-PnPField
now returns specific type taxonomy field type instead of the generic type. #1888 - Changed
Get-PnPOrgAssetsLibrary
to return a proper value of the organisation assets libraries. #1889 - Bumped .NET Framework version to 4.6.2 as the 4.6.1 is not supported anymore. #1856
- Changed
Add-PnPDataRowsToSiteTemplate
, it will now export a datetime field value as UTC string. #1900 - The cmdlets
Remove-PnPFile
,Remove-PnPFolder
,Move-PnPListItemToRecycleBin
,Remove-PnPList
,Remove-PnPListItem
andRemove-PnPPage
will now return the corresponding recycle bin item if they get deleted to the recycle bin. Before they would not return anything. #1783 - Cmdlets backed by a Microsoft Graph call will now return detailed information when the Graph call fails #1923
- Changed
Get-PnPPlannerBucket
to return the buckets in the correct (reversed) order as you see them through the web interface #1922 - Changed
Connect-PnPOnline -Interactive
andConnect-PnPOnline -DeviceLogin
to no longer suppress errors which should allow for certificate logins to be used. #1933 Set-PnPTeamsChannel
now uses the Graph v1 endpoint, previously it used the beta endpoint. #1938- Service Health cmdlets have been improved and are now consistent with other cmdlets to handle pagination #1938
- Changed that almost every cmdlet now supports passing in a specific connection using
-Connection
. If omitted, the default connection will be used. #1949, #2011, #1958 - Changed connecting with
Connect-PnPOnline -Credentials
now throwing a clear exception when making a typo in the hostname instead of getting stuck #686 - Renamed
Get-PnPSiteClassification
toGet-PnPAvailableSiteClassification
to fall in line withGet-PnPAvailableSensitivityLabel
. Old name will stay as an alias for backwards compatibility for now, but will be removed in a future version. #2036 - Renamed
Add-PnPSiteClassification
toAdd-PnPAvailableSiteClassification
to fall in line withGet-PnPAvailableSensitivityLabel
. Old name will stay as an alias for backwards compatibility for now, but will be removed in a future version. #2036 - Renamed
Update-PnPSiteClassification
toUpdate-PnPAvailableSiteClassification
to fall in line withGet-PnPAvailableSensitivityLabel
. Old name will stay as an alias for backwards compatibility for now, but will be removed in a future version. #2036 - Renamed
Remove-PnPSiteClassification
toRemove-PnPAvailableSiteClassification
to fall in line withGet-PnPAvailableSensitivityLabel
. Old name will stay as an alias for backwards compatibility for now, but will be removed in a future version. #2036 - Changed
Get-PnPHubSiteChild
to have its-Identity
parameter become optional. If not provided, the currently connected to site will be used. #2033 - Changed
Get-PnPSiteCollectionAppCatalogs
(plural) toGet-PnPSiteCollectionAppCatalog
(singular) to follow the naming convention #2044
- Fixed
Get-PnPTenantSite
cmdlet so that it will return data even if the template name is specified in a different case. #1773 - Fixed
Add-PnPDocumentSet
cmdlet so that it will support Document Set Content Type Id specified at the web level. #1796 - Fixed
Get-PnPGroup
,Get-PnPGroupPermissions
andSet-PnPGroupPermissions
cmdlets by making them more consistent. They will also throw error if a group is not found. #1808 - Fixed
Get-PnPFile
issue with every 3rd file download in PS 5. - Fixed
Add-PnPContentTypesFromContentTypeHub
, ifSite
parameter is specified, it will be used now to sync content types from content type hub site. - Fixed
Get-PnPTeamsTeam
, the cmdlet now also returns additional properties likeWebUrl, CreatedDateTime, InternalId
#1825 - Fixed
Add/Set-PnPListItem
, the cmdlet now works correctly with-Batch
parameter for field types other than string. #1890 - Fixed
Get-PnPTeamsTeam
, the cmdlet now also returns additional properties likeWebUrl, CreatedDateTime, InternalId
. #1825 - Fixed
Set-PnPListPermission
, it will now throw error if the list does not exist. #1891 - Fixed
Invoke-PnPSPRestMethod
invalid parsing for SharePoint number columns. #1877 - Fixed issue with
Add/Set-PnPListItem
not throwing correct exception for invalid taxonomy values. #1870 - Fixed
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
throwing an "Object reference not set to an instance of an object" exception when providing an empty users collection or incorrect user mapping #1896 - Fixed
Connect-PnPOnline -ReturnConnection
also setting the current connection instead of just the returned connection #1919 - Fixed
Disconnect-PnPOnline -Connection
also disconnecting other connections next to the provided connection #1919 - Fixed
Set-PnPContext
not properly applying the provided context #1919 - Fixed Graph endpoints for non-commercial clouds for Managed Identity and Teams cmdlets #1944
- Fixed
Add-PnPTeamsUser
, the parameter-Channel
is now not required. #1953 - Fixed
Get-PnPPlannerTask
throwing an object reference exception for completed tasks #1956 - Fixed
Get-PnPUserOneDriveQuota
returning the maximum possible quota instead of the actual configured quota on a OneDrive for Business site #1902 - Fixed
Get-PnPFile
throwing an exception when trying to download a file containing the plus character #1990 - Fixed
Get-PnPTeamsChannel
not working correctly with PowerShell select. #1988 - Fixed
Update-PnPSiteClassification
, it was ignoring theSettings
parameter. It will now be processed. #1989 - Fixed
Register-PnPAzureADApp
issue with app creation after the connection related changes. #1993 - Fixed
Get-PnPFileVersion
not able to correctly use piping on the returned object. #1997 - Fixed
Add-PnPListItem
not showing field name when it has an improper value assigned to it #2002 - Fixed
Update-PnPSiteClassification
not allowing the-UsageGuidelinesUrl
to be set without also setting-DefaultClassification
#2036 - Fixed the browser consent dialog throwing an exception when trying to close it #2037
- Fixed
Get-PnPHubSiteChild
throwing an exception when passing in a URL that is actually not a hub site #2033 - Fixed
Add-PnPListItem
not showing field name when it has an improper value assigned to it #2002 - Fixed connecting using
Connect-PnPOnline -Interactive -ClientId
not working well when already having an App-Only connection using the same ClientId #2035 - Fixed
Get-PnPSiteCollectionAppCatalog
not returning updated site collection URLs if they had been renamed #2044 - Fixed cmdlets inheriting from PnPAdminCmdlet not working well on vanity domain SharePoint Online tenants #2052
- Fixed
Copy-PnPList
throwing an unauthorized exception when using it with a non SharePoint Online administrator user #2054
- Removed
Get-PnPAvailableClientSideComponents
. UseGet-PnPPageComponent -Page -ListAvailable
instead. #1833 - Removed
NextLink
property fromGet-PnPAzureADUser
cmdlet, as it was causing confusion. #1930 - Deprecated the
-Connection
parameter ofDisconnect-PnPOnline
cmdlet, as it was technically not capable of clearing a connection reference anyway #1949
- Ali Robertson [alirobe]
- Leif Frederiksen [Leif-Frederiksen]
- Emily Mancini [eemancini]
- Jim Duncan [sparkitect]
- Arleta Wanat [PowershellScripts]
- Yuriy Samorodov [YuriySamorodov]
- Arleta Wanat [PowershellScripts]
- Marc D Anderson [sympmarc]
- dc366 [dc366]
- Bart-Jan Dekker [bjdekker]
- Aleksandr Sapozhkov [shurick81]
- [spg-iwilson]
- Jago Pauwels [jagopauwels]
- [4ndri]
- Martin Lingstuyl [martinlingstuyl]
- James May [fowl2]
- Milan Holemans [milanholemans]
- Arleta Wanat [PowershellScripts]
- Koen Zomers [koenzomers]
- Mikael Svenson [wobba]
- Gautam Sheth [gautamdsheth]
- Added additional properties to the users returned by
Get-PnPMicrosoft365GroupMember
such asuserType
#1474 - Added
Update-PnPTeamsUser
cmdlet to change the role of a user in an existing Teams team #1499 - Added
Get\New\Remove\Set-PnPMicrosoft365GroupSettings
cmdlets to interact with Microsoft 365 Group settings. - Added
Get-PnPMicrosoft365GroupSettingTemplates
cmdlet to retrieve system wide Microsoft 365 Group setting templates. - Added
Add\Remove\Invoke\Get-PnPListDesign
cmdlets to add a list design, remove a list design and apply the list design. - Added
DisablePersonalListCreation
parameter toSet-PnPTenant
cmdlet to provide ability to disable personal lists creation #1545 - Added
DisabledModernListTemplateIds
andEnableModernListTemplateIds
parameters toSet-PnPTenant
cmdlet to provide ability to disable or enable modern lists with specific Ids #1545 - Added
DisablePersonalListCreation
andDisabledModernListTemplateIds
values to be displayed when usingGet-PnPTenant
cmdlet #1545 - Added
Add\Remove\Set-PnPAdaptiveScopeProperty
cmdlets to add/update/remove a property bag value while dealing with the noscript toggling in one cmdlet #1556 - Added support to add multiple owners and members in
New-PnPTeamsTeam
cmdlet #1241 - Added the ability to set the title of a new modern page in SharePoint Online using
Add-PnPPage
to be different from its filename by using-Title
- Added optional
-UseBeta
parameter toGet-PnPAzureADUser
to force it to use the Microsoft Graph beta endpoint. This can be necessary when i.e. using-Select "PreferredDataLocation"
to query for users with a specific multi geo location as this property is only available through the beta endpoint. #1559 - Added
-Content
option toAdd-PnPFile
which allows creating a new file on SharePoint Online and directly providing its textual content, i.e. to upload a log file of the execution #1559 - Added
Get-PnPTeamsPrimaryChannel
to get the primary Teams channel, general, of a Team #1572 - Added
IgnoreDefaultProperties
parameter toGet-PnPAzureADUser
to allow for the default properties not to be retrieved but instead just the ones you specify usingSelect
#1575 - Added
Publish\Unpublish-PnPContentType
to allow for content types to be published or unpublished on hub sites #1597 - Added
Get-PnPContentTypePublishingStatus
to get te current publication state of a content type in the content type hub site #1597 - Added ability to pipe the output of
Get-PnPTenantDeletedSite
to eitherRestore-PnPTenantDeletedSite
orRemove-PnPTenantDeletedSite
#1596 - Added
Rename-PnPTenantSite
to rename a SharePoint Online site URL #1606 - Added optional
-Wait
option toSync-PnPSharePointUserProfilesFromAzureActiveDirectory
to allow for the script to wait until the user profile sync has completed - Added optional
-Verbose
option toSync-PnPSharePointUserProfilesFromAzureActiveDirectory
to allow for seeing the progress of the synchronization process - Added
Copy-PnPTeamsTeam
which allows an existing Teams team to be copied into a new Team #1624 - Added
Set-PnPMessageCenterAnnouncementAsRead
which allows setting one or more message center announcements as read for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsUnread
which allows setting one or more message center announcements as unread for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsArchived
which allows setting one or more message center announcements as archived for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsNotArchived
which allows setting one or more message center announcements as not archived for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsFavorite
which allows setting one or more message center announcements as favorite for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsNotFavorite
which allows setting one or more message center announcements as not favorite for the current user #1151 - Added
-AsMemoryStream
option toGet-PnPFile
to allow for downloading of a file from SharePoint Online in memory for further processing #1638 - Added
-Stream
option toRead-PnPSiteTemplate
to allow for processing on a PnP Provisioning Template coming from memory #1638 - Added
New-PnPAzureADUserTemporaryAccessPass
which allows creation of a Temporary Access Pass for a specific user in Azure Active Directory - Added
-Force
option toSet-PnPTenant
to allow skipping the confirmation question for certain other parameters likeSignInAccelerationDomain,EnableGuestSignInAcceleration,BccExternalSharingInvitations,OrphanedPersonalSitesRetentionPeriod,OneDriveForGuestsEnabled,AllowDownloadingNonWebViewableFiles
. - Added
Get-PnPCompatibleHubContentTypes
which allows the list of content types present in the content type hub site that can be added to the root web or a list on a target site to be returned #1678
- Improved
Add-PnPTeamsUser
cmdlet. The cmdlet executes faster and we can now add users in batches of 200. #1548 - The
Move\Remove\Rename-PnPFolder
cmdlets now support pipebinds. - Changed
Add-PnPDataRowsToSiteTemplate
, it will return a warning if user(s) are not found during list item extraction. Earlier it used to throw error and stop extraction of list items. - Changed the return type of
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
to return our own entity instead of the one returned by CSOM #1559 - Changed running
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
with-WhatIf
to also provide a return entity providing the path to where the JSON file has been uploaded to #1559 - Disabling telemetry collection now requires either setting the environment variable or creating the telemetry file (documentation) #1504
- Changed
Get-PnPAzureADUser
to now return all the users in Azure Active Directory by default, instead of only the first 999, unless you specified-EndIndex:$null
#1565 - Changed
Get-PnPTenantDeletedSite -Identity
no longer returning an unknown exception when no site collection with the provided Url exists in the tenant recycle bin but instead returning no output to align with other cmdlets #1596 - Changed
Connect-PnPOnline -UseWebLogin
to no longer suppress errors which should allow for certificate logins to be used #1706 - The cmdlet
New-PnPTeamsTeam
no longer supports adding members or owners through their e-mail addresses, if they differ from their UPNs. The User Principal Names must be used instead #1241 - Improved
New-PnPUPABulkImportJob
by optimizing it and also adding support forWhatIf
paramater. #2040
- Fixed
Set-PnPSite
not working withDisableCompanyWideSharingLinks
parameter. - Fixed
Get-PnPListPermissions
returning wrong information in case of broken inheritance. - Fixed
Submit-PnPSearchQuery -Query "somequery"
yielding an error when no results #1520 - Fixed
Set-PnPTenantSite
not setting SharingCapability property correctly. - Fixed
Get-PnPMicrosoft365Group
retrieving non-Unified groups when parameters are not specified. - Fixed
Get-PnPRecycleBinListItem
not retrieving second stage items if onlyRowLimit
is specified. - Fixed
Add-PnPDataRowsToSiteTemplate
issue with PnP templates when it contained multilingual references. - Fixed
Copy-PnPItemProxy
is not recognized as the name of a cmdlet, function, script file, or operable program error with the cmdlet. - Fixed
Add-PnPMicrosoft365GroupMember
,Remove-PnPMicrosoft365GroupMember
,Add-PnPTeamsUser
andRemove-PnPTeamsUser
not being able to handle guest accounts containing # characters #1523 - Fixed not being able to pipe
Get-PnPHubSite
toGet-PnPHubSiteChild
to retrieve all site collections which are associated to any hub site #1571 - Fixed
Add-PnPFileToSiteTemplate
when used alongsideGet-PnPFile
where the FileStream tried to overwrite an already open filestream when a file was located in the same directory as the template file itself. - Fixed
Get-PnPMessageCenterAnnouncement
returning an error #1607 - Fixed
New-PnPTeamsTeam
issue when adding Owners and Members. - Fixed running an admin cmdlet not always returning to the same context as before running the cmdlet #1611
- Fixed an issue where
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
would not correctly sync characters which are not part of the Western European encoding (iso-8859-1) - Fixed an issue where
Sync-PnPSharePointUserProfilesFromAzureActiveDirectory
would not correctly sync user profiles if a value contained a backslash () #1711
- Removed
Add-PnPClientSidePageSection
, useAdd-PnPPageSection
instead #1563 - Removed
Add-PnPClientSideWebPart
, useAdd-PnPPageWebPart
instead #1563 - Removed
Add-PnPClientSideText
, useAdd-PnPPageTextPart
instead #1563 - Removed
Get-PnPAADUser
, useGet-PnPAzureADUser
instead #1568 - Removed
Get-PnPOffice365CurrentServiceStatus
,Get-PnPOffice365HistoricalServiceStatus
,Get-PnPOffice365ServiceMessage
andGet-PnPOffice365Services
as Microsoft has removed the underlying Office Management APIs. UseGet-PnPMessageCenterAnnouncent
,Get-PnPServiceCurrentHealth
andGet-PnPServiceHealthIssue
instead. #1608
- Michael Vasiloff [mikevasiloff]
- [svermaak]
- Russell Gove [russgove]
- Mike Park [mikeparkie]
- Jerker Vallbo [jerval53]
- Gaurav Mahajan [mahajangaurav]
- Dennis [expiscornovus]
- Jasey Waegebaert [Jwaegebaert]
- Swapnil Shrivastava [swapnil1993]
- Hugo Bernier [hugoabernier]
- brenle
- Johan Brännmar [brannmar]
- Lschockaert
- Leon Armston [LeonArmston]
- Reshmee Auckloo [reshmee011]
- Arleta Wanat [PowershellScripts]
- Brendon Lee [brenle]
- Guillaume Bordier [gbordier]
- [reusto]
- Reshmee Auckloo [reshmee011]
- Veronique Lengelle [veronicageek]
- Gautam Sheth [gautamdsheth]
- Koen Zomers [koenzomers]
- 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 Microsoft 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. - Added
IsFluidEnabled
state to be returned withGet-PnPTenant
cmdlet. - Added
-IsFluidEnabled
toSet-PnPTenant
cmdlet to enable/disable users from using Fluid components. - Added
Add\Get\Remove-PnPListItemComment
cmdlets to deal with list item comments. Using these cmdlets, you will now be able to add, retrieve and delete list item comments. #1462 - Added
-ResourceTypeName
and-ResourceUrl
parameters toGet-PnPAccessToken
to fetch access token of specified resource. #1451 - Added
-BookmarkStatus
parameter toGet-PnPSearchConfiguration
cmdlet to call REST endpoint to fetch promoted results defined via query rules and output them in Bookmark supported CSV format.
- 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. - Improved documentation of
Add-PnPField
, reflects the missing-AddToAllContentTypes
parameter. - Improved documentation of
Get-PnPTaxonomyItem
with addition of new example and removing obsolete parameters. - Improved documentation of
Get-PnPTerm
, fixed typos. - Improved
Add-PnPHubToHubAssociation
. It will now throw error if both, source and destination, sites are not Hub sites, currently it fails silently without any information to the user. #1390
- 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 - Fixed
Get-PnPTeamsTab
issue with missing TeamsApp object values. It will now populate TeamsApp object with Id, DisplayName, ExternalId and DistributionMethod properties if available. #1459
- 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
- Mikael Svenson [wobba]
- 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]
- 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 - Changed that
Get-PnPUnifiedAuditLog
returns the error being returned by the Office Management API service, in case something goes wrong #1631
- 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"
- Fixed an issue where running
Get-PnPSiteDesign -Identity
passing in an identifier that did not exist would return an exception #1622
- 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]