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
-NewFileNameparameter toConvert-PnPFilecmdlet to choose custom output file name. - Added
-Userparameter toGet-PnPTeamsTeamcmdlet to allow fetching list of teams a user has access to. - Added
Get-PnPBrandCenterFontcmdlet to retrieve the available fonts in the Brand Center #4970 - Added
Add-PnPBrandCenterFontPackagecmdlet to allow creating a font package in the Brand Center #4970 - Added support for
-FederatedIdentityinConnect-PnPOnlineto support Federated Identity. - Added support for SSO in WSL (Windows Subsystem for Linux) and Linux distributions. You can now use
Connect-PnPOnlinewith-OSLoginwhich helps with more secure auth such as FIDO, Conditional Access policies etc.
- Improved
Get-PnPTermcmdlet to show a better error message. #4933 - PnP PowerShell now requires PowerShell 7.4.0 or newer
- Improved
Connect-PnPOnlinewith-DeviceLoginflow, now we don't require users to specify-Tenantparameter, it will be automatically added if not specified.
- Fix
Set-PnPView -Aggregationsparameter not showing aggregations in SharePoint online. #4868 - Fix
-CreateDriveparameter not working correctly inConnect-PnPOnline. #4869 - Fix
Get/Remove/Restore-PnPFileVersioncmdlets to properly handle file names which have encoded values. - Fixed Teams related cmdlets to properly handle quotes in the display name of Teams team.
- Fix
Set-PnPListItemcmdlet to properly handle multi-choice fields when used with batch parameter. - Fix
Get-PnPCopilotAgentcmdlet to properly handle pagination in large lists. - Fix
Send-PnPMailcmdlet to send mail via Graph API and SPO. It was facing parameter set issue. #4922 - Fix
Unregister-PnPHubSitecmdlet to properly handle null reference error. #4944 - Fix
Add/Publish/Unpublish/Remove-PnPAppcmdlets to properly handle the issue in no-script sites. - Fix
Get-PnPHubSiteChildcmdlet to handle vanity domains. #4965 - Fix
Connect-PnPOnlinenot working correctly with-DeviceLoginin Azure Cloud Shell.
- Koen Zomers [koenzomers]
- Janne Holm [jhholm]
- Marc D Anderson [sympmarc]
- [abwlodar]
- Reshmee Auckloo [reshmee011]
- [wuxiaojun514]
- [pajeffery]
- Giacomo Pozzoni [jackpoz]
- [davidschenkUPG]
- Fixed issues with cmdlets not being able to read embedded resources
- Erwin van Hunen [erwinvanhunen]
- Bert Jansen [jansenbe]
- Added
-PersistLoginonConnect-PnPOnlinewhich will utilize a persist cache containing your access token. The cache is encrypted and stored in a subfolder in your $HOME folder on Windows. On MacOS the cache is stored in the encrypted KeyChain. You only have to specify-PersistLoginonce when doing a Connect-PnPOnline, after that the cache entry will be used. The cache is persisted between PowerShell sesions and system reboots. To clear an entry from the cache useDisconnect-PnPOnline -ClearPersistedLogin. - 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-PnPContentTypeetc.) and Page related (Get-PnPPageetc.) 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-PnPDocumentIDcmdlet to request resetting the document ID for a document #4238 - Added
Reset-PnPDocumentIDcmdlet to request resetting the document IDs for all documents in a library using a specific content type #4755 - Added
Get-PnPPriviledgedIdentityManagementEligibleAssignment,Get-PnPPriviledgedIdentityManagementRoleandEnable-PnPPriviledgedIdentityManagementcmdlets to allow scripting of enabling Privileged Identity Management roles for a user #4039 - Added
Add-PnPTenantRestrictedSearchAllowedListwhich allows setting up a list of allowed URLs for Restricted SharePoint Search #3993 - Added optional
-IsCopilotSearchabletoAdd-PnPOrgAssetsLibrarywhich allows for an organizational assets library to be accessible to Microsoft 365 CoPilot for searching corporate images #4254 - Added
Set-PnPOrgAssetsLibrarycmdlet which allows for updating the settings of an existing organizational assets library #4254 - Added additional Graph permissions to the GraphPermissions parameter set. #4283
- Added
-SignInAudienceparameter toRegister-PnPEntraIDAppandRegister-PnPEntraIDAppForInteractiveLoginwhich allows you to make the EntraID app support creation of multi-tenant apps. #4289 - Added
-OutputInstanceparameter toExport-PnPPagecmdlet to allow export of the page as in-memory template. #4323 - Added
-X509KeyStorageFlagsparameter toConnect-PnPOnlinecmdlet which allows setting of how private keys are to be imported. #4324 - Added
-RestrictContentOrgWideSearchparameter toSet-PnPSitewhich allows for applying the Restricted Content Discoverability (RCD) setting to a site #4335 - Added
-LaunchBrowserparameter toRegister-PnPEntraIDAppForInteractiveLoginandRegister-PnPEntraIDAppcmdlets to open browser and continue app registration in the browser. #4347 & #4348 - Added
Get-PnPSearchExternalItemwhich allows retrieving the current external items for a specific external connection #4375 - Added
Remove-PnPSearchExternalItemwhich allows for removal of an external item from the Microsoft Search index #4378 - Added
-Scopesparameter toGet-PnPAccessTokencmdlet to retrieve access token with specific scopes. #4398 - Added
-Iconand-Colorparameters toSet-PnPListcmdlet. #4409 - Added
Remove-PnPTenantRestrictedSearchAllowedListcmdlet to removes site URLs from the allowed list when Restricted SharePoint Search is enabled. #4399 - Added
Get-PnPDeletedFlowcmdlet to retrieve a list of flows which are soft deleted. #4396 - Added
Restore-PnPFlowcmdlet which allows for undeleting a flow within 21 days of deletion. #4415 - Added
-ExcludeDeprecatedtoExport-PnpTaxonomywhich allows for deprecated terms to be excluded from the export #4053 - Added
-HidePeoplePreviewingFilestoSet-PnPSitewhich allows for hiding the people previewing files feature on a site #4416 - Added
-AllowWebPropertyBagUpdateWhenDenyAddAndCustomizePagesIsEnabledtoSet-PnPTenantwhich allows for updating of web property bag when DenyAddAndCustomizePages is enabled #4508 - Added
SiteIdto the output ofGet-PnPTenantSite#4527 - Added
Add-PnPFileSensitivityLabelwhich allows for assigning sensitivity labels to SharePoint files #4538 Add-PnPApp,Publish-PnPApp,Remove-PnPAppandUnpublish-PnPAppnow have-Forceparameter to change the site to allow scripts to be temporarily enabled. #4554- Added
-CanSyncHubSitePermissionsparameter toSet-PnPSitecmdlet to set value of allowing syncing hub site permissions to this associated site. #4555 - Added
Get-PnPProfileCardProperty,New-PnPProfileCardPropertyandRemove-PnPProfileCardPropertycmdlets to manage showing additional properties on the Microsoft 365 user profile #4548 - Added
Get-PnPCopilotAdminLimitedModeandSet-PnPCopilotAdminLimitedModewhich allows for managing the setting that controls whether Microsoft 365 Copilot in Teams Meetings users can receive responses to sentiment-related prompts #4562 - Added
-Contributorsand-Managersparameters toNew-PnPTermGroupandSet-PnPTermGroupcmdlets. - Added
-Filesparameter forSend-PnPMailcmdlet to allow files to be downloaded from SharePoint and then sent as attachments. - Added
-Forceparameter toSet-PnPPropertyBagValuecmdlet to toggle NoScript status of the site. - Added
-Batchparameter toInvoke-PnPGraphMethodcmdlet to allow adding request in a batch. - Added
-Listparameter toGet-PnPFolderItem,Get-PnPFileInFolderandGet-PnPFolderInFolderwhich allows them to work with a document library containing more than 5,000 items #4611 - Added
Start-PnPTraceLog,Stop-PnPTraceLogandGet-PnPTraceLogcmdlets to handle tracelogging. RemovedSet-PnPTraceLogcmdlet. - Added
-ListPermissionScopesparameter onGet-PnPAccessTokencmdlet to list the current permission scopes on the current access token. - Added
Get-PnPCopilotAgentcmdlet that returns the Microsoft Copilot Agents in a site collection. - Added
Get-PnPFileRetentionLabelcmdlet to fetch the file retention labels. #4603 - Added
Get/Set/Remove-PnPUserProfilePhotocmdlets to download, upload or remove the profile photo of the specified user. - Added
New/Get/Remove/Update-PnPTodoListcmdlets to manage Todo lists. - Added
Set-PnPFileRetentionLabelwhich allows setting a retention label on a file in SharePoint or locking/unlocking it. #4457 - Added
Get-PnPFileCheckedOutcmdlet to retrieve all files that are currently checked out in a library #4682 - Added
Get-PnPTenantPronounsSettingandSet-PnPTenantPronounsSettingcmdlets to manage the availability of using pronouns in the organization #4660 - Added
HidePeopleWhoHaveListsOpenparameter toSet-PnPSitecmdlet to hide people who simultaneously have lists open #4699 - Added
-WhoCanShareAllowListInTenant,-LegacyBrowserAuthProtocolsEnabled,-EnableDiscoverableByOrganizationForVideos,-RestrictedAccessControlforSitesErrorHelpLink,-Workflow2010Disabled,-AllowSharingOutsideRestrictedAccessControlGroups,-HideSyncButtonOnDocLib,-HideSyncButtonOnODB,-StreamLaunchConfig,-EnableMediaReactions,-ContentSecurityPolicyEnforcementand-DisableSpacesActivationtoSet-PnPTenant#4681 - Added
Start-PnPEnterpriseAppInsightsReportandGet-PnPEnterpriseAppInsightsReportwhich allow working with App Insights repors #4713 - Added
Set-PnPSiteDocumentIdPrefixwhich allows changing of the document id prefix on a site collection #4765 - Added
Get-PnPMicrosoft365Roadmapwhich allows retrieval of the Microsoft 365 Roadmap items #4764 - Added
-Nameparameter toAdd-PnPApplicationCustomizercmdlet to allow for specifying the name of the application customizer #4767 - Added
Get-PnPTraceLogcmdlet which allows reading from the detailed in memory logs of the PnP PowerShell cmdlet execution #4794 - Added
-Transitiveparameter toGet-PnPAzureADGroupMembercmdlet to allow members of groups inside groups to be retrieved #4799 - Added the ability to
Get-PnPPageto return all site pages in the site by omitting the-Identityparameter #4805 - Added
Copy-PnPPage,Move-PnPPageandGet-PnPPageCopyProgresscmdlets to allow for copying and moving site pages between sites #4806 - Added
Get-PnPBrandCenterConfigto retrieve the configuration of the Brand Center on the tenant #4830 - Added
Get-PnPBrandCenterFontPackageto retrieve the available font packages from the various Brand Centers #4830 - Added
Use-PnPBrandCenterFontPackageto apply the specified font package from the Brand Center to the current site #4830 - Added
Add-PnPBrandCenterFontto upload a font to the tenant Brand Center #4830 - Added
-Streamparameter toInvoke-PnPSiteTemplatewhich allows an in memory .pnp site template to be applied to a site #4845
- PnP PowerShell is now .NET 8.0 based, and requires PowerShell 7.4.6 or newer
-Interactivelogin is now the default.- The Popup based authentication for Interactive Login has been removed and replaced by a browser flow
-LaunchBrowserhas been removed for interactive login-LaunchBrowserfor Device Login authentication flows has been renamed toOpenBrowser- Rate limiting is now enabled by default for all cmdlets which are being executed under application permissions.
- Changed the UI experience when logging in with Interactive login and specifying
-LaunchBrowseronConnect-PnPOnline. This experience is the default on MacOS. - 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-PnPAccessTokenandGet-PnPGraphAccessTokenoutput type is changed toMicrosoft.IdentityModel.JsonWebTokens.JsonWebToken. Earlier they returnedSystem.IdentityModel.Tokens.Jwt.New-PnPContainerTypewill 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-PnPLabelcmdlet toGet-PnPRetentionLabel. #4387 Add-PnPNavigationNodecmdlet updated to now support-OpenInNewTabparameter for different types of navigation. #3969Remove-PnPFile,Rename-PnPFile,Set-PnPFileCheckedIn,Set-PnPFileCheckedOut&Undo-PnPFileCheckedOutcmdlets now use PnP Core SDK behind the scenes. #4389Set-PnPFileCheckedIncmdlet now expectsCheckInTypeto be of typePnP.Core.Model.SharePoint.CheckinTypeinstead of the earlier one based on CSOM. #4389Disable-PnPFeatureandEnable-PnPFeaturenow use PnP Core SDK for processing requests. #4390Remove-PnPContentTypeandRemove-PnPContentTypeFromListnow use PnP Core SDK for processing requests. #4390Clear-PnPRecycleBinItem,Move-PnPRecycleBinItemandRestore-PnPRecycleBinItemcmdlets now use PnP Core SDK for processing requests. #4393Get-PnPSearchCrawlLogcmdlet 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
-ConnectiononConnect-PnPOnline, the clientid from the passed in connection will be used for the new connection #4425 - Removed
-Confirmparameter fromRemove-PnPUserandRemove-PnPAvailableSiteClassificationcmdlets. Use-Forceinstead. #4455 Get-PnPFilenow also supports passing in a full SharePoint Online URL #4480Add-PnPApp,Publish-PnPApp,Remove-PnPAppandUnpublish-PnPAppnow support disabling script settings if tenant app catalog is a no-script site.Send-PnPMailnow throws a warning about the retirement of the SharePoint SendEmail API.Get-PnPCustomActionnow supports a completer for-Identityand uses the PnP Core SDK to return custom actions.Set-PnPPropertyBagValueandRemove-PnPPropertyBagValuenow toggle the NoScript status of the site to allow setting/removing property bag values, but only if the tenant wideAllowWebPropertyBagUpdateWhenDenyAddAndCustomizePagesIsEnabledis not enabled #4680Get-PnPTenantnow uses nullable types for the properties that can return null if the property is not set or could not be retrieved. Beware that the propertyPublicCdnOriginshas been renamed toPublicCdnOriginParsed. All other property names will remain the same. #4722- Removed
New-PnPMicrosoft365Groupsetting the group visibility options twice when providing-HideFromAddressListsand/or-HideFromOutlookClientsand adding logging around trying to set the group visibility #4791 - Visual Studio Code launch profiles have been cleaned up and restructured #4808
- The cmdlet
Get-PnPContainernow has a new optional parameter-ArchiveStatuswhich allows filtering SharePoint Online Embedded containers by archival status #4821
- Fixed issue with
Set-PnPSearchExternalSchemacmdlet when used with the-Waitparameter throwing a warning #4253 - Fix
Get-PnPSearchExternalSchemanot returning the label properly for a property linked to 'iconUrl' #4245 - Fix
Restore-PnPListItemVersioncmdlet to also restore fields with TaxonomyFieldType. #4262 - Fix
Set-PnPMicrosoft365GroupSettingcmdlet to not throw runtime error. #4274 - Fix
New-PnPMicrosoft365GroupSettingcmdlet to not throw runtime error. #4277 - Fix
Get-PnPSiteTemplate -PersistMultiLanguageResourcesnot working correctly for xml file types. #4326 - Fix
Add-PnPDataRowsToSiteTemplatesetting keyColumn to null when not passed. #4325 - Fix
Connect-PnPOnlinenot working correctly when-DeviceLoginand-LaunchBrowserboth are specified. It used to open it in a popup. Now it correctly launches the browser. #4325 Export-PnPUserInfo,Export-PnPUserProfileandRemove-PnPUserProfilecmdlets now work properly with proper-Connectionparameter if specified. #4389- Fixed
Get-PnPAzureADAppSitePermission,Grant-PnPAzureADAppSitePermissionandRevoke-PnPAzureADAppSitePermissioncmdlets throwing an error when the site URL is not specified and the app registration used only having Graph permissions #4421 - Fixed
Get-PnPTermcmdlet not working correctly when-ParentTermparameter 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
-ConsistencyLevelEventualflag onInvoke-PnPGraphMethodto work correctly. #4523 - Fixed
Get-PnPServiceHealthIssuereturning an error when certain service states were active #4530 - Fixed
Add-PnPFileSensitivityLabelcmdlet to allow empty string value to reset file sensitivity label. - Fix
Connect-PnPOnlinecmdlet not working with On Prem related cmdlets. #4622 - Fix
Get\Invoke-PnPSiteTemplatecmdlet not working in vanity domains. #4630 - Fixed passing a
Get-PnPRecycleBinItemresult or a GUID toRestore-PnPRecycleBinItemnot working correctly. #4667 - Fixed
Get-PnPChangeLognot returning the changelog #4707 - Fixed
-Descriptionand-Sequencenot being applied when providing these throughAdd-PnPApplicationCustomizer#4767 - Fixed
-RetryCountparameter being ignored withSubmit-PnPSearchQuery#4784 - Fixed
Get-PnPSiteScriptFromWebthrowing a file not found error when providing a web URL through-Urlthat differed from the connected to URL #4785 - Fixed
Set-PnPListItem -Values @{}passing in a taxonomy field with a guid typed value throwing an error #4811 - Fixed
Get-PnPFolderthrowing an exception when a lot of files and folders are present #4819 - Fixed
Set-PnPTerm -Name "New Name" -Lcid 1043changing the default name of the taxonomy item, ignoring the provided language id and changing the name for the default language instead. #4824 - Fixed
Get-PnPPropertyBagnot returning updated values after running it for the first time #4823 - Fixed local build of PnP PowerShell using a local Core SDK build not being debuggable and optimized PnP PowerShell debug profiles for Visual Studio Code #4838
- Fixed Batched requests using a DELETE or MERGE throwing an exception because of a double IF-MATCH header Core #1635
- Removed
-LaunchBrowser,-NoPopupand credential based auth onRegister-PnPEntraIDAppandRegister-PnPEntraIDAppForInteractiveLogincmdlets. The default auth method is now Interactive. - Removed
-LaunchBrowseroption onConnect-PnPOnlinefor interactive logins and device logins as it is default now and the popup based authentication window has been removed. - Removed
-UseWebLoginoption onConnect-PnPOnline. It used a very old, questionable approach to authentication. Use-Interactiveor if you require an ACS connection-ClientIdand-ClientSecret - Removed
Invoke-PnPTransformationcmdlet as it was never supported. - Removed
Publish-PnPCompanyAppcmdlet as it was not supported anymore. #4387 - Removed
-UserVoiceForFeedbackEnabledparameter fromSet-PnPTenantcmdlet as it was obsolete. #4387 - Removed
Set-PnPLabelandReset-PnPLabelaliases. You need to useSet-PnPRetentionLabelandReset-PnPRetentionLabelrespectively. #4387 - Removed
Get-PnPPowerPlatformConnectoralias. You need to useGet-PnPPowerPlatformCustomConnector. #4387 - Removed
-IsFavoriteByDefaultparameter fromAdd-PnPTeamsChannelcmdlet. It was obsolete and not supported by Graph API. #4387 - Removed
Get-PnPAppAuthAccessToken,Remove-PnPGraphAccessTokenandRequest-PnPAccessTokencmdlets. UseGet-PnPAccessTokeninstead. #4398 - Removed support for sending mail via SMTP in
Send-PnPMail. It's usage is not recommended by .NET due to its lack of support for modern protocols. - Removed
-Titleand-Headerparameters fromRemove-PnPNavigationNode. They were marked obsolete. - Removed
-FileUrlparameter fromGet-PnPSharingLink. It was marked obsolete. - Removed
-WebLoginparameter fromConnect-PnPOnlinecmdlet. It was marked obsolete and was a security risk. - Removed
Set-PnPMinimalDownloadStrategyas it's not applicable anymore to SharePoint Online. If you need the functionality you can always turn on the feature withEnable-PnPFeature -Id 87294c72-f260-42f3-a41b-981a2ffce37aor turn it off withDisable-PnPFeature -Id 87294c72-f260-42f3-a41b-981a2ffce37a - Removed
-SPOManagementShellparameter fromConnect-PnPOnlinecmdlet. It reduces the risk of changes coming from Microsoft. Use your own Entra ID app instead. - Removed
Set-PnPTraceLogcmdlet and introducedStart-PnPTraceLogandStop-PnPTraceLogwith similar parameters. - Removed
-DelayDenyAddAndCustomizePagesEnforcementparameter fromSet-PnPTenantcmdlet as it is no longer valid , removed from underlying SDK and its value can't be changed. - Removed
-EnableVersionExpirationSettingparameter fromSet-PnPTenantcmdlet as it is now enabled by default.
- [svermaak]
- [PitSysAdmin]
- Abhijeet Jadhav [TekExpo]
- [abwlodar]
- [jgfgoncalves]
- Stephen Cox [stephen-cox-nzx]
- Marijn Somers [Marijnsomers]
- Janne Holm [jhholm]
- Paul Bullock [pkbullock]
- Arjan Cornelissen [arjancornelissen]
- 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
WAMlogin for Windows OS to support Windows Hello, FIDO keys, Conditional Access policies and other secure authentication modes. - Added
-SkipCertCreationparameter inRegister-PnPAzureADAppcmdlet to prevent creation and uploading of certificates in the Entra ID app. - Added support to
-ValidateConnectionin managed identity authentication. - Added
New-PnPSearchExternalConnection,Get-PnPSearchExternalConnection,Set-PnPSearchExternalConnectionandRemove-PnPSearchExternalConnectioncmdlets to manage external connections for Microsoft Search #4231 - Added
Get-PnPSearchExternalSchemaandSet-PnPSearchExternalSchemacmdlets to manage the schema for external connections for Microsoft Search #4231 - Added
OverrideSharingCapability,RequestFilesLinkExpirationInDays&RequestFilesLinkEnabledparameters toSet-PnPTenantSitecmdlet.
- 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
-VerbosewithConnect-PnPOnline - Added
-OutputTaskswitch toAdd-PnPPlannerTaskcmdlet which will return the just created task so inspect its ID, ETag, etc. values. - Improved
Invoke-PnPGraphMethodcmdlet 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-PnPPagecmdlet when the page doesn't exist. - Improved
Register-PnPEntraIDApp&Register-PnPEntraIDAppForInteractiveLogincmdlets to better work in non-commercial cloud environments. - Improved
Get-PnPDiagnosticscmdlet 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-PnPDiagnosticscmdlet not working correctly ifCorrelationIdis 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-PnPFlownot working correctly when-AsAdminparameter is specified due to API changes. #4244 - Fix
Connect-PnPOnlinenot returning correctClientIdin 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
-Verboseto the cmdlet execution #4023 - Added
-CoreDefaultShareLinkScopeand-CoreDefaultShareLinkRoleparameters toSet-PnPTenantcmdlet. #4067 - Added
-Identityparameter to theGet-PnPFileSharingLinkcmdlet 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-PnPAzureADUserwhich allows removal of a user from Azure Active Directory / Entra ID #4123 - Added support for
GuestSharingGroupAllowListInTenantByPrincipalIdentityandOneDriveSharingCapabilityparameters inSet-PnPTenantcmdlet. #4122 - Added
-AsListItemparamter toGet-PnPFoldercmdlet to return as folder as a list item object. #4151 - Added support for handling
$ErrorActionPreferenceglobal variable to make it work with PnP PowerShell cmdlets. #4079 - Added
-Folderparameter toAdd-PnPDocumentSetcmdlet to allow creation of document sets in a specific folder instead of the list root folder. #4029
Get-PnPTeamsChannelandGet-PnPTeamsPrimaryChannelreturningunknownFutureValueas MembershipType instead ofshared#4054- Fixed using a AzureADUserPipeBind with
New-PnPAzureADUserTemporaryAccessPass,Get-PnPAvailableSensitivityLabelandSet-PnPSearchExternalItemto not work when passing in the User ID GUID #4123 - Fixed issue with
Get-PnPWebHeadercmdlet not working properly in Group connected SharePoint sites. #4147 - Fixed issue with
Get-PnPTeamsChannelFilesFoldercmdlet to work properly for channels having data more than 2 GB. #4127
- Fixed
Update-PnPTeamsUsercmdlet 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
-FileUrlonGet-PnPFileSharingLinkto become obsolete. Please switch to using-Identityinstead, passing in the same value #4093
- Dan Cecil [danielcecil]
- Reshmee Auckloo [reshmee011]
- Giacomo Pozzoni [jackpoz]
- Koen Zomers [koenzomers]
- Added
New-PnPLibraryFileVersionBatchDeleteJobandNew-PnPSiteFileVersionBatchDeleteJobcmdlets to queue a job for deleting the file versions based on age. #3799 - Added
New-PnPLibraryFileVersionExpirationReportJobandNew-PnPSiteFileVersionExpirationReportJobcmdlets to queue a job for generating a file version expiration report for all files in a document library or site. #3799 - Added
Remove-PnPLibraryFileVersionBatchDeleteJobandRemove-PnPSiteFileVersionBatchDeleteJobcmdlets to cancel the job for deleting file versions based on age. #3799 - Added
Get-PnPLibraryFileVersionExpirationReportJobProgressandGet-PnPSiteFileVersionExpirationReportJobProgresscmdlets to getting the progress for the job for file versions based on age. #3799 - Added
-UseVersionExpirationReportparameter toGet-PnPFileVersioncmdlet to get the version expiration report for a single file. #3799 - Added
-DelayDenyAddAndCustomizePagesEnforcementparameter toSet-PnPTenantcmdlet 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,LoopDefaultSharingLinkScopeandDefaultLinkToExistingAccessResetparameters toSet-PnPTenantcmdlet. #3874 - Added
Unlock-PnPSensitivityLabelEncryptedFilewhich allows the encryption to be removed from a file #3864 - Added
Get-PnPLibraryFileVersionBatchDeleteJobStatusandGet-PnPSiteFileVersionBatchDeleteJobStatusto check on the status of applying file based version expiration based on age on a library and site level #3828 - Added support for
Get-PnPSiteCollectionAppCatalogandGet-PnPTenantSiteto 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-PnPSiteDesignTaskandInvoke-PnPSiteDesigncmdlets #3898 - Added
-DetailedtoGet-PnPMicrosoft365Groupwhich allows retrieval of the AllowExternalSenders, IsSubscribedByMail and AutoSubscribeNewMembers properties of the group #3958 - Added
-RequireSenderAuthenticationEnabledand-AutoSubscribeNewMemberstoSet-PnPMicrosoft365Groupwhich allows setting these properties on a group #3958 - Added
Get-PnPContainerTypecmdlet to retrieve the list of Container Types created for a SharePoint Embedded Application in the tenant. #3946 - Added
-RecycleBinRetentionPeriod,-OneDriveBlockGuestsAsSiteAdmin,-OneDriveDefaultShareLinkRole,-OneDriveDefaultShareLinkScopeand-OneDriveDefaultLinkToExistingAccessparameters to theSet-PnPTenantcmdlet. #3977 - Added
Get-PnPTenantRestrictedSearchModeandSet-PnPTenantRestrictedSearchModecmdlets to enable and set up Restricted SharePoint Search. #3976 - Added
Get-PnPTenantInternalSettingcmdlet to retrieve internal tenant settings not exposed via CSOM SDK. #3902 - Added
Add-PnPHomeSitecmdlet to add a home site to your tenant. #3989 - Added
Get-PnPPageSchedulingEnabledcmdlet to get the state of the modern page schedule feature in the library. PR - Added
-IncludeSensitivityLabelsparameter toGet-PnPMicrosoft365Groupcmdlet to retrieve sensitivity labels assigned to M365 Groups. #3991 - Added
Get-PnPFileSensitivityLabelInfocmdlet to retrieve sensitivity label information about a file in a SharePoint site. #3994 - Added
Get-PnPTenantRestrictedSearchAllowedListcmdlet to retrieve existing list of URLs in the allowed list. #3997 - Added
-IsSharePointAddInsDisabledto theSet-PnPTenantcmdlet which allows disabling SharePoint Add-ins #4032 - Added
-RestrictContentOrgWideSearch,-ReadOnlyForUnmanagedDevicesand-InheritVersionPolicyFromTenantparameters toSet-PnPTenantSitecmdlet. #4024
- Fixed
Get-PnPChangeLog -Version 2.3.0not returning the changelog for that version #3804 - Fixed
Get-PnPFlowcmdlet throwing time out error due to incorrect URL used in HTTP request. #3820 - Fixed
Copy-PnPListcmdlet 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-PnPUserProfilePropertycmdlet 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-PnPContainercmdlet to also handle pagination in case of large no. of containers in a tenant. #3990 - Fixed
New-PnPTeamsTeamcmdlet to better handle error specifically such asConflict (409): Team already exists. #3992 - Fixed
Remove-PnPTeamsChannelissue where it was throwing incorrect exception. #4036
- Renamed
Get-PnPSiteFileVersionExpirationReportJobProgresstoGet-PnPSiteFileVersionExpirationReportJobStatus#3828 - Renamed
Get-PnPSiteVersionPolicyProgresstoGet-PnPSiteVersionPolicyStatus#3828 Remove-PnPGroupMembercmdlet now supports removing members from pipeline. #3955- Changed
Set-PnPTenantCdnPolicycmdlet to allow PolicyValue parameter to be an empty string or $null, while still being mandatory. #3937 - Marked
UserVoiceForFeedbackEnabledas obsolete inSet-PnPTenantcmdlet as Microsoft doesn't support this. #3985 Get-PnPTenantSitecmdlet now returns additional properties likeArchiveStatus,EnableAutoExpirationVersionTrimand many more. #3987Add-PnPListFoldersToSiteTemplatecmdlet now wont export RoleBindings which areLimited Access. It caused issues while applying the template. #3918
- Removed
UserVoiceForFeedbackEnabledproperty fromGet-PnPTenantas 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
-IsDataAccessInCardDesignerEnabledtoSet-PnPTenantwhich allows for configuring Viva Connections Adaptive Cards to connect to backend services for their data #3635 - Added
Remove-PnPContainercmdlet to remove the SharePoint embed container. #3629 - Added
Convert-PnPFilecmdlet which allows for a file to be converted to from one format to another. #3435 & #3643 - Added
Merge-PnPTermcmdlet which allows merging of one term into another. #3638 - Added
Get-PnPDeletedContainercmdlet which returns a list of all deleted Containers in the recycle bin. #3648 - Added
-Batchparameter toAdd-PnPGroupMembercmdlet which allows adding members to a SharePoint group in a batch. #3651 - Added
Get-PnPContainerTypeConfigurationcmdlet which fetches the container type configuration values. #3660 - Added
-AppBypassInformationBarriersand-DefaultOneDriveInformationBarrierModeparameters toSet-PnPTenantcmdlet. #3679 - Added
Add-PnPFileAnalyticsDatacmdlet to allow retrieval of file analytics data. #3644 - Added
Add-PnPSiteAnalyticsDatacmdlet to allow retrieval of site analytics data. #3645 - Added
Get-PnPPowerPlatformSolutioncmdlet to Power Platform solutions. #3675 - Added
New-PnPContainerTypecmdlet to create a new SharePoint container type. #3669 - Added
Remove-PnPContainerTypecmdlet which removes a specific container type. #3689 - Added
Restore-PnPDeletedContainercmdlet which recovers a deleted Container from the Recycle Bin. #3661 - Added the ModerationSettings to be returned with
Get-PnPTeamsChannelwhen passing in-IncludeModerationSettingsand using-Identity <channelId>#3580 - Added
AllowNewMessageFromBots,AllowNewMessageFromConnectors,ReplyRestrictionandUserNewMessageRestrictiontoSet-PnPTeamsChannelwhich allows setting the moderation settings on a Teams channel #3580 - Added
Get-PnPWebPermissioncmdlet which retrieves permission given by user for specific web. #3685 - Added
-HorizontalQuickLaunchparameter toSet-PnPWebcmdlet to allow navigation orientation to be horizontal. #3722 - Added support for different sovereign cloud environment for Power Platform related cmdlets #3725
- Added
Set-PnPRetentionLabelandReset-PnPRetentionLabelcmdlets to support setting a retention label on one or more items #3599 - Added
-SiteThumbnailUrlparameter toSet-PnPWebHeadercmmdlet to support setting thumbnail of the site. #3746 - Added
-Likeparameter toSet-PnPPagecmdlet to support liking/unliking a modern page. #3788 - Added
Get-PnPPageLikedByInformationcmdlet to retrieve list of users who liked a modern page. #3781
- Fixed
Grant-PnPAzureADAppSitePermissioncmdlet which allows it to work in multi-geo environment. #3658 - Fixed
Get-PnPTeamsChannelMessageReplycmdlet which didn't work correctly when-IncludeDeletedparameter was not specified. #3676 - Fixed
Add-PnPNavigationNodecmdlet to also search for nodes in child navigation items. #3625 - Fixed
Get-PnPFlowcmdlet 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-PnPFlowandStop-PnPFlowRuncmdlets to use the new HTTP endpoints. #3687 - Fixed
Add-PnPHubSiteAssociationcmdlet to allow support for multi-geo scenario. #3568 - Fixed
Enable/Disable-PnPPageSchedulingcmdlet to also work with Viva connections enabled site. #3713 - Fixed
Register-PnPManagementShellAccessandRegister-PnPAzureADAppcmdlets to also work with custom environment. #3763 - Fixed
Set-PnPPPagecmdlet to only change layout of the page if the parameter is specified. #3777 - Fixed
New-PnPGroupcmdlet to correctly show the group description with HTML making it similar toSet-PnPGroup.
-IsFavoriteByDefaultparameter is now obsolete inAdd-PnPTeamsChannelcmdlet due to deprecation by Microsoft Graph API. #3712Get-PnPSiteTemplatewill now only containPersistPublishingFiles,IncludeNativePublishingFiles,IncludeTermGroupsSecurity,IncludeSearchConfiguration,SkipVersionCheckandPersistMultiLanguageResourcesif these are provided with the cmdlet as switch parameters #3715- Due to backend changes in Microsoft Graph,
Get-PnPUnifiedAuditLogcmdlet 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
-MediaTranscriptionand-MediaTranscriptionAutomaticFeaturestoSet-PnPTenantwhich allows for configuring the media transcription settings. #3238 - Added
-Includesoption toGet-PnPListItemwhich allows for specifying additional fields to be retrieved. #3270 - Added
-AllowCommentsTextOnEmailEnabledparameter toSet-PnPTenantwhich allows including the surrounding document context in email notification when user is mentioned in document comments. #3268 - Added
Export-PnPPowerAppcmdlet which will export a specified PowerApp as zip package. #2990 - Added
AzureADLoginEndPointandMicrosoftGraphEndPointparameters toConnect-PnPOnlinecmdlet for use in custom Azure environments. #2925 - Added
Get-PnPFoldercmdlet without any parameters to return the folder representing the root of the current web #3319 - Added
Get-PnPFileInFoldercmdlet which allows retrieval of all files in a folder or site and optionally request additional properties from them #3319 - Added
Get-PnPFolderInFoldercmdlet which allows retrieval of all folders in a folder or site and optionally request additional properties from them #3319 - Added
-SharingStatusparameter toGet-PnPFlowwhich allows for filtering flows based on their sharing status. #3287 - Added
-AzureADLoginEndPointand-MicrosoftGraphEndPointparameters toConnect-PnPOnlinecmdlet for use in custom Azure environments. #2925 - Added
SiteOwnerManageLegacyServicePrincipalEnabledparameter toSet-PnPTenantcmdlet. 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,-StartApplyVersionPolicySettingToExistingDocLibsand-CancelApplyVersionPolicySettingToExistingDocLibstoSet-PnPSiteto allow for time based version expiration on the site level #3373 - Added
-ReduceTempTokenLifetimeEnabled,-ReduceTempTokenLifetimeValue,-ViewersCanCommentOnMediaDisabled,-AllowGuestUserShareToUsersNotInSiteCollection,-ConditionalAccessPolicyErrorHelpLink,-CustomizedExternalSharingServiceUrl,-IncludeAtAGlanceInShareEmailsand-MassDeleteNotificationDisabledtoSet-PnPTenant#3348 - Added
Add-PnPFlowOwnerandRemove-PnPFlowOwnercmdlets which allow granting or removing permissions to a Power Automate flow #3343 - Added
Get-PnPFlowOwnercmdlet which allows retrieving the owners of a Power Automate flow #3314 - Added
-AvailableForTaggingtoSet-PnPTermwhich allows the available for tagging property on a Term to be set #3321 - Added
Get-PnPPowerPlatformConnectorcmdlet which allows for all custom connectors to be retrieved #3309 - Added
Set-PnPSearchExternalItemcmdlet which allows ingesting external items into the Microsoft Search index for custom connectors. #3420 - Added
Get-PnPTenantInfowhich 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-PnPTenantTemplateallowing the tenant template to be modified before being applied. #3431 - Added
Get-PnPTenantInfowhich 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-PnPSiteVersionPolicywhich allows retrieval of the version policy settings for a site #3470 - Added
RestrictedAccessControl,ClearRestrictedAccessControl,RemoveRestrictedAccessControlGroups,AddRestrictedAccessControlGroupsandRestrictedAccessControlGroupsparameters toSet-PnPTenantSitecmdlet to handle restricted access control. #3463 - Added
Get-PnPRetentionLabelcmdlet to retrieve Purview retention labels. #3459 - Added GCC support for
Get-PnPAzureADUser,Add-PnPFlowOwner,Remove-PnPFlowOwner,Sync-PnPSharePointUserProfilesFromAzureActiveDirectory,New-PnPAzureADUserTemporaryAccessPassandGet-PnPAvailableSensitivityLabelcmdlets. #3484 - Added
-Detailedoption toGet-PnPTenantDeletedSiteto 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
-RelativeUrlparameter toConnect-PnPOnlinecmdlet to allow specifying custom URLs for usage with-WebLoginmethod. #3530 - Added
-RetryCounttoSubmit-PnPSearchQuerywhich allows for specifying the number of retries to perform when an exception occurs #3528 - Added
-MailNicknameparameter toSet-PnPMicrosoft365Groupcmdlet to allow changing of this property on a Microsoft 365 Group #3529 - Added
-SanNamestoNew-PnPAzureCertificatewhich 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
RequestFilesLinkEnabledandRequestFilesLinkExpirationInDaysto the output ofGet-PnPSite#3557 - Added
CoreRequestFilesLinkEnabled,CoreRequestFilesLinkExpirationInDays,OneDriveRequestFilesLinkEnabled,OneDriveRequestFilesLinkExpirationInDays,BusinessConnectivityServiceDisabledto the output ofGet-PnPTenant#3557 - Added
-BusinessConnectivityServiceDisabledparameter toSet-PnPTenantcmdlt to allow disabling the Business Connectivity Service #3562 - Added support for executing the 'Invoke-PnPSPRestMethod' cmdlet in a batch #3565
- Added
Get-PnPSiteSetVersionPolicyProgresscmdlet which allows for getting the progress of setting a version policy for existing document libraries on a site #3564 - Added
EnableSensitivityLabelForPDFtoSet-PnPTenantandGet-PnPTenant#3581 - Changed
Restore-PnPRecycleBinItem, made-Identityparameter as non-mandatory. #2499 - Added the ability to set Manage and FullControl permissions directly when using Sites.Selected with
Grant-PnPAzureADAppSitePermission#3617 - Added
Remove-PnPMicrosoft365GroupPhotocmdlet which allows removal of profile picture of M365 Group. #3607
- Fixed
Add-PnPContentTypeToListcmdlet to better handle piped lists. #3244 - Fixed
Get-PnPUserProfilePropertycmdlet not allowing basic user profile properties to be retrieved using-Properties#3247 - Fixed
Export-PnPTermGroupToXmlcmdlet issue with exporting site collection term groups. #3256 - Fixed
Register-PnPAzureADAppcmdlet issue with creation of Azure AD application. #3265 - Fixed
Get-PnPServiceHealthIssuecmdlet issue with null reference objection. #3286 - Fixed
New-PnPSitecmdlet 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
-ArchiveRedirectUrlparameter not working correctly inSet-PnPTenantcmdlet. #3289 - Fixed
New-PnPAzureADGroupcmdlet throwing null reference error when owners and members are not specified. #3308 - Fixed
New-PnPTeamsTeamcmdlet, it will now throw error if it fails to teamify a Microsoft 365 group. #3310 - Fixed
Get-PnPFolderItemcmdlet not accepting piping a folder instance to it #3319 - Fixed
Get-PnPFolderItemcmdlet not working well with the-Recursiveand-Identityparameters provided together #3319 - Fixed
Get-PnPFolderItemcmdlet not working well with the-ItemNameparameter #3319 - Fixed
Connect-PnPOnlinecmdlet throwing host not reachable errors. #3337 - Fixed
Set-PnPTermcmdlet throwing object reference error when only the term Id is specified. #3341 - Fixed
New-PnPTeamsTeamcmdlet throwing an error when specifying members #3351 - Fixed
New-PnPTeamsTeamcmdlet not working well with a managed identity #3351 - Fixed
Copy-PnPFile,Copy-PnPFolderandMove-PnPFileto better handle copying or moving operations to OneDrive or Multi-geo environments. #3245 - Fixed
Get-PnPTenantTemplatenot doing anything when the-SiteUrlparameter had not been specified. It will now use the currently connected site when the parameter is omitted. #3431 - Fixed
Enable-PnPPageSchedulingandDisable-PnPPageSchedulingcmdlets not working due to changes in backend code. #3469 - Fixed an issue when trying to download a file using
Get-PnPFilefrom a location that's deeply nested into folders and/or has a really long filename PnP Core #1290 - Fixed retrieving error detail in
Get-UPABulkImportStatuscmdlet. #3494 - Fixed
Rename-PnPTenantSitecmdlet to allow support for vanity tenant URLs. #3533 - Fixed
Get-PnPAzureADUser,Get-PnPEntraIDUser,Add-PnPFlowOwnerandRemove-PnPFlowOwnernot working when an UPN containing an apostrophe was passed in #3570
- Improved
Set-PnPListItemcmdlet handling of Purview labels. #3340 - The
Publish-PnPCompanyAppcmdlet is now obsolete. It will be removed in the next version. #3349 - Verbose output will no longer show the access token #3352
- Improved
Add-PnPFilecmdlet. It will now automatically checkout the file if-CheckinTypeparameter is specified. #3403 - Improved the error message thrown when using
-ValidateConnectionwithConnect-PnPOnlineand 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-PnPFlowcmdlet to throw error if the Flow doesn't exist and also added verbose logging. #3474 - Changed
Get-PnPContentTypeto now also support-Includesto allow retrieval of additional properties of the content type #3518 Get-PnPTeamsTeamcmdlet throws error message if the team isn't found when-Identityparameter is specified. #3502- Improved
Get-PnPSiteCollectionAdmincmdlet to allow retrieval of additional properties when-Includesparameter is specified. #3521
- Removed
-DisableListSyncand-SyncAadB2BManagementPolicyfromSet-PnPTenantas 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,MajorVersionLimitandEnableAutoExpirationVersionTrim,OneDriveLoopSharingCapability,OneDriveLoopDefaultSharingLinkScope,OneDriveLoopDefaultSharingLinkRole,CoreLoopSharingCapability,CoreLoopDefaultSharingLinkScope,CoreLoopDefaultSharingLinkRole,DisableVivaConnectionsAnalytics,CoreDefaultLinkToExistingAccess,HideSyncButtonOnTeamSite,CoreBlockGuestsAsSiteAdmin,IsWBFluidEnabled,IsCollabMeetingNotesFluidEnabled,AllowAnonymousMeetingParticipantsToAccessWhiteboards,IBImplicitGroupBased,ShowOpenInDesktopOptionForSyncedFiles,OneDriveRequestFilesLinkExpirationInDaysandShowPeoplePickerGroupSuggestionsForIBparameters to theSet-PnPTenantcmdlet. #2979 and #3015 - Added
-OutFiletoInvoke-PnPGraphMethodwhich allows for the response to be written to a file #2971 - Added
-OutStreamtoInvoke-PnPGraphMethodwhich allows for the response to be written to a memory stream #2976 - Added
-PreviousNodetoAdd-PnPNavigationNodewhich allows for adding a navigation node after a specific node #2940 - Added
EnableAzureADB2BIntegrationto be returned byGet-PnPTenant#3022 - Added
-SkipUrlValidationtoGet-PnPSiteCollectionAppCatalogwhich 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-PnPLargeListOperationStatuscmdlet to retrieve the status of a large list operation. #3033 - Added
-BlockDownloadFileTypePolicy,-BlockDownloadFileTypeIdsand-ExcludedBlockDownloadGroupIdsparameters toSet-PnPTenantcmdlet. #3081 - Added
-BlockDownloadPolicy,-ExcludeBlockDownloadPolicySiteOwnersandExcludedBlockDownloadGroupIdsparameters toSet-PnPTenantSiteandSet-PnPSitecmdlets. #3084 - Added
-OpenInNewTabparameter toAdd-PnPNavigationNodecmdlet to allow links to be opened in a new tab. #3094 - Added
-ArchiveRedirectUrltoSet-PnPTenantallowing the configuration of a custom page to be shown when navigating to an archived SharePoint Online site #3100 - Added
-BlockSendLabelMismatchEmailtoSet-PnPTenantallowing 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-PnPTermandMove-PnPTermSetcmdlets to allow moving the terms and termsets. #2989 - Added
-VerticalZoneEmphasisparameter toAdd-PnPPageSectioncmdlet to allow setting the emphasis value for vertical columns. #3129 - Added
-AllowDeletionparameter toSet-PnPListcmdlet to allow or prevent deletion of list from the SharePoint UI. #3142 - Added
EnableClassicAudienceTargetingandEnableModernAudienceTargetingparameters toSet-PnPListcmdlet to enable audience targeting in lists. #3153 - Added
-Attachmentsparameter toSend-PnPMailcmdlet to allow sending attachments via Microsoft Graph API. #3157 - Added cmdlets for list item version history:
Get-PnPListItemVersion,Restore-PnPListItemVersionandRemove-PnPListItemVersion. #3086 - Added
Add-PnPFileOrganizationalSharingLinkandAdd-PnPFolderOrganizationalSharingLinkcmdlets to allow creating organizational sharing links for files and folders. #3177 - Added
Add-PnPFileUserSharingLinkandAdd-PnPFolderUserSharingLinkcmdlets to allow creating sharing links for files and folders to share them with specified list of users. #3178 - Added
Get-PnPFileSharingLinkandGet-PnPFolderSharingLinkcmdlets to retrieve sharing links for files and folders respectively. #3181 - Added
Add-PnPFileAnonymousSharingLinkandAdd-PnPFolderAnonymousSharingLinkcmdlets to create anonymous sharing links. #3198 - Added
Add-PnPFileSharingInviteandAdd-PnPFolderSharingInvitecmdlets to invite users to a file or a folder. #3199 - Added
Remove-PnPFileSharingLinkandRemove-PnPFolderSharingLinkcmdlets to delete sharing links associated with files and folders. #3200 - Added
Get-PnPUnfurlLinkcmdlet to support unfurling a link to get more information about the link. #3224 - Added
ListsShowHeaderAndNavigationparameter to always show lists with site elements intact when specified inSet-PnPTenantSiteandSet-PnPSitecmdlets. #3233 - Added
-AzureADWorkloadIdentityparameter toConnect-PnPOnlinecmdlet to support Azure AD Workload Identity authentication. #3097 - Added Managed identity support for Power Platform related cmdlets. #3097
- Added
-ShowInPublishDateparameter toSet-PnPPageto allow the publication date to be shown or hidden on a page #3417
- Fixed issue with
Grant-PnPAzureADAppSitePermissioncmdlet where users are not able to set selected site in theSites.Selectedpermission. #2983 - Fixed issue with
Get-PnPListcmdlet not working with site-relative URL as identity. #3005 - Fixed issue with
Add-PnPNavigationNodecmdlet 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-PnPAzureADGroupreturns only 100 results even if there are more groups present in Azure AD. #3085 - Fixed
Get-PnPAccessTokencmdlet to correctly retrieve the access token for the specified resource URL. #3091 - Fixed issue with
Get-PnPTenantSyncClientRestrictioncmdlet not populating the necessary properties. #3099 - Fixed
Add/Set/Get-PnPPagecmdlets when using multilingual translation parameters which caused some exceptions. #3120 - Fixed
New-PnPSitecmdlet now supports creating Team site in non-commercial cloud environments. #885 - Fixed issue where
Get-PnPFieldcmdlet was throwing error in case-Includesparameter was used. #3225 - Fixed issue with
Add-PnPDataRowsToSiteTemplatecmdlet where it would throw property not initialized error when using-IncludeSecurityparameter. #3226
- Improved
Set-PnPSitecmdlet when using theScriptSafeDomainNameparameter. If a domain is already existing, it will now throw a warning. #3073 - Change
Set-PnPWebhookSubscriptionto use the same default expiration date asAdd-PnPWebhookSubsriptioncmdlet which is 180 days instead of 6 months.#3106 - Improved
Set-PnPHomePagecmdlet to handle forward slash issue. #3128 - Improved
Connect-PnPOnlinecmdlet to handle ping on the destination server to check if it exists. PR and #3154 - Improved
Invoke-PnPGraphMethodcmdlet to show a better error message when sufficient permissions are not available. #3133 - Improved
Add-PnPDataRowsToSiteTemplatecmdlet to retrieve list item with pagination. #3152 - Improved error message when caused using Graph endpoints used via PnP Core SDK. #3179
- Improved
Add-PnPDataRowsToSiteTemplatecmdlet performance to not load and execute every list item. #3226
- Removed alias
Get-PnPSiteCollectionAppCatalogsforGet-PnPSiteCollectionAppCatalog#2305 - Removed alias
Export-PnPClientSidePage, please useExport-PnPPagecmdlet. #3158 - Removed alias
Export-PnPClientSidePageMapping, please useExport-PnPPageMappingcmdlet. #3158 - Removed alias
Get-PnPClientSideComponent, please useGet-PnPPageComponentcmdlet. #3158 - Removed alias
Remove-PnPClientSideComponent, please useRemove-PnPPageComponentcmdlet. #3158 - Removed alias
Set-PnPClientSideText, please useSet-PnPPageTextPartcmdlet. #3158 - Removed alias
Set-PnPClientSideWebPart, please useSet-PnPPageWebPartcmdlet. #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.0since.NET Core 3.1support is getting deprecated. We have removed support for .NET Core 3.1, so users will have to update fromPowerShell 7.0.xtoPowerShell 7.2.x or later#2292 - Added default table formatted output for
Get-PnPVivaConnectionsDashboardACE - Added
Get-PnPAzureADServicePrincipalwhich allows for service principals/application registrations to be retrieved from Azure Active Directory #2551 - Added
Get-PnPAzureADServicePrincipalAssignedAppRolewhich allows for the assigned app roles of a service principal/application registration to be retrieved from Azure Active Directory #2551 - Added
Get-PnPAzureADServicePrincipalAvailableAppRolewhich allows for the available app roles of a service principal/application registration to be retrieved from Azure Active Directory #2551 - Added
Add-PnPAzureADServicePrincipalAppRolewhich allows for app roles to be assigned to a service principal/application registration in Azure Active Directory #2551 - Added
Remove-PnPAzureADServicePrincipalAppRolewhich 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-PnPBuiltInSiteTemplateSettingsallowing them to be hidden or shown #2586 - Added
-EnableAzureADB2BIntegrationand-SyncAadB2BManagementPolicyparameters toSet-PnPTenant#2631 - Added
-ShowInFiltersPanetoSet-PnPFieldwhich allows fields to be shown or hidden in the filters pane #2623 - Added
-KeyColumntoAdd-PnPDataRowsToSiteTemplatewhich allows for overwriting existing list items in a site template #2616 - Added
Get-PnPFolderStorageMetricwhich allows storage usage of a specific folder to be retrieved #2646 - Added
IsTeamsConnected,IsTeamsChannelConnectedandTeamChannelTypeto be returned whenGet-PnPTenantSitecmdlet is executed. #2656 - Added
HTTP/2support for all HTTP requests to improve performance for HTTP requests. #2687 - Added
-EnvironmentVariableparameter toConnect-PnPOnlineto connect using Azure environment variables. #2681 - Added
ResponseHeadersVariableparameter to theInvoke-PnPSPRestMethodwhich if specified will store the response headers values in the PowerShell variable name that is specified. #2711 - Added
-Filterparameter toGet-PnPAzureADServicePrincipalcmdlet to retrieve specific application registrations based on filter conditions. It supports simple and advanced queries. #2710 - Added
-Filterparameter toGet-PnPMicrosoft365Groupcmdlet to retrieve specific M365 groups based on filter conditions. It supports simple and advanced queries. #2709 - Added
-CoreRequestFilesLinkExpirationInDaysand-CoreRequestFilesLinkEnabledtoSet-PnPTenantand-RequestFilesLinkExpirationInDaystoSet-PnPSiteto allow configuration of the new receive files to SharePoint Online folder feature #2719 - Added
PSVersiontracking, which tracks the PowerShell version being used. #Commit - Added
-Bccoption toSend-PnPMail#2726 - Added
-AudienceIdsoption toAdd-PnPNavigationNodeto allow setting the audience for a navigation node #2736 - Added
-PrimarySiteCollectionAdmintoAdd-PnPSiteCollectionAdminto allow for the primary site collection admin to be set on the current site #2750 - Added
-PrimarySiteCollectionAdmintoSet-PnPTenantSiteto 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
-IsVivaConnectionsDefaultStartForCompanyPortalSiteEnabledparameter toGet-PnPHomeSitewhich returns information on whether Viva Connections landing experience is set to the SharePoint home site. #2779 - Added
-VivaConnectionsDefaultStartparameter toSet-PnPHomeSitewhich sets the home site to the provided site collection url and keeps the Viva Connections landing experience to the SharePoint home site. #2779 - Added
-LargeListparameter toRemove-PnPListcmdlet 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-PnPTeamsTabcmdlet when trying to add a SharePoint page or list as a tab in Teams channel. #2807 - Added
-CheckinTypeparameter toAdd-PnPFilecmdlet which provides the option to specify the checkin type for a file. The default value is set toMinorCheckIn. #2806 - Added
-DefaultSensitivityLabelForLibrarytoSet-PnPListwhich allows setting the default sensitivity label for a library. #2825 - Added
-ApplicationIdas alias for-ClientIdinConnect-PnPOnlineandRequest-PnPAccessTokencmdlets. #2805 - Added
-Connectionoption toConnect-PnPOnlinewhich allows of reusing an authenticated connection to connect to a different site #2821 - Added
-UserAssignedManagedIdentityAzureResourceIdand-UserAssignedManagedIdentityClientIdas alternatives to-UserAssignedManagedIdentityObjectIdforConnect-PnPOnline -ManagedIdentityto 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-PnPFileCheckedOutwhich 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-PnPMailcmdlet #2880 - Added
-OpenDocumentsModeoption toSet-PnPListwhich allows configuring if documents should be opened in the browser or in the local client #2873 - Added
-Propertiesparameter toGet-PnPUserProfilePropertycmdlet which allows retrieval of specific properties if specified. #2840 - Added support for specifying the
-ContentUrlconfiguration inAdd-PnPTeamsTabcmdlet when trying to add a Planner as a tab in Teams channel. #2850 - Added
Get-PnPSharePointAddIncmdlet to retrive list of SharePoint addins installed in the site collection. #2920 - Added
Get-PnPAzureACSPrincipalcmdlet to retrieve list of installed Azure ACS Principals in the site collection or tenant. #2920 - Added
-LogoFilePathparameter toRegister-PnPAzureADAppcmdlet to allow setting the logo for the Azure AD app. #2881 - Added support for
-VerboseinMove-PnPFilewhich will show if it has problems determining if the destination location is a folder or a file #2888 - Added
CalendarMemberReadOnlyandConnectorsDisabledas-ResourceBehaviorOptionstoNew-PnPMicrosoft365Group#2929 - Added
-Identityoption toGet-PnPPowerPlatformEnvironmentwhich allows retrieval of one specific environment by its displayname or id. #2794 - Added
Get-PnPPowerAppwhich allows PowerApps to be retrieved #2794 - Added
-DisableCommentingtoSet-PnPListwhich allows enabling or disabling commenting on a list. #2939 - Added
-EnableAutoExpirationVersionTrimand-ExpireVersionsAfterDaystoSet-PnPListwhich allows enabling or disabling auto expiration of versions on a list or library based on the days passed. #2869 - Added
-Detailedparameter toGet-PnPHomeSitewhich will return detailed information on all home sites configured on the tenant #2954
Update-PnPVivaConnectionsDashboardACEis now calledSet-PnPVivaConnectionsDashboardACEbutUpdate-PnPVivaConnectionsDashboardACEwill still work as an alias.- All
Set|Get|Remove-PnPVivaConnectionsDashboardACEcmdlets 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-PnPVivaConnectionsDashboardACEas it is not always required when adding an ACE - Added a 10 second timeout on the new version check on
Connect-PnPOnlineto 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-PnPListItemandGet-PnPSiteDesignRuncmdlets by improving null checks based on warnings from compiler. #PR1 and #PR2 - Improved
Register-PnPAzureADAppandRegister-PnPManagementShellAccesscmdlets to reuse existing HTTP client instead of creating a new one. #2682 - Improved
Register-PnPAzureADAppcmdlet based on compiler warnings. #2682 Connect-PnPOnlinewill 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-PnPAzureADServicePrincipalare now all typed instead of some of them returning unparsed JSON fragments. #2717 - Changed
Add-PnPTeamsChannelto no longer require an-OwnerUPNto be provided when specifying-ChannelType Standard#2786 - Changed
Add-PnPFileby default to upload a file as a draft with a minor version now instead of publishing it as a major version.-CheckinType MajorCheckIncan be used to still upload the file as a major published version #2806 - Changed
Send-PnPMailto support-Verboseand provide feedback if sending the e-mail has failed #2880 - Improved
Restore-PnPRecycleBinItemandClear-PnPRecycleBinItemcmdlets to better work with large items in recycle bin. [#2866] (pnp#2866) - Changed
Get-PnPUserProfilePropertyto 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-PnPSubscribeSharePointNewsDigestandSet-PnPSubscribeSharePointNewsDigestas 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
-ReturnTypedparameter from theGet-PnPFieldcmdlet. The retrieved fields will always be returned by theirTypeKind. #2849 - Removed alias
Get-PnPFlowEnvironmentfromGet-PnPPowerPlatformEnvironment. Please use the latter going forward. #2794 - Marked
BlockEditandBlockDeletionparameters as obsolete inSet-PnPLabelcmdlet. #2934
- Fixed issue with -CreateDrive on
Connect-PnPOnlinethrowing exception on non-existing context - Fixed issue with non-existing ItemProxy cmdlet aliases being registered
- Fixed issue with
-TranslationLanguageCodefailures inAdd-PnPPageandSet-PnpPagecmdlets. #2634 - Fixed issue with
Export-PnPUserInfoandRemove-PnPUserInfocmdlets not working due to issue with parameter validation. #2688 - Fixed issue with
Add-PnPNavigationNodenot always showing the new navigation node without requiring a manual edit and save of the menu first #2736 - Fixed issue with
Get-PnPFolderignoring-Includesparameter when passing in a specific list through-List#2735 - Fixed the handling of
-ErrorActionso it follows the standard PowerShell behavior #2741 - Fixed issue with
Set-PnPContentTypenot allowing you to update basic properties of a content type #2760 - Fixed
Add-PnPFieldnot supporting a ReturnType to be set for calculated fields when created on the site level #2765 - Fixed issue with
Invoke-PnPSPRestMethodthrowing error when the response string is empty. #2784 - Removed
Get-PnPSubscribeSharePointNewsDigestandSet-PnPSubscribeSharePointNewsDigestcmdlet 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-PnPSPRestMethodandInvoke-PnPGraphMethodthrowing error when passing complex JSON object as payload. #2802 - Fixed issue with
Add-PnPListItemandSet-PnPListItemnot correctly setting the PurviewUnlocked by default. #2800 - Fixed issue with
Get-PnPListItemcmdlet not respectingRowLimitin the CAML query. #2804 - Fixed
Connect-PnPOnline -ManagedIdentity -UserAssignedManagedIdentityClientIdnot 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-PnPMailnot being able to send out e-mail due to the deprecation of basic authentication on Exchange Online #2880 - Fixed
Register-PnPAzureADAppcmdlet to not change or generate certificate if-CertificatePathparameter is already specified. #2878 - Fixed
New-PnPSitecmdlet to work with non-commercial cloud environments. - Fixed
Set-PnPSearchSettingscmdlet not working with vanity domain tenants #2884 - Fixed
Add-PnPFieldFromXmlcmdlet. It will now return the correct typed field if the added field was of typeTaxonomy. #2926 - Fixed
New-PnPSitetemplateFromFolderremoving 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
-DisableGridEditingoption toSet-PnPListwhich allows gridview editing to be enabled or disabled on a list #2188 - Added verbose logging for
Invoke-PnPSiteSwap,Restore-PnPTenantSiteand cmdlets which depend onSpoOperation. #2207 - Added support for
DisplayNamesOfFileViewersandDisplayNamesOfFileViewersInSpoproperties inGet-PnPTenantandSet-PnPTenantcmdlets to show/hide viewers in property pane for a file. #2271 - Added
MailEnabled,PreferredDataLocation,PreferredLanguageandSecurityEnabledparameters toNew-PnPMicrosoft365Groupcmdlet. #2268 - Added
-DraftVersionVisibilityparameter to theSet-PnPListcmdlet to specify draft item security for list items. #2285 - Added support for
-ErrorAction:Stopto 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.ErrorRecordexception instead. Remove the-ErrorAction:Stopparameter 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
IsLoopEnabledproperties inGet-PnPTenantandSet-PnPTenantcmdlets to to enable/disable loop components in the tenant. #2307 - Added support for
SubscribeMembersToCalendarEventsDisabledresource behavior option inNew-PnPMicrosoft365GroupandNew-PnPTeamsTeamcmdlet. #2349 - Added
-OneDriveRequestFilesLinkEnabledoption toSet-PnPTenantto allow configuring the request files anonymously feature on the tenant level #2360 - Added
-RequestFilesLinkEnabledoption toSet-PnPSiteto allow configuring the request files anonymously feature on a per site collection level #2360 - Added
ScriptSafeDomainNameoption toSet-PnPSiteto allow contributors to insert iframe from specified domains only. #2363 - Added
AlertTemplateNameparamter toAdd-PnPAlertto allow configuring the Alert Template type name in the email. #2362 - Added
Get-PnPAzureADActivityReportDirectoryAuditto retrieve the audit logs generated by Azure AD. #2095 - Added
-Pathoption toSet-PnPListwhich allows the url of a list to be changed within the same site #2381 - Added
-Forceoption toSet-PnPListemto force it to update a list item even without changing something. Can be useful in i.e. triggering a webhook. #2396 - Added
ImageUrl,PageImageAlignment,ImageHeightandImageWidthparameters toAdd-PnPPageTextPartcmdlet so that users can add an inline image into a text webpart. #2401 - Added
TextBeforeImageandTextAfterImageparameters toAdd-PnPPageTextPartcmdlet so that users can add before and after text for an inline image into a text webpart. #2403 - Added
Add-PnPPageImageWebPartcmdlet 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-PnPTeamsTagcmdlet to retrieve Team tags information. #2414 - Added
Propertiesattribute toUpdate-PnPVivaConnectionsDashboardACEto allow for updating the properties of a Viva Connections dashboard ACE component using its typed properties #2433 - Added
Set-PnPTeamsTagcmdlet to update Team tags information. #2419 - Added
Remove-PnPTeamsTagcmdlet to delete a Team tag. #2419 - Added
Disable-PnPPowerShellTelemetrycmdlet to disable telemetry collection. #2432 - Added
Enable-PnPPowerShellTelemetrycmdlet to enable telemetry collection. #2432 - Added
Get-PnPAzureADActivityReportSignIncmdlet 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-PnPSiteCollectionAppCatalogcmdlet. #2452 - Added support for the
EnableRestrictedAccessControlparameter toSet-PnPTenantandRestrictedAccessControlforSet-PnPSiteto restrict site access to members of a Microsoft 365 group. #2462 - Added
Set-PnPImageListItemColumncmdlet to support setting of the new image/thumbnail value for a SharePoint list item.#2468 - Added
-Filterparameter toGet-PnPTeamsTeamcmdlet to retrieve specific teams based on filter conditions. It supports simple and advanced queries. #2467 , #2474 - Added
Get-PnPMicrosoft365ExpiringGroupcmdlet to retrieve Microsoft 365 groups which are nearing expiration.#2466 - Added additional parameters to
Set-PnPContentTypecmdlet to support SPFx form customizer related properties.#2456 - Added
-Filterparameter toGet-PnPAzureADAppcmdlet to retrieve specific Azure AD apps based on filter conditions. It suppports simple and advanced queries. #2477 - Added
Get-PnPDeletedTeamcmdlet to retrieve all deleted Microsoft Teams teams #2487 - Added
-ServerRelativePathand-Pathparameters toSet-PnPImageListItemColumncmdlet to allow for file to be uploaded for the Image type column. #2503 - Added support for sovereign tenants in
Get-PnPTenandIdby utilizing the-AzureEnvironmentparameter. #2512 - Added
Set-PnPTeamsTeamPicturewhich 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-PnPAvailableSensitivityLabelcmdlet now uses the non-deprecated Graph API to retrieve sensitivity label. #2234- Improved
Get-PnPMicrosoft365Groupcmdlet to better check the Id, DisplayName and MailNickname of Microsoft 365 Group. #2258 - Improved
Get-PnPStorageEntitycmdlet whenKeyparameter is specified. #2275 - Improved
Get-PnPAuthenticationRealmcmdlet to useHTTP Clientinstead ofWebRequest. #2304 - Changed
Get-PnPRoleDefinitionso that it now also supports the role definition Id to be used with-Identityas well as the role definition name #2336 - Creating private Teams channels formerly using
Add-PnPTeamsChannel -Privateshould now useAdd-PnPTeamsChannel -ChannelType Privateinstead #2308 - Improved
Get-PnPAuthenticationRealmcmdlet to useHTTPClientinstead ofWebRequest. #2304 - Improved
Connect-PnPOnlinewith ACS method. Replace the usage ofWebRequestwithHTTPClient. #2352 - Improved
Remove-PnPFieldFromContentTypecmdlet to ensure proper null check for non-existing fields. It will now throw properField not founderror. #2407 - Changed the Microsoft 365 Groups cmdlets to use the
v1.0endpoint instead of thebeta#2426 - Changed
Add-PnPMicrosoft365GroupToSiteto longer require the-Urlparameter to be specified. If its not provided, the currently connected to site will be groupified. #2496
- Marked
-Resourceparameter fromGet-PnPAccessTokencmdlet as obsolete as it was not used anymore anyway. It will be removed in a future version. #2182 - Removed
-SystemUpdateoption fromSet-PnPListItemas it has been deprecated two years ago. Use-UpdateType SystemUpdateinstead #2396 - Removed
-Forceparameter fromNew-PnPTenantSite. It was marked obsolete and not used anymore in the code. - Removed
-BlockDownloadOfNonViewableFilesparameter fromSet-PnPTenantSitecmdlet. It was marked obsolete. Instead use-AllowDownloadingNonWebViewableFilesparameter. - Removed
-NoTelemetryand-NoVersionCheckparameters fromConnect-PnPOnlinecmdlet. They were marked obsolete. Instead you need to specifyPNP_DISABLETELEMETRYandPNPPOWERSHELL_UPDATECHECKas environment variable. - Removed
-Connectionparameter fromDisconnect-PnPOnlinecmdlet. For more information on how to deal with this, please read this documentation. - Removed
-Webparameter support for cmdlets that are currently using it. Instead you should useConnect-PnPOnlineto connect to a specific Web instance like a sub-site or a site under a sub-site. - Removed
-Resourceparameter fromGet-PnPAccessTokencmdlet. It was marked as obsolete and not used anymore. - Removed
-SkipSourceFolderNameparameter fromCopy-PnPFilecmdlet. It was marked as obsolete and not used anymore. - Removed
-ExcludeSiteUrl,-IncludeClassificationand-IncludeHasTeamparameters fromGet-PnPMicrosoft365Groupcmdlet. They were marked as obsolete. The site URL(s) are excluded by default, instead use-IncludeSiteUrlparameter if you want to retrieve site URL(s). The classification will always be retrieved. TheHasTeamvalue is always retrieved. - The
UserTypeandEnvironmentproperties will not be retrieved when usingGet-PnPFlowandRemove-PnPFlowcmdlets. They were marked as obsolete. You should usedProperties.Creator.UserTypeandEnvironmentDetailsinstead. - The
OnlyAllowMembersViewMembershipandSetAssociatedGroupparameters have been removed. They were already marked as obsolete. You should use-DisallowMembersViewMembershipparameter to disallow group members viewing membership and useSet-PnPGroupcmdlet to set groups as associated groups. - Removed
-Ownerparamter fromNew-PnPTeamsTeamcmdlet. It was marked as obsolete. You should instead use-Ownersparameter. - Removed support for
2019-03version of the PnP Provisioning Schema fromConvert-PnPSiteTemplate,New-PnPSiteTemplateFromFolderand 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
-NoBaseTemplateparameter fromGet-PnPSiteTemplatecmdlet. It was marked as obsolete. It will not use the default web base template of the connected site. - Removed
-Privateparameter fromAdd-PnPTeamsChannelcmdlet. It was marked as obsolete. You should useTeamMembershipTypeparameter instead.
- Fixed issue where passing in
-ConnectiontoDisconnect-PnPOnlinewould throw an exception #2093 - Fixed
Get-PnPSiteSearchQueryResultsthrowingValue cannot be nullexception #2138 - Fixed
New-PnPUPABulkImportJobnot returing the job Id #2144 - Fixed
Get-PnPSiteCollectionAppCatalogthrowing an exception when the site was deleted #2201 - Fixed
Set-PnPTermGroupthrowing an exception even when the group existed. #2232 - Fixed
Remove-PnPFilecmdlet parameter set error. #2230 - Fixed
Get-PnPAccessTokencmdlet to be able to work with different site collections as well as require an actual connection first. #2270 - Fixed
Copy-PnPListcmdlet to be able to copy the list structure to the destination web. #2313 - Fixed
Add-PnPFieldcmdlet , it was throwing null reference error when-Typewas not specified and after the prompt you entered the correct type. #2338 - Fixed regression issue with
New-Microsoft365Groupcmdlet. #2349 - Fixed issue with
Add-PnPTaxonomyField, it was throwing error when using-TaxonomyItemIdparameter. #2351 - Fixed
Import-PnPTermGroupFromXmlissue where a valid template was not working. #2353 - Fixed
Set-PnPTenantcmdlet not working when-Forceparameter is specified. #2373 - Fixed
Add-PnPTeamsTabcmdlet not working with certain types when using dynamic parameters. #2405 - Fixed
Get-PnPVivaConnectionsDashboardACEmissing theisVisibleproperty underCardButtonActionscausing usingUpdate-PnPVivaConnectionsDashboardACEto hide card buttons [#2433](pnp#2433 - Fixed issue with
Set-PnPTeamsChannel -IsFavoriteByDefaultthrowing aNullable object must have a valueunder certain circumstances #2425 - Fixed
Register-PnPManagementShellAccessfor 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-PnPTenantServicePrincipalnot respecting-Forceparameter. #2448 - Fixed issue with
Get-PnPRecycleBinItemnot 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-PnPRecycleBinItemcmdlet not working with-RowLimitparameter. #2499 - Fixed cmdlets throwing error when
-ErrorAction SilentlyContinuewas specified. #2510 - Fixed
Get-PnPAzureADAppSitePermissionnot returning the roles assigned to each permission #2523 - Fixed
Add-PnPListItemcmdlet issue when using-Batchcmdlet, we were not able to set the SharePoint group in people or group fields. [#2879] (pnp#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
-Waitand-Verboseoptional paramarers toNew-PnPUPABulkImportJob#1752 - Added
Add-PnPTeamsChannelUserwhich allows members and owners to be added to private channels in Teams #1735 - Added
Channelparameter toAdd-PnPTeamsUsercmdlet 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
ResourceBehaviorOptionsoption inNew-PnPMicrosoft365Groupcmdlet to setResourceBehaviorOptionswhile provisioning a Microsoft 365 Group. #1774 - Added
Add-PnPTeamsChannelUserwhich allows members and owners to be added to private channels in Teams #1735 - Added
ExcludeVisualPromotedResultsparameter toGet-PnPSearchConfigurationwhich excludes promoted results #1750 - Added
MediaTranscriptionparameter toSet-PnPTenantSiteandSet-PnPSitecmdlets which when enabled allows videos to have transcripts generated on demand or generated automatically in certain scenarios. - Added
-SensitivityLabelsparameter toNew-PnPTeamsTeamandNew-PnPMicrosoft365Groupcmdlets to apply sensitivity label to the Microsoft 365 Group and Team. - Added
-SensitivityLabelsparameter toSet-PnPMicrosoft365Groupcmdlets to apply sensitivity label to the Microsoft 365 Group and Team. - Added
MediaTranscriptionparameter toSet-PnPTenantSiteandSet-PnPSitecmdlets which when enabled allows videos to have transcripts generated on demand or generated automatically in certain scenarios - Added
Get-PnPTeamsChannelFilesFoldercmdlet to retrieve metadata for the location where files of a Teams channel are stored. #1799 - Added
Get-PnPVivaConnectionsDashboardACEto retrieve the Adaptive Card extensions from the Viva connections dashboard page. #1805 - Added
Add-PnPVivaConnectionsDashboardACEto add an Adaptive Card extension to the Viva connections dashboard page. #1805 - Added
Update-PnPVivaConnectionsDashboardACEto update an Adaptive Card extension in the Viva connections dashboard page. #1805 - Added
Remove-PnPVivaConnectionsDashboardACEto remove an Adaptive Card extension in the Viva connections dashboard page. #1805 - Added
Acceptparameter toInvoke-PnPSPRestMethodcmdlet which if specified will pass the Accept HTTP request header. #1795 - Added
Get-PnPFlowRuncmdlet to retrieve a specific run, or all runs from a specific Power Automate flow. #1819 - Added
Invoke-PnPGraphMethodcmdlet to invoke generic Microsoft Graph API Methods. #1820 - Added
TimeZoneparameter toNew-PnPSitecmdlet which allows setting of the site collection in the specified timezone. - Added
Stop-PnPFlowRuncmdlet to stop/cancel a specific Power Automate flow run. #1838 - Added
Remove-PnPTeamsChannelUsercmdlet to remove a user from a private channel. #1840 - Added
Get-PnPListItemPermissioncmdlet to retrieve item level permissions. #1534 - Added
Get-PnPTeamsChannelMessageReplyto retrieve all replies or a specific reply of a message in a Teams channel #1885 - Added
-Identityparameter toGet-PnPTeamsChannelMessagecmdlet to retrieve a specific message #1887 - Added new
PnP.PowerShellimage which also gets published to Docker Hub. #1580 - Added capability to Debug the module in Visual Studio. #1880
- Added
Set-PnPTeamsChannelUsercmdlet to update the role of user in a private channel. #1865 - Added
Restart-PnPFlowRunwhich allows for a failed Power Automate flow run to be retried #1915 - Added optional
-Connectionparameter toGet-PnPConnection,Get-PnPContextandSet-PnPContextwhich allows for using any of these for a specific connection #1919 - Added
-IncludeDeprecatedparameter toGet-PnPTermcmdlet to fetch deprecated terms if specified #1903 - Added
-IncludeContentTypeparameter, which if specified will retrieve content type information of the list items. #1921 - Added optional
-ValidateConnectiontoConnect-PnPOnlinewhich will check if the site you are connecting to exists and if not, will throw an exception #1924 - Added
-Descriptionand-PrioritytoSet-PnPPlannerTask#1947 - Added
AllowTenantMoveWithDataMigrationtoGet-PnPPlannerConfigurationandSet-PnPPlannerConfiguration#1934 - Added the ability to retrieve a Planner plan by only its Id using
Get-PnPPlannerPlan -Identity <id>#1935 - Added
Add-PnPListItemAttachmentcmdlet to provide ability to upload a file as an attachment to a SharePoint list item. #1932 - Added
Remove-PnPListItemAttachmentcmdlet to provide ability to delete a list item attachment. #1932 - Added
Get-PnPListItemAttachmentcmdlet to download the attachments from a list item. #1932 - Added
-ReturnTypedparameter toGet-PnPFieldcmdlet so that it returns specific type instead of the generic field type. #1888 - Added
Add-PnPViewsFromXMLcmdlet to create one or more views in a list based on an XML string. #1963 - Added
-ExemptFromBlockDownloadOfNonViewableFilesparameter toSet-PnPListcmdlet to configure access capabilites for unmanaged devices at list level. #1973 - Added
-PercentComplete,-Priority,-StartDateTime,-DueDateTimeand-DescriptiontoAdd-PnPPlannerTask#1964 - Added
Set-PnPContentTypecmdlet to update the properties of the Content Types in a list or a web. #1981 - Added
-SharingCapabilityparameter to theNew-PnPTenantSitecmdlet to update the Sharing capabilties of the newly provisioned classic site collection. #1994 - Added optional
-IncludeAllListstoGet-PnPSiteScriptFromWebwhich will include the JSON definition of all custom lists of the current site in the output #1987 - Added
-UpdateChildrenparameter toAdd-PnPFieldToContentTypecmdlet. This allows users to skip pushing the fields to child content types. #1992 - Added optional
-SensitivityLabeltoSet-PnPSitewhich allows for a Microsoft Purview sensitivitylabel to be set #2024 - Added
-UpdateChildrenparameter toAdd-PnPFieldToContentTypecmdlet. This allows users to skip pushing the fields to child content types. #1092 - Added
Get-PnPAvailableSensitivityLabelcmdlet to retrieve Microsoft Purview sensitivity labels available on the tenant #2023 - Added
Get-PnPSiteSensitivityLabelcmdlet to retrieve the Microsoft Purview sensitivity label set on the current site #2036 - Added
Set-PnPSiteClassificationcmdlet which allows setting a classic site classification on the current site #2036 - Added
Set-PnPSiteSensitivityLabelcmdlet which allows setting a Microsoft Purview sensitivity label on the current site #2036 - Added
Remove-PnPSiteSensitivityLabelcmdlet which allows removing the Microsoft Purview sensitivity label from the current site #2036 - Added
Get-PnPSensitivityLabelcmdlet to retrieve Microsoft Purview sensitivity labels available on the tenant #2023 - Added
Get-Microsoft365GroupYammerCommunitycmdlet to retrieve details on the Yammer Community connected to a Microsoft 365 Group #2038 - Added
Get-Microsoft365GroupTeamcmdlet to retrieve details on the Microsoft Teams team connected to a Microsoft 365 Group #2038 - Added
Get-Microsoft365GroupEndpointscmdlet to retrieve details on all endpoints connected to a Microsoft 365 Group #2038 - Added
-ExcludeDeletedSitesoptional parameter toGet-PnPSiteCollectionAppCatalogswhich allows for site collections with App Catalogs that are in the recycle bin to be exluded from the results #2044 - Added
-CurrentSiteoptional parameter toGet-PnPSiteCollectionAppCatalogswhich allows for checking if the currently connected to site has a site collection App Catalogs provisioned on it #2044 - Added
ExternalUserExpirationRequiredandExternalUserExpireInDaysparameters toSet-PnPTenantcmdlet to handle expiration policy for External users.
- Changed
Sync-PnPSharePointUserProfilesFromAzureActiveDirectoryto map users based on their Ids instead which should resolve some issues around user identities reporting not to exist. You can use the new-IdTypeoption to switch it back toPrincipalNameif needed. #1752 - Changed
Add-PnPFieldnow returns specific type taxonomy field type instead of the generic type. #1888 - Changed
Get-PnPOrgAssetsLibraryto 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-PnPListItemandRemove-PnPPagewill 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-PnPPlannerBucketto return the buckets in the correct (reversed) order as you see them through the web interface #1922 - Changed
Connect-PnPOnline -InteractiveandConnect-PnPOnline -DeviceLoginto no longer suppress errors which should allow for certificate logins to be used. #1933 Set-PnPTeamsChannelnow 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 -Credentialsnow throwing a clear exception when making a typo in the hostname instead of getting stuck #686 - Renamed
Get-PnPSiteClassificationtoGet-PnPAvailableSiteClassificationto 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-PnPSiteClassificationtoAdd-PnPAvailableSiteClassificationto 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-PnPSiteClassificationtoUpdate-PnPAvailableSiteClassificationto 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-PnPSiteClassificationtoRemove-PnPAvailableSiteClassificationto 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-PnPHubSiteChildto have its-Identityparameter 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-PnPTenantSitecmdlet so that it will return data even if the template name is specified in a different case. #1773 - Fixed
Add-PnPDocumentSetcmdlet so that it will support Document Set Content Type Id specified at the web level. #1796 - Fixed
Get-PnPGroup,Get-PnPGroupPermissionsandSet-PnPGroupPermissionscmdlets by making them more consistent. They will also throw error if a group is not found. #1808 - Fixed
Get-PnPFileissue with every 3rd file download in PS 5. - Fixed
Add-PnPContentTypesFromContentTypeHub, ifSiteparameter 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-Batchparameter 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-PnPSPRestMethodinvalid parsing for SharePoint number columns. #1877 - Fixed issue with
Add/Set-PnPListItemnot throwing correct exception for invalid taxonomy values. #1870 - Fixed
Sync-PnPSharePointUserProfilesFromAzureActiveDirectorythrowing 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 -ReturnConnectionalso setting the current connection instead of just the returned connection #1919 - Fixed
Disconnect-PnPOnline -Connectionalso disconnecting other connections next to the provided connection #1919 - Fixed
Set-PnPContextnot 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-Channelis now not required. #1953 - Fixed
Get-PnPPlannerTaskthrowing an object reference exception for completed tasks #1956 - Fixed
Get-PnPUserOneDriveQuotareturning the maximum possible quota instead of the actual configured quota on a OneDrive for Business site #1902 - Fixed
Get-PnPFilethrowing an exception when trying to download a file containing the plus character #1990 - Fixed
Get-PnPTeamsChannelnot working correctly with PowerShell select. #1988 - Fixed
Update-PnPSiteClassification, it was ignoring theSettingsparameter. It will now be processed. #1989 - Fixed
Register-PnPAzureADAppissue with app creation after the connection related changes. #1993 - Fixed
Get-PnPFileVersionnot able to correctly use piping on the returned object. #1997 - Fixed
Add-PnPListItemnot showing field name when it has an improper value assigned to it #2002 - Fixed
Update-PnPSiteClassificationnot allowing the-UsageGuidelinesUrlto be set without also setting-DefaultClassification#2036 - Fixed the browser consent dialog throwing an exception when trying to close it #2037
- Fixed
Get-PnPHubSiteChildthrowing an exception when passing in a URL that is actually not a hub site #2033 - Fixed
Add-PnPListItemnot showing field name when it has an improper value assigned to it #2002 - Fixed connecting using
Connect-PnPOnline -Interactive -ClientIdnot working well when already having an App-Only connection using the same ClientId #2035 - Fixed
Get-PnPSiteCollectionAppCatalognot 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-PnPListthrowing an unauthorized exception when using it with a non SharePoint Online administrator user #2054
- Removed
Get-PnPAvailableClientSideComponents. UseGet-PnPPageComponent -Page -ListAvailableinstead. #1833 - Removed
NextLinkproperty fromGet-PnPAzureADUsercmdlet, as it was causing confusion. #1930 - Deprecated the
-Connectionparameter ofDisconnect-PnPOnlinecmdlet, 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-PnPMicrosoft365GroupMembersuch asuserType#1474 - Added
Update-PnPTeamsUsercmdlet to change the role of a user in an existing Teams team #1499 - Added
Get\New\Remove\Set-PnPMicrosoft365GroupSettingscmdlets to interact with Microsoft 365 Group settings. - Added
Get-PnPMicrosoft365GroupSettingTemplatescmdlet to retrieve system wide Microsoft 365 Group setting templates. - Added
Add\Remove\Invoke\Get-PnPListDesigncmdlets to add a list design, remove a list design and apply the list design. - Added
DisablePersonalListCreationparameter toSet-PnPTenantcmdlet to provide ability to disable personal lists creation #1545 - Added
DisabledModernListTemplateIdsandEnableModernListTemplateIdsparameters toSet-PnPTenantcmdlet to provide ability to disable or enable modern lists with specific Ids #1545 - Added
DisablePersonalListCreationandDisabledModernListTemplateIdsvalues to be displayed when usingGet-PnPTenantcmdlet #1545 - Added
Add\Remove\Set-PnPAdaptiveScopePropertycmdlets 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-PnPTeamsTeamcmdlet #1241 - Added the ability to set the title of a new modern page in SharePoint Online using
Add-PnPPageto be different from its filename by using-Title - Added optional
-UseBetaparameter toGet-PnPAzureADUserto 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
-Contentoption toAdd-PnPFilewhich 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-PnPTeamsPrimaryChannelto get the primary Teams channel, general, of a Team #1572 - Added
IgnoreDefaultPropertiesparameter toGet-PnPAzureADUserto allow for the default properties not to be retrieved but instead just the ones you specify usingSelect#1575 - Added
Publish\Unpublish-PnPContentTypeto allow for content types to be published or unpublished on hub sites #1597 - Added
Get-PnPContentTypePublishingStatusto get te current publication state of a content type in the content type hub site #1597 - Added ability to pipe the output of
Get-PnPTenantDeletedSiteto eitherRestore-PnPTenantDeletedSiteorRemove-PnPTenantDeletedSite#1596 - Added
Rename-PnPTenantSiteto rename a SharePoint Online site URL #1606 - Added optional
-Waitoption toSync-PnPSharePointUserProfilesFromAzureActiveDirectoryto allow for the script to wait until the user profile sync has completed - Added optional
-Verboseoption toSync-PnPSharePointUserProfilesFromAzureActiveDirectoryto allow for seeing the progress of the synchronization process - Added
Copy-PnPTeamsTeamwhich allows an existing Teams team to be copied into a new Team #1624 - Added
Set-PnPMessageCenterAnnouncementAsReadwhich allows setting one or more message center announcements as read for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsUnreadwhich allows setting one or more message center announcements as unread for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsArchivedwhich allows setting one or more message center announcements as archived for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsNotArchivedwhich allows setting one or more message center announcements as not archived for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsFavoritewhich allows setting one or more message center announcements as favorite for the current user #1151 - Added
Set-PnPMessageCenterAnnouncementAsNotFavoritewhich allows setting one or more message center announcements as not favorite for the current user #1151 - Added
-AsMemoryStreamoption toGet-PnPFileto allow for downloading of a file from SharePoint Online in memory for further processing #1638 - Added
-Streamoption toRead-PnPSiteTemplateto allow for processing on a PnP Provisioning Template coming from memory #1638 - Added
New-PnPAzureADUserTemporaryAccessPasswhich allows creation of a Temporary Access Pass for a specific user in Azure Active Directory - Added
-Forceoption toSet-PnPTenantto allow skipping the confirmation question for certain other parameters likeSignInAccelerationDomain,EnableGuestSignInAcceleration,BccExternalSharingInvitations,OrphanedPersonalSitesRetentionPeriod,OneDriveForGuestsEnabled,AllowDownloadingNonWebViewableFiles. - Added
Get-PnPCompatibleHubContentTypeswhich 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-PnPTeamsUsercmdlet. The cmdlet executes faster and we can now add users in batches of 200. #1548 - The
Move\Remove\Rename-PnPFoldercmdlets 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-PnPSharePointUserProfilesFromAzureActiveDirectoryto return our own entity instead of the one returned by CSOM #1559 - Changed running
Sync-PnPSharePointUserProfilesFromAzureActiveDirectorywith-WhatIfto 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-PnPAzureADUserto 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 -Identityno 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 -UseWebLoginto no longer suppress errors which should allow for certificate logins to be used #1706 - The cmdlet
New-PnPTeamsTeamno 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-PnPUPABulkImportJobby optimizing it and also adding support forWhatIfparamater. #2040
- Fixed
Set-PnPSitenot working withDisableCompanyWideSharingLinksparameter. - Fixed
Get-PnPListPermissionsreturning wrong information in case of broken inheritance. - Fixed
Submit-PnPSearchQuery -Query "somequery"yielding an error when no results #1520 - Fixed
Set-PnPTenantSitenot setting SharingCapability property correctly. - Fixed
Get-PnPMicrosoft365Groupretrieving non-Unified groups when parameters are not specified. - Fixed
Get-PnPRecycleBinListItemnot retrieving second stage items if onlyRowLimitis specified. - Fixed
Add-PnPDataRowsToSiteTemplateissue with PnP templates when it contained multilingual references. - Fixed
Copy-PnPItemProxyis not recognized as the name of a cmdlet, function, script file, or operable program error with the cmdlet. - Fixed
Add-PnPMicrosoft365GroupMember,Remove-PnPMicrosoft365GroupMember,Add-PnPTeamsUserandRemove-PnPTeamsUsernot being able to handle guest accounts containing # characters #1523 - Fixed not being able to pipe
Get-PnPHubSitetoGet-PnPHubSiteChildto retrieve all site collections which are associated to any hub site #1571 - Fixed
Add-PnPFileToSiteTemplatewhen used alongsideGet-PnPFilewhere 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-PnPMessageCenterAnnouncementreturning an error #1607 - Fixed
New-PnPTeamsTeamissue 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-PnPSharePointUserProfilesFromAzureActiveDirectorywould not correctly sync characters which are not part of the Western European encoding (iso-8859-1) - Fixed an issue where
Sync-PnPSharePointUserProfilesFromAzureActiveDirectorywould not correctly sync user profiles if a value contained a backslash () #1711
- Removed
Add-PnPClientSidePageSection, useAdd-PnPPageSectioninstead #1563 - Removed
Add-PnPClientSideWebPart, useAdd-PnPPageWebPartinstead #1563 - Removed
Add-PnPClientSideText, useAdd-PnPPageTextPartinstead #1563 - Removed
Get-PnPAADUser, useGet-PnPAzureADUserinstead #1568 - Removed
Get-PnPOffice365CurrentServiceStatus,Get-PnPOffice365HistoricalServiceStatus,Get-PnPOffice365ServiceMessageandGet-PnPOffice365Servicesas Microsoft has removed the underlying Office Management APIs. UseGet-PnPMessageCenterAnnouncent,Get-PnPServiceCurrentHealthandGet-PnPServiceHealthIssueinstead. #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-PnPTenantInstancewhich will return one or more tenant instances, depending if you have a multi-geo or single-geo (default) tenant. - Added optional
-ScheduledPublishDateparameter toAdd-PnPPageandSet-PnPPageto allow for scheduling a page to be published - Added
-RemoveScheduledPublishtoSet-PnPPageto 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
-OffPeakand-Folderparameters forRequest-PnPSyntexClassifyAndExtract - Added
Get\Set-PnPPlannerConfigurationto allow working with the Microsoft Planner tenant configuration - Added
Get\Set-PnPPlannerUserPolicyto allow setting Microsoft Planner user policies for specific users - Added
Get\Add\Remove-PnPPlannerRosterwhich allows a Microsoft Planner Roster to be created, retrieved or removed - Added
Get\Add\Remove-PnPPlannerRosterMemberto be able to read, add and remove members from a Microsoft Planner Roster - Added
Get-PnPPlannerRosterPlanto 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
-OffPeakand-Folderparameters forRequest-PnPSyntexClassifyAndExtract - Added
Invoke-PnPSiteScriptwhich 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-PnPListwhich 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-PnPWebHeaderto work with the Change the look > Header options of a site - Added
Enable-PnPPageSchedulingandDisable-PnPPageSchedulingto enable or disable page publishing scheduling on modern pages - Added ability to add multiple users to a Teams team in the
Add-PnPTeamsUsercmdlet - Added
-Credentials $credor-CurrentCredentialsto be allowed to be used in combination withConnect-PnPOnline -SPOManagementshell - Added
-InformationBarriersModein theSet-PnPTenantSitecmdlet which allows fine tuning of the information barriers mode per site collection - Added
-InformationBarriersSuspensionin theSet-PnPTenantcmdlet which allows information barriers to be enabled or disabled in a tenant - Added
-Recycleparameter toRemove-PnPPageto delete the page and send it to the recycle bin. This prevents permanently deleting the page and you can also restore it. - Added
-DemoteNewsArticleparameter to theSet-PnPPagecmdlet to demote an existing news post to a regular page. - Added
-Translateand-TranslationLanguageCodesparameters toSet-PnPPageandAdd-PnPPage. This enables multilingual page creation in sites. - Added
DisableSpacesActivationstate to be returned withGet-PnPTenant - Added
-AllowFilesWithKeepLabelToBeDeletedSPOand-AllowFilesWithKeepLabelToBeDeletedODBoptions toSet-PnPTenantwhich 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
DisableAddToOneDrivestate to be returned withGet-PnPTenantcmdlet. - Added
-DisableAddToOneDrivetoSet-PnPTenantcmdlet to enable/disable users from adding shortcuts to OneDrive. - Added optional
-Siteparameter toAdd-PnPContentTypesFromContenTypeHubwhich allows a specific site to be specified to add the content type hub content types to - Added
Set-PnPBuiltInSiteTemplateSettingsandGet-PnPBuiltInSiteTemplateSettingsto 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-PnPSiteDesignandAdd-PnPSiteDesignFromWeb - Added optional
-IsDefaultoption toGet-PnPPowerPlatformEnvironmentwhich 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
ResourceBehaviorOptionsoption inNew-PnPTeamsTeamcmdlet to setResourceBehaviorOptionswhile provisioning a Team - Added alias on
Copy-PnPFileforCopy-PnPFolder. It could already be used to copy a folder, but to make this more clear, and as we already had aCopy/Move-PnPFolderas well, the same cmdlet is now also available under its alternative cmdlet name. - Added
IsFluidEnabledstate to be returned withGet-PnPTenantcmdlet. - Added
-IsFluidEnabledtoSet-PnPTenantcmdlet to enable/disable users from using Fluid components. - Added
Add\Get\Remove-PnPListItemCommentcmdlets to deal with list item comments. Using these cmdlets, you will now be able to add, retrieve and delete list item comments. #1462 - Added
-ResourceTypeNameand-ResourceUrlparameters toGet-PnPAccessTokento fetch access token of specified resource. #1451 - Added
-BookmarkStatusparameter toGet-PnPSearchConfigurationcmdlet to call REST endpoint to fetch promoted results defined via query rules and output them in Bookmark supported CSV format.
- Improved
Get-PnPFilecmdlet to handle large file downloads - Updated
Sync-PnPSharePointUserProfilesFromAzureActiveDirectoryto also allow results fromGet-PnPAzureADUser -Deltato be provided through-Users. - A clearer error message will now be returned when using
Add-PnPListItem -Listand specifying an invalid list name. - Response of
Add-PnPContentTypesFromContenTypeHubis 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-PnPUserTypecmdlet. - Improved documentation of
Add-PnPField, reflects the missing-AddToAllContentTypesparameter. - Improved documentation of
Get-PnPTaxonomyItemwith 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 -Usernot properly returning the specified user - Fixed group member retrieval through
Get-PnPAzureADGroupOwnerandGet-PnPAzureAdGroupMemberthrowing an exception when a security group has been placed in the Azure Active Directory group being queried - Fixed an issue where
Set-PnPPagewould not be able to find a page if you would start the-Identitywith a forward slash - Fixed an issue where
Set-PnPPagewould not return its parent Folder - Fixed
Set-PnPListItemnot working when usingLabelandValuesparameters together - Fixed documentation for
Get-PnPFlowandEnable-PnPFlowcmdlets - Fixed issue with
Add-PnPListFoldersToProvisioningTemplatenot working when having nested folder structure - Fixed documentation for
Get-PnPFlowandEnable-PnPFlowcmdlets - Fixed
Sync-PnPSharePointUserProfilesFromAzureActiveDirectorynot being able to deal with multi value properties on the Azure Active Directory side, such asBusinessPhones - Fixed
Add-PnPListItemissue with setting MultiChoice columns when using-Batchparameter - Fixed issue with
Remove-PnPListItemwhen trying to use it withBatchparameter - Fixed
Add-PnPDataRowsToSiteTemplatenot exporting TaxonomyFieldValues properly - Fixed
Add/Set-PnPListItemissue with managed metadata / taxonomy field value failing in a batched request. - Fixed
Set-PnPListItemissue with settingModifieddate value properly when using-Batchparameter. - Fixed
Get-PnPTeamsTeam -Identitythrowing an exception if the name of the team would contain special characters - Fixed
Get-PnPTermthrowing an exception when used in combination with-Includes#1384 - Fixed
Get-PnPDiagnosticsthrowing an unable to cast exception under some circumstances #1380 - Fixed
Get-PnPTeamsTabissue with missing TeamsApp object values. It will now populate TeamsApp object with Id, DisplayName, ExternalId and DistributionMethod properties if available. #1459
- Removed
Add-PnPClientSidePageas that was marked deprecated. UseAdd-PnPPageinstead. - Removed
Get-PnPSubWebsas that was marked deprecated a year ago. UseGet-PnPSubWebinstead. #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-PnPListItemwithGet-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-PnPServiceCurrentHealthandGet-PnPServiceHealthIssuecmdlets which pull their data out of the Microsoft Graph API and are replacing the formerGet-PnPOffice365CurrentServiceStatus,Get-PnPOffice365HistoricalServiceStatusandGet-PnPoffice365ServiceMessagecmdlets 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 -StopNew2013Workflowsand 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 -ViewInFileExplorerEnabledand 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
-VerbosewithExport-PnPFlowso 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
-Urlparameter toNew-PnPUPABulkImportJobwhich allows providing a URL to an existing SharePoint User Profile import mapping instruction file stored on SharePoint Online - Added
Add-PnPSiteDesignFromWebwhich combinesGet-PnPSiteScriptFromWeb,Add-PnPSiteScriptandAdd-PnPSiteDesigninto 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-PnPSiteDesignFromWebwhich combinesGet-PnPSiteScriptFromWebandSet-PnPSiteScriptinto 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-PnPSharePointUserProfilesFromAzureActiveDirectorycmdlet 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-PnPFlowEnvironmenttoGet-PnPPowerAutomateEnvironment - Changed
Get-PnPSiteScriptFromWebto get a site script of the currently connected to site if-Urlis omitted. - Improved
Find-PnPFileerror message Get-PnPFileVersioncmdlet documentation improved with additional example.Add-PnPNavigationNodecmdlet documentation improved with additional example feature which shows how to add a navigation node as a label.- Changed
Get-PnPSiteDesignandInvoke-PnPSiteDesignto when providing a name through-Identityto be able to work with all site designs having that same name instead of just the first one - Changed
Set-PnPListItemPermissionto support piping in a roledefinition for-AddRoleand-RemoveRole - Changed that
Get-PnPSiteScript -Identitynow also works with the site script name instead of just the site script Id - Changed that
Get-PnPUnifiedAuditLogreturns the error being returned by the Office Management API service, in case something goes wrong #1631
- Fixed
Get-PnPChangeLog -Nightlynot returning anything - Fixed issue with
Get-PnPUser -Identity xignoring 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-PnPExceptionthrowing an exception and not showing the last exception if the last cmdlet throwing an exception used-ErrorAction Stop - Fixed
Get-PnPException -Allthrowing 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-PnPSiteScriptFromWebrequiring 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-PnPRoleDefinitionto i.e. filter by RoleTypeKind. - Fixed an issue with several PnP PowerShell cmdlets such as
Get-PnPTeamsUserwhere not all results would be returned - Fixed issue with
Remove-PnPSiteDesign -Identitynot accepting a site design name, only a GUID. - Fixed issue with
Get-PnPUPABulkImportStatuswhere it did not allow you to pipe its output to i.e. get the most recent one usingSelect -Latest 1or the ones that failed using? State -ne "Succeeded" - Fixed an issue where running
Get-PnPSiteDesign -Identitypassing in an identifier that did not exist would return an exception #1622
- Removed
ConvertTo-PnPClientSidePagecmdlet as it has been replaced byConvertTo-PnPPagethis 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-PnPUserToGroupas it has been replaced byAdd-PnPGroupMember - Removed
Get-PnPGroupMemberscmdlet alias and related warning. The cmdletGet-PnPGroupMember(singular) is available. - Removed
Remove-PnPUserFromGroupcmdlet alias and related warning. The cmdletRemove-PnPGroupMemberis available. - Removed
Initialize-PnPPowerShellAuthenticationcmdlet alias and related warning. The cmdletRegister-PnPAzureADAppis 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
-DisableBackToClassicoption to Set-PnPTenant
- [thomassmart]
- Bert Jansen [jansenbe]
- Added
Request-PnPSyntexClassifyAndExtractcmdlet to request classification and extraction of a file or all files in a list - Added
Get-PnPSyntexModelcmdlet to list the defined SharePoint Syntex models in a SharePoint Syntex content center site - Added
Publish-PnPSyntexModelcmdlet to publish a SharePoint Syntex model to a library - Added
Unpublish-PnPSyntexModelcmdlet to unpublish a SharePoint Syntex model from a library - Added
Get-PnPSyntexModelPublicationcmdlet 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
-IncludeOwnerstoGet-PnPMicrosoft365Group. - Added
-AssignedTotoAdd-PnPPlannerTaskandSet-PnPPlannerTaskallowing you to assign users to a task. - Added
Get-PnPAzureADApp,Get-PnPAzureADAppPermissionandRemove-PnPAzureADAppto manage Azure AD apps. - Added All Graph permissions and all SharePoint permissions for selection to
Register-PnPAzureADApp. - Added
-Templateparameter 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-PnPAzureADAppSitePermissionandRevoke-PnPAzureADAppSitePermission - Added
-SkipHiddenWebPartsparameter to theConvertTo-PnPPagecmdlet 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-PnPAzureADAppregistration to by default turn on the ability to authenticate with credentials for a newly created Azure App registration (allowPublicClient: true). - Refactored
Register-PnPAzureADApp. Marked-Scopesas obsolete and introduced-GraphApplicationPermissions,-GraphDelegatePermissions,-SharePointApplicationPermissionsand-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
-HideTitleInHeaderparameter toSet-PnPWebto hide or show the title in the header. Use-HideTitleInHeaderto hide it and-HideTitleInHeader:$falseto show it. - Added
-ShowContentUrlparameter toRegister-PnPManagementShellAccessretrieve the url to consent to the PnP Management Shell application by an administrator. - Added
-IsFavoriteByDefaultparameter on Set-PnPTeamsChannel and Add-PnPTeamsChannel - Added
-GroupIdDefinedboolean parameter to Get-PnPTenantSite to allow filtering on sites which belong to a Microsoft 365 Group - Added
-Interactivelogin option toConnect-PnPOnlinewhich is similar to-UseWebLoginbut without the limitations of the latter. The-UseWebLoginis using cookie based authentication towards SharePoint and cannot access Graph tokens. Using-Interactivewe 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-PnPOnlinewith a certificate. - Fixed issues with
Register-PnPAzureADAppwhen using the various auth options (-DeviceLogin / -Interactive) - Renamed the
-PnPManagementShelloption to-DeviceLoginonConnect-PnPOnline.-PnPManagementShellis still available as an alias. - Added
-ClientIdoption to-DeviceLoginallowing device code authentication with custom app registrations. - Changed
-Urlparameter on Get-PnPTenantSite and Set-PnPTenantSite to-Identity. Made-Urlavailable as an alias. - Updated
Set-PnPTenantSiteto support same parameters asSet-SPOSite - Updated
Get-PnPTenantSiteto return same properties asGet-SPOSite - Fixed issue where
-InteractiveonConnect-PnPOnlinewould 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-PnPListItemto have anUpdateTypeparameter. ObsoletedSystemUpdate. Also updated the backend logic so can now also specifyUpdateOverwriteVersionto update the editor, author, modified and created fields. Register-PnPAzureADAppnow 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
-Interactivelogin 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 -Identitywill not by default load the site url. Specify-IncludeSiteUrlto include it.
- Mike Jensen [michael-jensen]
- Koen Zomers [koenzomers]
- Gautam Sheth [gautamdsheth]
- Todd Klindt [ToddKlindt]
- Giacomo Pozzoni [jackpoz]
- Added
-NoWaitswitch toCopy-PnPFileandMove-PnPFile - Added
Receive-PnPCopyMoveJobStatuscmdlet which works in combination with the-NoWaitparameter onCopy-PnPFileandMove-PnPFile. See the documentation for usage.
- Fixed issue with
Invoke-PnPSPRestMethodto throw an non authorized exception in certain scenarios. - Fixed issue with using
-UseWebLoginand 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-PnPFileandMove-PnPFile - Updated
Get-PnPTenantSiteto support-DisableSharingForNonOwnersStatus
- Added
-NoWaitswitch toCopy-PnPFileandMove-PnPFile - Added
Receive-PnPCopyMoveJobStatuscmdlet which works in combination with the-NoWaitparameter onCopy-PnPFileandMove-PnPFile. See the documentation for usage.
- Fixed issue with
Invoke-PnPSPRestMethodto throw an non authorized exception in certain scenarios. - Fixed issue with using
-UseWebLoginand 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-PnPFileandMove-PnPFile - Updated
Get-PnPTenantSiteto support-DisableSharingForNonOwnersStatus
First released version of PnP PowerShell
- Added
Get-PnPFlow,Get-PnPFlowEnvironment,Enable-PnPFlow,Disable-PnPFlow,Remove-PnPFlow,Export-PnPFlowcmdlets
- Documentation updates
- Yannick Reekmans [YannickRe]
- Reintroduced
-CertificateBase64EncodedonConnect-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-PnPGroupPermissionsnot removing roles from list correctly.
- Leon Armston [leonarmston]
- Koen Zomers [koenzomers]
- Updated certificate handling for
Register-PnPAzureADAppandNew-PnPAzureCertificate - Updated
Register-PnPAzureAppto use popup windows on Microsoft Windows. Added the-NoPopupswitch to disable this behavior. - Updated
Invoke-PnPBatchto fully execute a batch by default if one of the requests in the large batch throws an exception. Specify the-StopOnExceptionswitch 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-PnPListItemandSet-PnPListItem - Updated documentation
- Deprecated the use of the
-Webcmdlet parameters due to API reasons. UseConnect-PnPOnline -Url [fullsubweburl]instead to connect to a subweb. - Updated
Get-PnPLabelto 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-PnPListPermissionscmdlet.
- Fixed issue where using
Connect-PnPOnlinein 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 -LaunchBrowserwill not try to attempt to close the popup window automatically anymore.Set-PnPLabelwill now check first if a label is available.- Documentation fixes
- Leon Armston [leonarmston]
- Bhishma Bhandari [bhishma]
- Renamed
Add-PnPUserToGrouptoAdd-PnPGroupMember. Alias for the old cmdlet name is available. - Renamed
Remove-PnPUserFromGrouptoRemove-PnPGroupMember. Alias for the old cmdlet name is available. - Renamed
Get-PnPGroupMemberstoGet-PnPGroupMember. Alias for the old cmdlet name is available.
- Fixed issue when using
Connect-PnPOnlineusing either-UseWebLoginor-SPOManagementShelland invoking a site template containing modern pages, or when trying to create or update modern pages using the PnP Cmdlets.
Register-PnPManagementShellAccesswill not automatically close the window after consent anymore.Connect-PnPOnline -UseWebLoginnow allows you to return the connection with-ReturnConnectionPR #71Remove-PnPTermGroupnow includes a-Forceparameter PR #70Get-PnPListItemnow can filter on both the GUID or the UniqueId value by specifying the -UniqueId parameter. PR #68
- Gautam Sheth [gautamdsheth]
- Added
-ReadSecurityand-WriteSecuritytoSet-PnPListcmdlet (0.3.15)
- Renamed
Add-PnPClientSidePagetoAdd-PnPPage(0.3.15) - Renamed
Add-PnPClientSidePageSectiontoAdd-PnPPageSection(0.3.15) - Renamed
Add-PnPClientSideTexttoAdd-PnPPageTextPart(0.3.15) - Renamed
Add-PnPClientSideWebtoAdd-PnPPageWebPart(0.3.15) - Renamed
Export-PnPClientSidePagetoExport-PnPPage(0.3.15) - Renamed
Export-PnPClientSidePageMappingtoExport-PnPPageMapping(0.3.15) - Deprecated
Get-AvailableClientSidePageComponents. UseGet-PnPPageComponents -Page <yourpage> -ListAvailable(0.3.15) - Renamed
Get-PnPClientSidePageComponentstoGet-PnPPageComponents(0.3.15) - Renamed
Get-PnPClientSidePagetoGet-PnPPage(0.3.15) - Renamed
Move-PnPClientSidePageComponenttoMove-PnPPageComponent(0.3.15) - Renamed
Remove-PnPClientSidePagetoRemove-PnPPage(0.3.15) - Renamed
Remove-PnPClientSideComponenttoRemove-PnPPageComponent(0.3.15) - Renamed
Save-PnPClientSidePageConversionLogtoSave-PnPPageConversionLog(0.3.15) - Renamed
Set-PnPClientSidePagetoSet-PnPPage(0.3.15) - Renamed
Set-PnPClientSideTexttoSet-PnPPageTextPart(0.3.15) - Renamed
Set-PnPClientSideWebParttoSet-PnPPageWebPart(0.3.15) - Removed '-Url' parameter from
Set-PnPWebPermission. Use-Identityinstead. (0.3.13) - Renamed
Get-PnPSubWebstoGet-PnPSubWebwhich is in line with PowerShell naming standards which state that cmdlets should use a singalar noun. Alias forGet-PnPSubWebsis available. (0.3.13) Register-PnPManagementShellAccessnow uses a popup window to authenticate you when your run the cmdlet on Windows (0.3.10)- Breaking change: we changed
Grant-PnPTenantServicePrincipalPermissionandRevoke-PnPTenantServicePrincipalPermissionto 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
-HeaderLayoutTypeparameter toSet-PnPClientSidePage(0.3.6) - Fixed documentation for
Clear-PnPRecycleBinItem(0.3.6) - Fixed issue with
Invoke-PnPTenantTemplatenot being able to acquire correct access token (0.3.6) - Added
GrouplessTeamSiteoption to-WebTemplateparameter forAdd-PnPSiteDesignandSet-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-PnPSiteTemplateToMarkdownto 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
-UseWebloginand-ForceAuthenticationtoConnect-PnPOnlineto 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-UseWebLoginwithin that time popup window will appear that will dissappear immediately, this is expected. Use-ForceAuthenticationto 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_UPDATECHECKtoOff) to Connect-PnPOnline to skip version check if set. (0.2.15) - Added
Get-PnPChangeLogcmdlet which returns this changelog. (0.2.14) - Added
-DeviceLoginparameter 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
NoVersionCheckoptional flag toConnect-PnPOnlinePR#28 (0.2.9) - Added native support for Secret Management Modules (0.1.34)
- Marked -ExcludeSiteUrl as obselete on
Get-PnPMicrosoft365Groupfor performance reasons. Use -IncludeSiteUrl instead. - Added -CloudShell switch to
Connect-PnPOnlinewhich 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-PnPTenantand added support for DisableCustomAppAuthentication inGet-PnPTenant.
- Added
Add-PnPHubToHubAssociationcmdlet. - Added
Export-PnPUserInfocmdlet. - Added
Add-PnPSiteScriptPackagecmdlet. - Added
Export-PnPUserProfilecmdlet (0.1.6). - Added
Get-PnPAppErrorscmdlet (0.1.6) - Added
Get-PnPAppInfocmdlet (0.1.6) - Added
Get-PnPBrowserIdleSignOutcmdlet (0.1.6) - Added
Set-PnPBrowserIdleSignOutcmdlet (0.1.6) - Added
Get-PnPBuiltInDesignPackageVisibilitycmdlet (0.1.6) - Added
Set-PnPBuiltInDesignPackageVisibilitycmdlet (0.1.7) - Added
Get-PnPExternalUsercmdlet (0.1.7) - Added
Remove-PnPExternalUsercmdlet (0.1.7) - Added
Get-PnPSiteCollectionAppCatalogscmdlet (0.1.7) - Added
Request-PnPPersonalSitecmdlet (0.1.7) - Added
Get-PnPSiteGroupcmdlet (0.1.8) - Added
Get-PnPSiteUserInvitationscmdlet (0.1.8) - Added
Invoke-PnPSiteSwapcmdlet (0.1.8) - Added
New-PnPSdnProvidercmdlet (0.1.8) - Added
Remove-PnPSdnProvidercmdlet (0.1.8) - Added
Remove-PnPHubToHubAssocationcmdlet (0.1.9) - Added
Remove-PnPSiteUserInvitationscmdlet (0.1.9) - Added
Remove-PnPTenantSyncClientRestrictioncmdlet (0.1.9) - Added
Remove-PnPUserInfocmdlet (0.1.9) - Added
Remove-PnPUserProfilecmdlet (0.1.9) - Added
Repair-PnPSitecmdlet (0.1.9) - Added
Test-PnPSitecmdlet (0.1.9) - Added
Revoke-PnPUserSessioncmdlet (0.1.9) - Added
New-PnPSiteGroupcmdlet (0.1.9) - Added
Remove-PnPSiteGroupcmdlet (0.1.9) - Added
Set-PnPSiteGroupcmdlet (0.1.9) - Added
Set-PnPSiteScriptPackagecmdlet (0.1.9) - Added
Update-PnPUserTypecmdlet (0.1.9) - Added
Get-SPOStructuralNavigationCacheSiteStatecmdlet (0.1.10) - Added
Get-SPOStructuralNavigationCacheWebStatecmdlet (0.1.10) - Added
Set-SPOStructuralNavigationCacheSiteStatecmdlet (0.1.10) - Added
Set-SPOStructuralNavigationCacheWebStatecmdlet (0.1.10) - Added
Add-PnPTermToTermcmdlet (0.1.11) - Added
Get-PnPTermLabelcmdlet (0.1.11) - Added
Remove-PnPTermLabelcmdlet (0.1.11) - Added
Remove-PnPTermcmdlet (0.1.11) - Added
Set-PnPTermcmdlet (0.1.11) - Added
Add-PnPPlannerBucketcmdlet (0.1.16) - Added
Add-PnPPlannerTaskcmdlet (0.1.16) - Added
Get-PnPPlannerBucketcmdlet (0.1.16) - Added
Get-PnPPlannerPlancmdlet (0.1.16) - Added
Get-PnPPlannerTaskcmdlet (0.1.16) - Added
New-PnPPlannerPlancmdlet (0.1.16) - Added
Set-PnPPlannerBucketcmdlet (0.1.16) - Added
Set-PnPPlannerPlancmdlet (0.1.16) - Added
Remove-PnPPlannerBucketcmdlet (0.1.17) - Added
Remove-PnPPlannerPlancmdlet (0.1.17) - Added
Remove-PnPPlannerTaskcmdlet (0.1.17) - Added
Set-PnPPlannerTaskcmdlet (0.1.18)
- Added filename support for .md file with
Get-PnPSiteTemplateto generate a markdown file. e.g. you can now execute for instanceGet-PnPSiteTemplate -Out .\myreport.md -Handlers Lists,ContentTypes,Features,WebSettingsto generate an markdown report of those artifacts. This is work in progress. - Fixed issue with
-UseWebLoginthrows a 403 error when connecting to a different site collection than the root site collection. - Removed
Enable-PnPPowerShellTelemetryandDisable-PnPPowerShellTelemetry. See Configure PnP PowerShell for more information on how to enable or disable telemetry collection (0.2.22) - Obsoleted
-NoTelemetryand-NoVersionCheckonConnect-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_DISABLETELEMETRYis 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-PnPPowerShellTelemetryandDisable-PnPPowerShellTelemetryto manage this file. (0.2.21) - Renamed
-CloudShellto-ManagedIdentityonConnect-PnPOnline(0.2.20) -CertificatePathonConnect-PnPOnlinenow accepts a relative path (0.2.19)- Reintroduced
-SPOManagementShellas 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-PnPPowerShellAuthenticationtoRegister-PnPAzureADApp(0.2.15) - Updated
Get-PnPAzureCertificateto work on Windows and Non-Windows OSes. (0.2.15) - Updated
Get-PnPAzureCertificateto use-Pathand-Passwordparameters instead of-CertificatePathand-CertificatePasswordparameters (0.2.15) - Fixed using
New-PnPAzureCertificateandGet-PnPAzureCertificatethrowing an exception PR #30 (0.2.15) - Updated
Initialize-PnPPowerShellAuthenticationso it can generate self-signed certs on other platforms than Windows. - Updated
Get-PnPUnifiedAuditLogto support paged results. - Removed SiteUrl parameter from
Register-PnPManagementShellas it is not required anymore - Fixed documentation on Add-PnPTeamsChannel PR#9
- Fixed documentation on Remove-PnPTeamsUser PR#10
- Renamed
Apply-PnPProvisioningTemplatetoInvoke-PnPSiteTemplate. - Renamed
Get-PnPProvisioningTemplatetoGet-PnPSiteTemplate. - Renamed
Add-PnPDataRowsToProvisioningTemplatetoAdd-PnPDataRowsToSiteTemplate. - Renamed
Add-PnPFileToProvisioningTemplatetoAdd-PnPFileToSiteTemplate. - Renamed
Add-PnPListFoldersToProvisioningTemplatetoAdd-PnPListFoldersToSiteTemplate. - Renamed
Convert-PnPFolderToProvisioningTemplatetoConvert-PnPFolderToSiteTemplate. - Renamed
Convert-PnPProvisioningTemplatetoConvert-PnPSiteTemplate. - Renamed
Export-PnPListToProvisioningTemplatetoExport-PnPListToSiteTemplate. - Renamed
New-PnPProvisioningTemplatetoNew-PnPSiteTemplate. - Renamed
New-PnPProvisioningTemplateFromFoldertoNew-PnPSiteTemplateFromFolder. - Renamed
Read-PnPProvisioningTemplatetoRead-PnPSiteTemplate. - Renamed
Remove-PnPFileFromProvisioningTemplatetoRemove-PnPFileFromSiteTemplate. - Renamed
Save-PnPProvisioningTemplatetoSave-PnPSiteTemplate. - Renamed
Set-PnPProvisioningTemplateMetadatatoSet-PnPSiteTemplateMetadata. - Renamed
Add-PnPProvisioningTemplatetoAdd-PnPSiteTemplate. - Renamed
Apply-PnPTenantTemplatetoInvoke-PnPTenantTemplate. - Removed
Get-PnPAppInstance. UseGet-PnPAppinstead. - Removed
Import-PnPAppPackage. UseInstal-PnPAppinstead. - Removed
Uninstall-AppInstance. UseUninstall-PnPAppinstead. - Removed
Get-PnPHealthScoreas the value reported is only applicable to on-premises. - Removed
-MinimalHealthScorefromConnect-PnPOnlineas the value reported from the server only applies to on-premises. - Removed
-SkipTenantAdminCheckfromConnect-PnPOnline. Check will be executed everytime where applicable. - Removed Obsolete parameter
-FromRecycleBinfromRemove-PnPTenantSite. UseClear-PnPTenantRecycleBinIteminstead. - Removed
-UserCodeMaximumLeveland-UserCodeWarningLevelfromSet-PnPTenantSite: sandboxed solutions have been deprecated from SharePoint Online and these values are not applicable anymore. - Removed
-Outparameter onNew-PnPAzureCertificate. Use-OutPfxinstead. - Removed
Enable-PnPResponsiveUIandDisable-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
-Identityfrom Get-PnPAvailableLanguage as it does not apply to SharePoint Online. - Removed
Get-PnPManagementApiAccessTokenandGet-PnPOfficeManagementApiAccessTokencmdlets. 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-PnPWorkflowInstanceandStop-PnPWorkflowInstancedue to deprecated of the Workflow Services in SharePoint Online. - Renamed
Test-PnPOffice365AliasIsUsedtoTest-PnPMicrosoft365AliasIsUsed - Refactored some of the Taxonomy cmdlet parameters. See documentation.
- Change in
Copy-PnPFilewhich should resolve some issues you may run into when copying files PR #2796 - Fixed several issues with
Get-PnPSubwebsand added optional parameter-IncludeRootWebPR #3011
- Koen Zomers [koenzomers]
- Carlos Marins Jr [kadu-jr]
- Aimery Thomas [a1mery]
- Veronique Lengelle [veronicageek]