How to Automate SharePoint Provisioning with PNP
Framework
Knut Relbe-Moe
CTO Knowledge People AS
Product Evangelist & Partner Manager Valo
2
Slide
2
Office Server & Services MVP
Nintex vTE (Virtual Technical Evangelist)
SharePoint evangelist, mentor, speaker
Migration Expert
Educator for Glasspaper
Microsoft Certified Trainer
Product Evangelist & Partner Manager Valo
Intranet Box
Knut Relbe-Moe
knut@valointranet.com
https://linkedin.com/in/shareptkarm@shareptkarm
Thanks to the Sponsors!
What is the PnP Provisioning Engine?
• Open source community effort
• Framework for easily doing Remote Provisioning
• Part of the OfficeDev PnP Core Library
• Object Oriented engine for easy and fast Remote Provisioning
• Capabilities
• Automated Remote Provisioning
• Easy SiteTemplate Generation/Extraction
• Available in Microsoft .NET
• There are PowerShell extensions for common tasks
• Supports templating of sites and artifacts
• Reusable, updatable (delta handling)
Long story short…
• The PnP provisioning engine wraps CSOM and makes deployment
and maintenance a breeze
• 100% reliant on CSOM (client side and managed)
Moving parts
PnP Provisioning Cmdlets
• Get-PnPProvisioningTemplate
• Apply-PnPProvisioningTemplate
• Get-PnPProvisioningTemplateFromGallery
• Add-PnPFileToProvisioningTemplate
• Convert-PnPFolderToProvisioningTemplate
• Load-PnPProvisioningTemplate
• New-PnPProvisioningTemplate
• New-PnPProvisioningTemplateFromFolder
• Remove-PnPFileFromProvisioningTemplate
• Save-PnPProvisioningTemplate
• Set-PnPProvisioningTemplateMetadata
PnP Provisioning Engine Main Features
• SP2013, SP2016 and SPO
• Delta templates
• XML, JSON formatter
• Site Columns
• ContentTypes
• Lists/Libraries Instances
• Features (Site orWeb)
• Custom Actions (Site orWeb)
• Files/Pages (Wiki, WebPart)
• Taxonomies
• Composed Looks
• Site Policies
• Web Settings
• Regional Settings
• UI Languages
• Resource Files
• Audit Settings
• Workflows (SPD only)
• Search Settings
• Publishing (including Page Layouts)
Using resource files
• Create resource files for every language you want to support and use
the same names for the entries
https://twitter.com/sahilmalik/status/700297537174032384
Templates
• Templates are XML
• PnP provisioning schema covers most artifacts you can deploy
declaratively withWPSs
• Can be exported!
Exporting templates
• Use PnP PowerShell to do exports:
• Get-PNPProvisioningTemplate
• Get-PNPProvisioningTemplate -Out C:ESPCtestprovisioning.xml
• Tip run the following command before an export (or import) with powershell
in order to get more logging
Set-PNPTraceLog –On –Level Debug
Importing templates
• Use PnP PowerShell to do imports:
• Apply-PNPProvisioningTemplate -Path c:espctestprovisioning.xml
• Apply to a subsite and not a root site:
• Apply-PNPProvisioningTemplate -Path c:ESPCtestprovisioning.xml -Web
/subsite
Using Resource Files
• <?xml version="1.0"?>
<pnp:Provisioning xmlns:pnp="…">
<pnp:Preferences Generator="…" />
<pnp:Localizations>
<pnp:Localization LCID="1033" Name="English"
ResourceFile="SiteTemplate-en.resx"/>
<pnp:Localization LCID="1043" Name="Dutch"
ResourceFile="SiteTemplate-nl.resx"/>
</pnp:Localizations>
<pnp:Templates ID="CONTAINER-TEMPLATE-
8C075A44E60F4E82B8F013637DB1E654">
•
Using Resource Files
#
• <pnp:Templates ID="…">
• <pnp:ProvisioningTemplate ID="…" Version="1">
• <pnp:Lists>
• <pnp:ListInstance Title="{resource:ContactsListTitle}"
Description="Use the Contacts list …" DocumentTemplate=""
OnQuickLaunch="true" TemplateType="105" Url="Lists/contacts"
MinorVersionLimit="0" MaxVersionLimit="0"
DraftVersionVisibility="0" TemplateFeatureID="00bfea71-7e6d-
4186-9ba8-c047ac750105" EnableFolderCreation="false">
• <pnp:Views>
aka.ms/OfficeDevPnP
Thanks to the Sponsors!
Thank you
With ♥ fromValoTeam
Questions? | ThankYou
Knut Relbe-Moe
knut@valointranet.com
Session materials:
Materials will be available on slideshare,
twitter and github

How to automate the SharePoint Provisioning

  • 1.
    How to AutomateSharePoint Provisioning with PNP Framework Knut Relbe-Moe CTO Knowledge People AS Product Evangelist & Partner Manager Valo
  • 2.
    2 Slide 2 Office Server &Services MVP Nintex vTE (Virtual Technical Evangelist) SharePoint evangelist, mentor, speaker Migration Expert Educator for Glasspaper Microsoft Certified Trainer Product Evangelist & Partner Manager Valo Intranet Box Knut Relbe-Moe knut@valointranet.com https://linkedin.com/in/shareptkarm@shareptkarm
  • 3.
    Thanks to theSponsors!
  • 4.
    What is thePnP Provisioning Engine? • Open source community effort • Framework for easily doing Remote Provisioning • Part of the OfficeDev PnP Core Library • Object Oriented engine for easy and fast Remote Provisioning • Capabilities • Automated Remote Provisioning • Easy SiteTemplate Generation/Extraction • Available in Microsoft .NET • There are PowerShell extensions for common tasks • Supports templating of sites and artifacts • Reusable, updatable (delta handling)
  • 5.
    Long story short… •The PnP provisioning engine wraps CSOM and makes deployment and maintenance a breeze • 100% reliant on CSOM (client side and managed)
  • 6.
  • 7.
    PnP Provisioning Cmdlets •Get-PnPProvisioningTemplate • Apply-PnPProvisioningTemplate • Get-PnPProvisioningTemplateFromGallery • Add-PnPFileToProvisioningTemplate • Convert-PnPFolderToProvisioningTemplate • Load-PnPProvisioningTemplate • New-PnPProvisioningTemplate • New-PnPProvisioningTemplateFromFolder • Remove-PnPFileFromProvisioningTemplate • Save-PnPProvisioningTemplate • Set-PnPProvisioningTemplateMetadata
  • 8.
    PnP Provisioning EngineMain Features • SP2013, SP2016 and SPO • Delta templates • XML, JSON formatter • Site Columns • ContentTypes • Lists/Libraries Instances • Features (Site orWeb) • Custom Actions (Site orWeb) • Files/Pages (Wiki, WebPart) • Taxonomies • Composed Looks • Site Policies • Web Settings • Regional Settings • UI Languages • Resource Files • Audit Settings • Workflows (SPD only) • Search Settings • Publishing (including Page Layouts)
  • 9.
    Using resource files •Create resource files for every language you want to support and use the same names for the entries
  • 10.
  • 11.
    Templates • Templates areXML • PnP provisioning schema covers most artifacts you can deploy declaratively withWPSs • Can be exported!
  • 12.
    Exporting templates • UsePnP PowerShell to do exports: • Get-PNPProvisioningTemplate • Get-PNPProvisioningTemplate -Out C:ESPCtestprovisioning.xml • Tip run the following command before an export (or import) with powershell in order to get more logging Set-PNPTraceLog –On –Level Debug
  • 13.
    Importing templates • UsePnP PowerShell to do imports: • Apply-PNPProvisioningTemplate -Path c:espctestprovisioning.xml • Apply to a subsite and not a root site: • Apply-PNPProvisioningTemplate -Path c:ESPCtestprovisioning.xml -Web /subsite
  • 14.
    Using Resource Files •<?xml version="1.0"?> <pnp:Provisioning xmlns:pnp="…"> <pnp:Preferences Generator="…" /> <pnp:Localizations> <pnp:Localization LCID="1033" Name="English" ResourceFile="SiteTemplate-en.resx"/> <pnp:Localization LCID="1043" Name="Dutch" ResourceFile="SiteTemplate-nl.resx"/> </pnp:Localizations> <pnp:Templates ID="CONTAINER-TEMPLATE- 8C075A44E60F4E82B8F013637DB1E654"> •
  • 16.
    Using Resource Files # •<pnp:Templates ID="…"> • <pnp:ProvisioningTemplate ID="…" Version="1"> • <pnp:Lists> • <pnp:ListInstance Title="{resource:ContactsListTitle}" Description="Use the Contacts list …" DocumentTemplate="" OnQuickLaunch="true" TemplateType="105" Url="Lists/contacts" MinorVersionLimit="0" MaxVersionLimit="0" DraftVersionVisibility="0" TemplateFeatureID="00bfea71-7e6d- 4186-9ba8-c047ac750105" EnableFolderCreation="false"> • <pnp:Views>
  • 17.
  • 18.
    Thanks to theSponsors!
  • 19.
    Thank you With ♥fromValoTeam
  • 20.
    Questions? | ThankYou KnutRelbe-Moe knut@valointranet.com Session materials: Materials will be available on slideshare, twitter and github