Skip to content

Release 3.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Nov 19:23
· 11 commits to dev since this release

Added

  • Added -Experimental to Get-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-PnPFileFromSiteTemplate and Set-PnPSiteTemplateMetadata to run them on the experimental PnP.Core.Provisioning engine instead of PnP Framework. #5474
  • Added Get-PnPPersistedLogin which 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 -PersistLogin to the certificate based app only parameter sets of Connect-PnPOnline, so a connection made with -CertificatePath, -CertificateBase64Encoded, -Thumbprint or 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 -CopilotSearchOptOut to Set-PnPSearchSettings and exposed the value through Get-PnPSearchSettings; added -CopilotSearchOptIn to Set-PnPTenant and exposed the value through Get-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 -AzureEnvironment and -MicrosoftGraphEndPoint to Connect-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 -DefaultMainLinkScope to Set-PnPTenantSite and Set-PnPSite, and exposed the value through Get-PnPTenantSite. #5486
  • Added -Identity to Get-PnPContainerType to return a single SharePoint Embedded container type. #5487
  • Added -IsPassThroughBilling, -ApplicationRedirectUrl, -IsGovernableByAdmin and -IsArchiveEnabled to New-PnPContainerType, matching New-SPOContainerType. #5487
  • Added -SkipRecycleBin and -Force to Remove-PnPContainer to permanently delete a container, and -WhatIf and -Confirm to Remove-PnPContainer, Remove-PnPContainerType and New-PnPContainerType. #5487
  • Added Set-PnPContainer to 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, matching Set-SPOContainer. #5487
  • Added Set-PnPContainerTypeConfiguration to change the configuration of a SharePoint Embedded container type in the consuming tenant. #5487
  • Added Get-PnPContainerApplication and Set-PnPContainerApplication to 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-PnPContainerUser and Remove-PnPContainerUser to list and manage the users of a SharePoint Embedded container and their roles. #5488
  • Added Remove-PnPDeletedContainer to permanently delete a SharePoint Embedded container from the recycle bin, matching Remove-SPODeletedContainer. #5488
  • Added Set-PnPContainerType to rename a SharePoint Embedded container type or change its application redirect url. #5488
  • Added Set-PnPContainerApplicationPermission to 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-PnPContainer and Enable-PnPContainer to create and activate a SharePoint Embedded container through Microsoft Graph. #5488
  • Added -Name, -Description, -OcrEnabled, -ItemVersioningEnabled and -ItemMajorVersionLimit to Set-PnPContainer, which change those settings of a container through Microsoft Graph. #5488
  • Added -ExpirationDateTime to Add-PnPFolderUserSharingLink and Add-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, -WhoCanShareAuthenticatedGuestAllowList and -Workflows2013Enabled to Set-PnPTenant, and -DisableWorkflow2010 as an alias of -Workflow2010Disabled, matching Set-SPOTenant. Get-PnPTenant now returns the values of these settings, including WhoCanShareAnonymousAllowList and WhoCanShareAuthenticatedGuestAllowList, which it always returned empty before. #5491
  • Added Get-PnPTenantRenameStatus to return the state, schedule and site rename progress of a tenant rename job scheduled with Start-PnPTenantRename, and Stop-PnPTenantRename to cancel it, matching Get-SPOTenantRenameStatus and Stop-SPOTenantRename. Before this, both needed a raw REST call. #5297

Changed

  • Changed -InputInstance on Invoke-PnPSiteTemplate and -Template on Invoke-PnPTenantTemplate to accept a template produced by either provisioning engine, so a template extracted with -Experimental can be applied with -Experimental. Templates produced by PnP Framework keep binding to these parameters as before.
  • Changed ConvertTo-PnPPage -PublishingPage to support conversion within the currently connected Web, which previously required -TargetWebUrl or -TargetConnection to target another site collection. #5490
  • Changed Connect-PnPOnline to 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 -ClearPersistedLogin to 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-PnPPowerShellTelemetry and Disable-PnPPowerShellTelemetry have 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-PnPFeature to mark -Force as obsolete, as it never had an effect. Using it now writes a warning. #5483
  • Changed Start-PnPTenantRename to send the API version negotiated with SharePoint Online and the same request body as Start-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, as Start-SPOTenantRename does, or longer when SharePointPnPHttpTimeout allows 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-PnPUserOneDriveLocation and Start-PnPTenantRename to use API versions 1.6.1 and 1.6.2 when SharePoint Online offers them, matching the SharePoint Online Management Shell. Start-PnPUserAndContentMove keeps 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-PnPUnifiedAuditLog to call the Office 365 Management API of the cloud given with Connect-PnPOnline -AzureEnvironment for USGovernment, USGovernmentHigh and USGovernmentDoD, instead of always calling manage.office.com. #5483
  • Changed Connect-PnPOnline -ManagedIdentity and Connect-PnPOnline -AccessToken to keep the cloud given with -AzureEnvironment, so the cmdlets that look it up, such as Get-PnPEntraIDUser, Get-PnPUnifiedAuditLog and 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-PnPContainer to return the containers of every SharePoint Embedded application in the tenant when neither -Identity nor -OwningApplicationId is given, instead of failing, filtered by -ArchiveStatus, which defaults to active containers. Without -Paged it now returns every container, also with -OwningApplicationId, rather than only the first batch. #5487
  • Changed Get-PnPContainer, Remove-PnPContainer and Restore-PnPDeletedContainer to accept the api url of a container, such as the ContainerApiUrl returned by Get-PnPContainer, and Remove-PnPContainer to accept the containers returned by Get-PnPContainer from the pipeline. #5487
  • Changed Get-PnPContainerTypeConfiguration to 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-PnPContainerType to create a standard container type when -TrialContainerType is not used, instead of writing a warning and creating nothing. -AzureSubscriptionId, -ResourceGroup and -Region are marked obsolete and are ignored; set up the billing of a standard container type separately, for example with Add-SPOContainerTypeBilling. #5487
  • Marked Get-PnPSyntexModel, Get-PnPSyntexModelPublication, Publish-PnPSyntexModel, Unpublish-PnPSyntexModel and Request-PnPSyntexClassifyAndExtract as 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. -PublicationViewOption on Publish-PnPSyntexModel now takes a string and -Connection is ignored. #5496

Fixed

  • Using UPNs with an apostrophe in it not working with Remove-PnPUserProfile, Export-PnPUserProfile, Export-PnPUserInfo, and Remove-PnPUserInfo. The apostrophe is now escaped in the API request. #5459
  • Fix PnP ALC initializer with loaded assemblies stackoverflow issue. #5481
  • Fixed Invoke-PnPSiteTemplate failing 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:latest and m365pnp/powershell:stable are 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-PnPItemProxy returning 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.