Skip to content
This repository has been archived by the owner. It is now read-only.
5f4fdeb
Compare
Choose a tag to compare

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
7318423
Compare
Choose a tag to compare

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
f9c1596
Compare
Choose a tag to compare

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
838af7f
Compare
Choose a tag to compare

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
5f8e84e
Compare
Choose a tag to compare

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
6323c6a
Compare
Choose a tag to compare

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
Compare
Choose a tag to compare

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
13528c6
Compare
Choose a tag to compare

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]
48d8da9
Compare
Choose a tag to compare

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

b812c37
Compare
Choose a tag to compare