Repository navigation
Adds Experimental option to use PnP.Core.Provisioning - #5474
Conversation
|
Thanks @Adam-it! I tested this against a dev tenant, running both engines side by side. The read and extract side works well: a full site extract with Must fix1. $t = Read-PnPTenantTemplate .\tenant.xml
$t | Invoke-PnPTenantTemplate # AmbiguousParameterSet (works in 3.4.1)
Invoke-PnPTenantTemplate $t # AmbiguousParameterSet (works in 3.4.1)
Invoke-PnPTenantTemplate -Template $t # worksIn a quick simulation of the binder, adding 2.
So 3.
Excluding every handler produces an empty Core handler list. Core treats that as "all handlers" and extracts everything, where PnP Framework extracts nothing. Suggested fix: map the excludes to Core handlers first, remove them from the full list of Core handlers, and error if nothing is left. 4. Files inside a
Should fix5. Ctrl+C doesn't stop an 6. Document the extra permissions. The scopes listed in the PR description aren't in the cmdlet docs or the article. 7. CHANGELOG fixes:
Minor
FYI: differences in engine output (from PnP.Core.Provisioning, not this PR)Compared with PnP Framework, a full extract of the same site with
I haven't checked whether these matter when the template is applied. |
|
@gautamdsheth all addressed... at least I hope I didn't miss anything 😁, and ready for another round |
|
Awesome stuff @Adam-it , 4 small changes and we are good to go :
|
@gautamdsheth ok mostly addressed your feed: updated the error message, reverted the invisible strange changes...I hope it worked, and added an error write logic which is kinda tricky but should work 😉 As for the 2nd comment The Has → HasFlag change is needed: PnP Framework and PnP.Core.Provisioning both define a |
|
Thanks @Adam-it , merged it . HasFlag is the right one to have , awesome stuff, will be available starting with tomorrow's nightly builds !! |
|

🎯 Aim
The aim is to add
- Experimentaloption provisioning template commands so that when used it will use PnP.Core.Provisioning engine under the hood, and not PnP Framework.Worth pointing out
Since PnP Core is more MS Graph and SP Rest based, additional scopes are needed than just
AllSites.FullControl. So in order to use PnP.Core.Provisioning fully the app reg should have the followingSelect Microsoft Graph > Delegated permissions > select
Group.ReadWrite.AllSelect Microsoft Graph > Delegated permissions > select
openidSelect Microsoft Graph > Delegated permissions > select
profileSelect Microsoft Graph > Delegated permissions > select
Sites.Manage.AllSelect Microsoft Graph > Delegated permissions > select
User.Read.AllSelect SharePoint > Delegated permissions > select
AllSites.FullControlSelect SharePoint > Delegated permissions > select
AllSites.ManageSelect SharePoint > Delegated permissions > select
TermStore.ReadWrite.AllSelect SharePoint > Delegated permissions > select
User.Read.All📸 Result