Skip to content

@erwinvanhunen erwinvanhunen released this Oct 12, 2020

Added

  • Added Set-PnPTenant -EnableAutoNewsDigest option to disable the automatic news digest mails sent to end users PR #2901
  • Added Register-PnPManagementShellAccess cmdlet to register correct access required for the multi-tenant application PnP Management Shell which is used behind the scenes of the Provisioning Engine for certain actions towards SharePoint Online.
  • Added the description being shown of a Site Script when running Get-PnPSiteScript PR #2895
  • Added -Includes to Get-PnPUser PR #2939
  • Added an sample for Azure Automation PR #2835
  • Added -DisableCustomAppAuthentication to Set-PnPTenant PR #2923

Changed

  • Fixed example for Get-PnPTeamsChannel PR #2919
  • Fixed possible token acquisition issue when extracting a tenant template. PR #2874
  • Fixed scenario when no configuration file provided with Get-PnPTenantTemplate throws an undefined error PR #2873
  • Fixed examples for New-PnPTeamsTeam PR #2870
  • Updated documentation for Get-PnPField PR #2856
  • Updated documentation for Get-PnPListItem PR #2806
  • Improved certificate file handling and errors shown if the file does not exist, is empty or points to a folder PR #2888
  • Fixed issue with where connecting with Connect-PnPOnline to an URL ending on a slash could cause an exception when using some cmdlets.

How to install

Use Install-Module -Name SharePointPnPPowerShell[version] to install. Available are:

  • SharePointPnPPowerShellOnline
  • SharePointPnPPowerShell2019
  • SharePointPnPPowerShell2016
  • SharePointPnPPowerShell2013

How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

If you want to have the module only available for a specific user, copy the folder and its contents to

c:\users\[username]\documents\windowspowershell\modules

Notice that you might have to create this folder structure.

If you want the module to be available for all users, copy the folder and its contents to

c:\program files\windowspowershell\modules

On some custom installed environments these folders might be called differently. Use

$env:PSModulePath

to see the paths that PowerShell scans for existing modules. Copy the folder to one of the folders listed.

How to install on a machine without an internet connection and load the cmdlets manually

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

To manually load the cmdlets (notice, this must then be done every time you want to use PnP PowerShell in a PowerShell session) enter:

Import-Module [c:\pathontargetcomputer]\SharePointPnPPowerShellOnline\SharePointPnPPowerShellOnline.psd1 -DisableNameChecking
Assets 2

@erwinvanhunen erwinvanhunen released this Sep 8, 2020 · 63 commits to master since this release

Changed

  • Underlying PnP Sites Core library has been updated to fix an issue with the Provisioning Engine and Teams Provisioning.

How to install

Use Install-Module -Name SharePointPnPPowerShell[version] to install. Available are:

  • SharePointPnPPowerShellOnline
  • SharePointPnPPowerShell2019
  • SharePointPnPPowerShell2016
  • SharePointPnPPowerShell2013

How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

If you want to have the module only available for a specific user, copy the folder and its contents to

c:\users\[username]\documents\windowspowershell\modules

Notice that you might have to create this folder structure.

If you want the module to be available for all users, copy the folder and its contents to

c:\program files\windowspowershell\modules

On some custom installed environments these folders might be called differently. Use

$env:PSModulePath

to see the paths that PowerShell scans for existing modules. Copy the folder to one of the folders listed.

How to install on a machine without an internet connection and load the cmdlets manually

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

To manually load the cmdlets (notice, this must then be done every time you want to use PnP PowerShell in a PowerShell session) enter:

Import-Module [c:\pathontargetcomputer]\SharePointPnPPowerShellOnline\SharePointPnPPowerShellOnline.psd1 -DisableNameChecking
Assets 2

@erwinvanhunen erwinvanhunen released this Sep 7, 2020 · 65 commits to master since this release

Added

  • Added ability to set site collection specific expiration on anonymous sharing links through the -AnonymousLinkExpirationInDays and -OverrideTenantAnonymousLinkExpirationPolicy attributes on Set-PnPSite and Set-PnPTenantSite PR #2866
  • Documentation updates

How to install

Use Install-Module -Name SharePointPnPPowerShell[version] to install. Available are:

  • SharePointPnPPowerShellOnline
  • SharePointPnPPowerShell2019
  • SharePointPnPPowerShell2016
  • SharePointPnPPowerShell2013

How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

If you want to have the module only available for a specific user, copy the folder and its contents to

c:\users\[username]\documents\windowspowershell\modules

Notice that you might have to create this folder structure.

If you want the module to be available for all users, copy the folder and its contents to

c:\program files\windowspowershell\modules

On some custom installed environments these folders might be called differently. Use

$env:PSModulePath

to see the paths that PowerShell scans for existing modules. Copy the folder to one of the folders listed.

How to install on a machine without an internet connection and load the cmdlets manually

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

To manually load the cmdlets (notice, this must then be done every time you want to use PnP PowerShell in a PowerShell session) enter:

Import-Module [c:\pathontargetcomputer]\SharePointPnPPowerShellOnline\SharePointPnPPowerShellOnline.psd1 -DisableNameChecking
Assets 2

@erwinvanhunen erwinvanhunen released this Aug 20, 2020 · 89 commits to master since this release

Added

  • Added -AzureEnvironment parameter to Initialize-PnPPowerShellAuthentication to create an Azure AD App in other Azure environments than the default one.
  • Added -AzureEnvironment parameter to all Connect-PnPOnline options which result in an OAuth based authentication connection, supporting the various Azure Environments available.

Changed

  • Fixed issue with Submit-PnPTeamsChannelMessage not posting HTML message when setting the content type to Html.
  • The content type that Submit-PnPTeamsChannelMessage uses defaults now to HTML.
  • Fixed an issue with the PnP Provisioning Engine not being able to correctly acquire a token for the Microsoft Graph when provisioning a tenant template containing a Team.
  • Optimized Submit-PnPSearchQuery and Get-PnPSiteSearchQueryResults cmdlets when using the -All parameter.
  • Fixed TrimDuplicates to be default off for Submit-PnPSearchQuery

How to install

Use Install-Module -Name SharePointPnPPowerShell[version] to install. Available are:

  • SharePointPnPPowerShellOnline
  • SharePointPnPPowerShell2019
  • SharePointPnPPowerShell2016
  • SharePointPnPPowerShell2013

How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

If you want to have the module only available for a specific user, copy the folder and its contents to

c:\users\[username]\documents\windowspowershell\modules

Notice that you might have to create this folder structure.

If you want the module to be available for all users, copy the folder and its contents to

c:\program files\windowspowershell\modules

On some custom installed environments these folders might be called differently. Use

$env:PSModulePath

to see the paths that PowerShell scans for existing modules. Copy the folder to one of the folders listed.

How to install on a machine without an internet connection and load the cmdlets manually

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

To manually load the cmdlets (notice, this has to be done everytime you want to use PnP PowerShell in a PowerShell session) enter:

Import-Module [c:\pathontargetcomputer]\SharePointPnPPowerShellOnline\SharePointPnPPowerShellOnline.psd1 -DisableNameChecking
Assets 2

@erwinvanhunen erwinvanhunen released this Aug 10, 2020 · 104 commits to master since this release

Added

  • Updated Get/Set-PnPSearchSettings with an option -SearchBoxPlaceholderText to set search placeholder text for the SPO nav bar search box
  • Added Set-PnPTermGroup cmdlet to update an existing taxonomy term group.
  • Added Set-PnPTeamifyPromptHidden to hide the teamify prompt on a group connected Team Site (modern team site)

Changed

  • Changed the client id of the application used behind the scenes when authenticating to a tenant where Legacy Authentication has been turned off. We now by default utilize the PnP Management Shell application. If you have not provided consent you will be prompted with a message on how to provide consent.

How to install

Use Install-Module -Name SharePointPnPPowerShell[version] to install. Available are:

  • SharePointPnPPowerShellOnline
  • SharePointPnPPowerShell2019
  • SharePointPnPPowerShell2016
  • SharePointPnPPowerShell2013

How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

If you want to have the module only available for a specific user, copy the folder and its contents to

c:\users\[username]\documents\windowspowershell\modules

Notice that you might have to create this folder structure.

If you want the module to be available for all users, copy the folder and its contents to

c:\program files\windowspowershell\modules

On some custom installed environments these folders might be called differently. Use

$env:PSModulePath

to see the paths that PowerShell scans for existing modules. Copy the folder to one of the folders listed.

How to install on a machine without an internet connection and load the cmdlets manually

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

To manually load the cmdlets (notice, this has to be done everytime you want to use PnP PowerShell in a PowerShell session) enter:

Import-Module [c:\pathontargetcomputer]\SharePointPnPPowerShellOnline\SharePointPnPPowerShellOnline.psd1 -DisableNameChecking
Assets 2

@erwinvanhunen erwinvanhunen released this Jul 17, 2020 · 152 commits to master since this release

Changed

  • Fixed issue with Remove-PnPTeamsTab not working as intended
  • Fixed issue with Add-PnPTeamsChannel -Private not working as intended. We now require you to specify an owner.
  • Fixed authentication issues when using Connect-PnPOnline and mixed Resource permissions scopes (e.g. Graph and Office 365 Management API)
  • Fixed issue where Disconnect-PnPOnline would not clear the in memory token cache when using Disconnect-PnPOnline

How to install

Use Install-Module -Name SharePointPnPPowerShell[version] to install. Available are:

  • SharePointPnPPowerShellOnline
  • SharePointPnPPowerShell2019
  • SharePointPnPPowerShell2016
  • SharePointPnPPowerShell2013

How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

If you want to have the module only available for a specific user, copy the folder and its contents to

c:\users\[username]\documents\windowspowershell\modules

Notice that you might have to create this folder structure.

If you want the module to be available for all users, copy the folder and its contents to

c:\program files\windowspowershell\modules

On some custom installed environments these folders might be called differently. Use

$env:PSModulePath

to see the paths that PowerShell scans for existing modules. Copy the folder to one of the folders listed.

How to install on a machine without an internet connection and load the cmdlets manually

On a computer with an internet connection enter:

Save-Module -Name SharePointPnPPowerShellOnline -Path [c:\foldertosavemoduleto]

In the path specified a folder will be created called SharePointPnPPowerShellOnline. Copy this folder and all its contents to the target computer.

To manually load the cmdlets (notice, this has to be done everytime you want to use PnP PowerShell in a PowerShell session) enter:

Import-Module [c:\pathontargetcomputer]\SharePointPnPPowerShellOnline\SharePointPnPPowerShellOnline.psd1 -DisableNameChecking
Assets 2

@erwinvanhunen erwinvanhunen released this Jul 13, 2020 · 168 commits to master since this release

Added

  • Added -WithRightsAssignedDetailed parameter to Get-PnPUser when used against SharePoint Online allowing for fine grained (broken) permissions on item, list and site level to be shown PR #2754
  • Added a -RowLimit parameter to Clear-PnPRecycleBinItem and Restore-PnPRecycleBinItem so that it can be used on recycle bins which hold more than 5000 items PR #2760
  • Added connection option to Connect-PnPOnline taking -Scopes and -Credentials to allow setting up a delegated permission token for use with Microsoft Graph and the Office 365 Management API. See this wiki page for more details. PR #2746
  • Added support for enabling and disabling fields using Set-PnPField -Identity FieldName -Values @{AllowDeletion=$false} PR #2766
  • Added the following cmdlets to add/remove/clear owners and members of Microsoft 365 Groups: Add-PnPMicrosoft365GroupMember, Add-PnPMicrosoft365GroupOwner, Remove-PnPMicrosoft365GroupMember, Remove-PnPMicrosoft365GroupOwner, Clear-PnPMicrosoft365GroupMember, Clear-PnPMicrosoft365GroupOwner PR #2750
  • Added Add-PnPTeamsChannel, Add-PnPTeamsTab, Add-PnPTeamsUser, Get-PnPTeamsApp, Get-PnPTeamsChannel, Get-PnPTeamsChannelMessage, Get-PnPTeamsTab, Get-PnPTeamsTeam, Get-PnPTeamsUser, New-PnPTeamsApp, New-PnPTeamsTeam, Remove-PnPTeamsChannel, Remove-PnPTeamsTab, Remove-PnPTeamsTeam, Remove-PnPTeamsUser, Set-PnPTeamsChannel, Set-PnPTeamsTab, Set-PnPTeamsTeam, Set-PnPTeamsPicture, Submit-PnPTeamsChannelMessage, Update-PnPTeamsApp cmdlets
  • Added Get-PnPFileVersion, Remove-PnPFileVersion, Restore-PnPFileVersion cmdlets
  • Added -HideFromAddressLists and -HideFromOutlookClients to Set-PnPUnifiedGroup to allow for setting the visibility of Microsoft 365 Groups PR #2717

Changed

  • Updated implementation of Move-PnPFile to now also support moving of files and folders accross site collections PR #2749
  • Fixed issue where using Disconnect-PnPOnline -Connection $variable after having connected using $variable = Connect-PnPOnline -CertificatePath <path> -ReturnConnection, it would not clean up the certificate on that connection instance passed in by $variable, but instead try to do it on the current connection context PR #2755
  • Fixed Invoke-PnPSPRestMethod -Method Merge not passing in the If-Match: * header and thereby causing failed requests PR #2764
  • If a certain PnP PowerShell cmdlet needs access to the SharePoint Admin Center site in order to function correctly, it will now list this in the Synopsis section of the Get-Help for the cmdlet
  • Fixed issue where using Connect-PnPOnline using -Thumbnail would delete the private key on some devices when running Disconnect-PnPOnline PR #2759
  • Fixed timeouts on Get-PnPSiteCollectionAdmin when the site has a lot of users PR #2769
  • Updated test project structure PR #2767
  • Updated the Microsoft Authentication Library (MSAL) to 4.16.1 which resolves an issue in the MSAL library which caused many of the Connect-PnPOnline options not to work in Azure Runbooks anymore PR #2735
  • All UnifiedGroup cmdlets have been renamed to Microsoft365Group. I.e. New-PnPUnifiedGroup -> New-PnPMicrosoft365Group. An alias has been added to provide for backwards compatibility PR #2771

Contributors

  • Erwin van Hunen [erwinvanhunen]
  • Gautam Sheth [gautamdsheth]
  • Koen Zomers [koenzomers]
  • Maximilian L. [MrTantum]
  • Ellie Hussey [Professr]
  • Todd Klindt [ToddKlindt]
  • Marc D Anderson [sympmarc]
  • Jens Otto Hatlevold [jensotto]
  • Robin Meure [robinmeure]
  • Paul Bullock [pkbullock]
Assets 6

@erwinvanhunen erwinvanhunen released this Jun 11, 2020 · 366 commits to master since this release

Intermediate release due to a fix in the underlying Core Library and the Connect-PnPOnline cmdlet.

Assets 6

@erwinvanhunen erwinvanhunen released this Jun 9, 2020 · 370 commits to master since this release

Intermediate release due to a fix in the underlying Core Library.

Assets 6

@erwinvanhunen erwinvanhunen released this Jun 9, 2020 · 373 commits to master since this release

Added

  • Added -ValuesOnly option to Get-PnPLabel which will return more detailed information regarding the retention label set on a list or library and return the information as properties instead of written text PR #2710
  • Added -PreferredDataLocation option to New-PnPSite which allows for providing a geography in which the new SharePoint sitecollection should be created. Only applicable on multi-geo enabled tenants. PR #2708
  • Added EnableAIPIntegration option to Set-PnPTenant which allows enabling Azure Information Protection integration with SharePoint Online and OneDrive for Business on your tenant PR #2703
  • Added Get-PnPAADUser cmdlet which allows retrieval of users from Azure Active Directory through the Microsoft Graph API PR #2626
  • Added Add-PnPGraphSubscription, Get-PnPGraphSubscription, Remove-PnPGraphSubscription and Set-PnPGraphSubscription to work with Microsoft Graph Subscriptions PR #2673
  • Added Reset-PnPUnifiedGroupExpiration which allows the expiration date of an Office 365 Group to be extended by the number of days defined in the Azure Active Directory Group Expiration policy PR #2655
  • Added following arguments to Set-PnPWeb allowing them to be set: CommentsOnSitePagesDisabled, DisablePowerAutomate, MegaMenuEnabled, MembersCanShare, NavAudienceTargetingEnabled, QuickLaunchEnabled and NoCrawl PR #2633
  • Added Set-PnPUserOneDriveQuota, Reset-PnPUserOneDriveQuotaToDefault and Get-PnPUserOneDriveQuota commands to work with quotas on OneDrive for Business sites PR #2630
  • Added Get-PnPTenantSyncClientRestriction and Set-PnPTenantSyncClientRestriction cmdlets to allow configuring tenant wide OneDrive sync restriction settings PR #2649
  • Added Disable-PnPSharingForNonOwnersOfSite and Get-PnPSharingForNonOwnersOfSite cmdlets to control disabling the ability for only owners of the site to be allowed to share the site or its files and folders with others PR #2641
  • Added Get-PnPIsSiteAliasAvailable which allows checking if a certain alias is still available to create a new site collection with PR #2698
  • Added Get-PnPFooter and Set-PnPFooter to work with the footer shown on Modern Communication pages PR #2634
  • Added ability to getting and setting the title and logo shown in the footer of a Modern Communication site PR #2715
  • Added -SensitivityLabel option to New-PnPSite which allows for directly assigning a sensitivity label to a SharePoint sitecollection when creating it. Requires modern sensitivity labels and E5 licenses to be enabled on the tenant. PR #2713
  • Added Get-PnPOffice365CurrentServiceStatus, Get-PnPOffice365HistoricalServiceStatus, Get-PnPOffice365ServiceMessage and Get-PnPOffice365Services to retrieve information from the Office 365 Management API regarding the Office 365 services PR #2684
  • Added Get-PnPAvailableLanguage which returns a list of all supported languages on the SharePoint web PR #2716

Changed

  • Fixed uploading a file using Add-PnPFile using -ContentType throwing an exception PR #2619
  • Fixed using Connect-PnPOnline -AppId <appid> -AppSecret <appsecret> -AADDomain not actually authenticating to Microsoft Graph PR #2624
  • Updated Get-PnPWorkflowInstance to allow passing in a workflow subscription to list all running instances of a specific workflow PR #2636
  • Implementation of Move-PnPFile has been changed adding -TargetServerRelativeLibrary for SharePoint Online to allow moving files to other site collections PR #2688

Contributors

  • Alberto Suarez [holylander]
  • Rune Sperre [rsperre]
  • Nik Charlebois [NikCharlebois]
  • Eduardo Garcia-Prieto [egarcia74]
  • Koen Zomers [koenzomers]
  • James May [fowl2]
  • Marc D Anderson [sympmarc]
  • Kunj Balkrishna Sangani [kunj-sangani]
  • Gautam Sheth [gautamdsheth]
Assets 6
You can’t perform that action at this time.