Repository navigation
Added
- Added
-ExperimentaltoGet-PnPSiteTemplate,Invoke-PnPSiteTemplate,Get-PnPTenantTemplate,Invoke-PnPTenantTemplate,Read-PnPSiteTemplate,Save-PnPSiteTemplate,Read-PnPTenantTemplate,Save-PnPTenantTemplate,Convert-PnPSiteTemplate,Export-PnPListToSiteTemplate,Add-PnPDataRowsToSiteTemplate,Add-PnPListFoldersToSiteTemplate,Add-PnPFileToSiteTemplate,Remove-PnPFileFromSiteTemplateandSet-PnPSiteTemplateMetadatato run them on the experimental PnP.Core.Provisioning engine instead of PnP Framework. #5474 - Added
Get-PnPPersistedLoginwhich lists the tenant url, client id and authentication type of every login registered to use the local token cache, so the cache can be inspected without reading it. #5463 - Added
-PersistLoginto the certificate based app only parameter sets ofConnect-PnPOnline, so a connection made with-CertificatePath,-CertificateBase64Encoded,-Thumbprintor the environment variables can reuse its access token from the local cache. The certificate, tenant and client id are still required on each connection, as neither the certificate nor its password is stored. #5463 - Added
-CopilotSearchOptOuttoSet-PnPSearchSettingsand exposed the value throughGet-PnPSearchSettings; added-CopilotSearchOptIntoSet-PnPTenantand exposed the value throughGet-PnPTenant. #5478 - Added a zip of the module, its SPDX software bill of materials and its build provenance to each stable release on GitHub, so the zip can be verified with
gh attestation verify. #5483 - Added
-AzureEnvironmentand-MicrosoftGraphEndPointtoConnect-PnPOnline -AzureADWorkloadIdentity, so a connection through a workload identity calls Microsoft Graph and the other APIs of a national cloud instead of the worldwide ones. #5483 - Added
-DefaultMainLinkScopetoSet-PnPTenantSiteandSet-PnPSite, and exposed the value throughGet-PnPTenantSite. #5486 - Added
-IdentitytoGet-PnPContainerTypeto return a single SharePoint Embedded container type. #5487 - Added
-IsPassThroughBilling,-ApplicationRedirectUrl,-IsGovernableByAdminand-IsArchiveEnabledtoNew-PnPContainerType, matchingNew-SPOContainerType. #5487 - Added
-SkipRecycleBinand-ForcetoRemove-PnPContainerto permanently delete a container, and-WhatIfand-ConfirmtoRemove-PnPContainer,Remove-PnPContainerTypeandNew-PnPContainerType. #5487 - Added
Set-PnPContainerto change the sensitivity label, block download policy, conditional access policy, restricted access control, sharing domain restriction, information barriers and principal owner of a SharePoint Embedded container, matchingSet-SPOContainer. #5487 - Added
Set-PnPContainerTypeConfigurationto change the configuration of a SharePoint Embedded container type in the consuming tenant. #5487 - Added
Get-PnPContainerApplicationandSet-PnPContainerApplicationto list the SharePoint Embedded applications in the tenant and change their sharing capability, Copilot embedded chat hosts and version limit. #5487 - Added
Get-PnPContainerUser,Add-PnPContainerUser,Set-PnPContainerUserandRemove-PnPContainerUserto list and manage the users of a SharePoint Embedded container and their roles. #5488 - Added
Remove-PnPDeletedContainerto permanently delete a SharePoint Embedded container from the recycle bin, matchingRemove-SPODeletedContainer. #5488 - Added
Set-PnPContainerTypeto rename a SharePoint Embedded container type or change its application redirect url. #5488 - Added
Set-PnPContainerApplicationPermissionto set the permissions of an application on the containers of a SharePoint Embedded container type registered in the tenant, through Microsoft Graph. #5488 - Added
New-PnPContainerandEnable-PnPContainerto create and activate a SharePoint Embedded container through Microsoft Graph. #5488 - Added
-Name,-Description,-OcrEnabled,-ItemVersioningEnabledand-ItemMajorVersionLimittoSet-PnPContainer, which change those settings of a container through Microsoft Graph. #5488 - Added
-ExpirationDateTimetoAdd-PnPFolderUserSharingLinkandAdd-PnPFileUserSharingLink, so a sharing link for specific people stops working after the given date. #5484 - Added
-AllowLegacyAuthProtocolsEnabledSetting,-AllowLegacyBrowserAuthProtocolsEnabledSetting,-AppAccessInformationBarriersAllowList,-AppOnlyBypassPeoplePickerPolicies,-BlockAppAccessWithAuthenticationContext,-BlockDownloadLinksFileType,-BlockUserInfoVisibility,-CoreAnyoneSharingLinkMaxExpirationInDays,-CoreAnyoneSharingLinkRecommendedExpirationInDays,-DefaultContentCenterSite,-DefaultLanguageForSiteCreation,-DelegateRestrictedAccessControlManagement,-DelegateRestrictedContentDiscoverabilityManagement,-DisableSharePointStoreAccess,-DisableSpfxTopBottomPlaceholdersInElevatedContent,-DisableTeamsMeetingRecordingDeletedNotification,-EnableAgentWorkerSharingDisclaimer,-FilePreviewAllowedDomainList,-IsFilePreviewDomainRestrictionEnabled,-IsSharePointAddInsBlocked,-LimitedAccessFileType,-MassDeleteNotificationDisabledForODB,-MassDeleteNotificationDisabledForSPO,-OneDriveAnyoneSharingLinkMaxExpirationInDays,-OneDriveAnyoneSharingLinkRecommendedExpirationInDays,-PermissiveBrowserFileHandlingOverride,-RemoveVersionExpirationFileTypeOverride,-RestrictedAccessControlForOneDriveErrorHelpLink,-ReSyncTenantPrivacyProfile,-SiteOwnersCanAccessMissingContent,-StopAlerts,-StopNew2010Workflows,-SyncPrivacyProfileProperties,-UnlicensedOneDriveAccountsActiveStoragePeriod,-WhoCanShareAnonymousAllowList,-WhoCanShareAuthenticatedGuestAllowListand-Workflows2013EnabledtoSet-PnPTenant, and-DisableWorkflow2010as an alias of-Workflow2010Disabled, matchingSet-SPOTenant.Get-PnPTenantnow returns the values of these settings, includingWhoCanShareAnonymousAllowListandWhoCanShareAuthenticatedGuestAllowList, which it always returned empty before. #5491 - Added
Get-PnPTenantRenameStatusto return the state, schedule and site rename progress of a tenant rename job scheduled withStart-PnPTenantRename, andStop-PnPTenantRenameto cancel it, matchingGet-SPOTenantRenameStatusandStop-SPOTenantRename. Before this, both needed a raw REST call. #5297
Changed
- Changed
-InputInstanceonInvoke-PnPSiteTemplateand-TemplateonInvoke-PnPTenantTemplateto accept a template produced by either provisioning engine, so a template extracted with-Experimentalcan be applied with-Experimental. Templates produced by PnP Framework keep binding to these parameters as before. - Changed
ConvertTo-PnPPage -PublishingPageto support conversion within the currently connected Web, which previously required-TargetWebUrlor-TargetConnectionto target another site collection. #5490 - Changed
Connect-PnPOnlineto write verbose message on which stored credential it resolved for the url, as it previously picked one up from the credential manager without saying so. #5463 - Changed
Disconnect-PnPOnline -ClearPersistedLoginto write a warning when no persisted login exists for the current connection, instead of silently doing nothing. #5463 - Telemetry in PnP PowerShell has been removed due to the costs of collecting the data didn't outweigh the benefits to the PnP PowerShell team to have insights into its usage. The involved cmdlets
Get-PnPPowerShellTelemetryEnabled,Enable-PnPPowerShellTelemetryandDisable-PnPPowerShellTelemetryhave been marked as deprecated and no longer function, but will stay in v3 for backwards compatibility with existing scripts. These cmdlets will be removed in the next v4 release. All versions of PnP PowerShell will no longer be able to submit telemetry. You might see background requests for this failing. This will not interfear with the normal execution of your PowerShell script. #5460 - Changed
Disable-PnPFeatureto mark-Forceas obsolete, as it never had an effect. Using it now writes a warning. #5483 - Changed
Start-PnPTenantRenameto send the API version negotiated with SharePoint Online and the same request body asStart-SPOTenantRename, instead of always pinning API version 1.5.3. It now also waits at least 5 minutes for SharePoint Online to schedule the rename, asStart-SPOTenantRenamedoes, or longer whenSharePointPnPHttpTimeoutallows it, instead of failing after 100 seconds, and on a timeout says the rename may already be scheduled instead of inviting a retry. #5502 - Changed
Add-PnPGeoAdministrator,Get-PnPGeoAdministrator,Remove-PnPGeoAdministrator,Get-PnPGeoMoveCrossCompatibilityStatus,Get-PnPGeoStorageQuota,Set-PnPGeoStorageQuota,Set-PnPMultiGeoCompanyAllowedDataLocation,Remove-PnPMultiGeoCompanyAllowedDataLocation,Get-PnPMultiGeoExperience,Set-PnPMultiGeoExperience,Get-PnPSiteContentMoveState,Start-PnPSiteContentMove,Stop-PnPSiteContentMove,Get-PnPUnifiedGroupMoveState,Start-PnPUnifiedGroupMove,Get-PnPUserAndContentMoveState,Stop-PnPUserAndContentMove,Get-PnPUserOneDriveLocationandStart-PnPTenantRenameto use API versions 1.6.1 and 1.6.2 when SharePoint Online offers them, matching the SharePoint Online Management Shell.Start-PnPUserAndContentMovekeeps calling API version 1.0, but now reports 1.6.1 or 1.6.2 as the API version in its request body. #5297 - Changed
Get-PnPUnifiedAuditLogto call the Office 365 Management API of the cloud given withConnect-PnPOnline -AzureEnvironmentforUSGovernment,USGovernmentHighandUSGovernmentDoD, instead of always callingmanage.office.com. #5483 - Changed
Connect-PnPOnline -ManagedIdentityandConnect-PnPOnline -AccessTokento keep the cloud given with-AzureEnvironment, so the cmdlets that look it up, such asGet-PnPEntraIDUser,Get-PnPUnifiedAuditLogand those calling Power Platform or Azure Resource Manager APIs, call that cloud instead of the worldwide one. Microsoft Graph requests on such a connection now go to that cloud as well, also without-Url. #5483 - Changed
Get-PnPContainerto return the containers of every SharePoint Embedded application in the tenant when neither-Identitynor-OwningApplicationIdis given, instead of failing, filtered by-ArchiveStatus, which defaults to active containers. Without-Pagedit now returns every container, also with-OwningApplicationId, rather than only the first batch. #5487 - Changed
Get-PnPContainer,Remove-PnPContainerandRestore-PnPDeletedContainerto accept the api url of a container, such as theContainerApiUrlreturned byGet-PnPContainer, andRemove-PnPContainerto accept the containers returned byGet-PnPContainerfrom the pipeline. #5487 - Changed
Get-PnPContainerTypeConfigurationto also return the application redirect url, the sharing allow lists and their tenant overrides, the Copilot embedded chat hosts, the anonymous link expiration, and whether archiving and the legacy item web url are enabled. #5487 - Changed
New-PnPContainerTypeto create a standard container type when-TrialContainerTypeis not used, instead of writing a warning and creating nothing.-AzureSubscriptionId,-ResourceGroupand-Regionare marked obsolete and are ignored; set up the billing of a standard container type separately, for example withAdd-SPOContainerTypeBilling. #5487 - Marked
Get-PnPSyntexModel,Get-PnPSyntexModelPublication,Publish-PnPSyntexModel,Unpublish-PnPSyntexModelandRequest-PnPSyntexClassifyAndExtractas obsolete, as SharePoint Syntex is no longer supported and its support has been removed from the PnP Core SDK. The cmdlets are kept for backwards compatibility with existing scripts, but no longer do anything other than write a warning, no longer require a connection, and will be removed in a future version.-PublicationViewOptiononPublish-PnPSyntexModelnow takes a string and-Connectionis ignored. #5496
Fixed
- Using UPNs with an apostrophe in it not working with
Remove-PnPUserProfile,Export-PnPUserProfile,Export-PnPUserInfo, andRemove-PnPUserInfo. The apostrophe is now escaped in the API request. #5459 - Fix PnP ALC initializer with loaded assemblies stackoverflow issue. #5481
- Fixed
Invoke-PnPSiteTemplatefailing with "Could not load file or assembly 'Microsoft.SharePoint.Client.UserProfiles'" when the template uses localizations. PnP Framework could not load the CSOM libraries for user profiles and search unless a cmdlet had loaded them earlier in the session. #5500 - Fixed the stable Docker images stopping at 3.1.0:
m365pnp/powershell:latestandm365pnp/powershell:stableare published again, for the latest stable release on the PowerShell Gallery, now also for 32 bit ARM (linux/arm/v7). #5483 - Fixed
Get-Help Move-PnPItemProxyreturning only the syntax of the cmdlet, as it had no documentation page. #5483
Contributors
- Fabien Tschanz [FabienTschanz]
- Adam Wójcik [Adam-IT]
- James May [fowl2]
- Yifeng Mao [YifengMao]
- maskoch_microsoft [3141592654]
The zip holds the module as published to the PowerShell Gallery. Verify where it was built with gh attestation verify PnP.PowerShell-3.5.0.zip --repo pnp/powershell.