Releases: pnp/PnP-PowerShell
December 2020 Release
Changed
- Small fixes to README.md
- Fixed several issues with
Get-PnPSubwebs
and introduced optional parameter-IncludeRootWeb
to include the rootweb in the results - Change in
Copy-PnPFile
which should resolve some issues you may run into when copying files PR #2796 - Changed fallback scenario for 'Get-PnPFile' where downloading a file created by a user that no longer exists would try a different technique to download the file. This only worked on English environments though. With this fix, it should work for any language. PR #2852
How to install on a machine without an internet connection and make the cmdlets automatically available in PowerShell
NOTE
We strongly recommend that you to install the newer version of PnP PowerShell. See our documentation and installation documentation here: https://pnp.github.io/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
October 2020 Release
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
September 2020 Point 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
September 2020 Release
Added
- Added ability to set site collection specific expiration on anonymous sharing links through the
-AnonymousLinkExpirationInDays
and-OverrideTenantAnonymousLinkExpirationPolicy
attributes onSet-PnPSite
andSet-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
August 2020 Point 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
August 2020 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
July 2020 Intermediate Release 1
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 usingDisconnect-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
July 2020 Release
Added
- Added
-WithRightsAssignedDetailed
parameter toGet-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 toClear-PnPRecycleBinItem
andRestore-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
toSet-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 theIf-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 runningDisconnect-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]
June 2020 Intermediate Release 2
Intermediate release due to a fix in the underlying Core Library and the Connect-PnPOnline cmdlet.
June 2020 Intermediate Release 1
Intermediate release due to a fix in the underlying Core Library.