Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

All You Need to Know for Automated SharePoint Site Provisioning with PnP PowerShell

This is the latest version Nov 2017 of the slidedeck. I apologize for the duplicate decks while I search for a good replacement to SlideShare.

  • Identifiez-vous pour voir les commentaires

All You Need to Know for Automated SharePoint Site Provisioning with PnP PowerShell

  1. 1. ERIC OVERFIELD | PixelMill Microsoft MVP & RD ALL YOU NEED TO KNOW FOR AUTOMATED SHAREPOINT SITE PROVISIONING WITH PNP POWERSHELL http://pxml.ly/EO-PnP-Provisioning https://github.com/eoverfield/SPPnP-Demos
  2. 2. ERIC OVERFIELD President & Co-Founder of PixelMill Microsoft MVP, Office Servers & Services Microsoft Regional Director Published SharePoint Author SharePoint Community Organizer & Contributor @ericoverfield ericoverfield.com
  3. 3. PixelMill is a modern SharePoint Design Agency based in Northern California. On the forefront of web design trends since 1998, PixelMill provides innovative collaboration portals to enhance the user adoption of SharePoint intranets, extranets, and public facing sites. PIXELMILL @pixelmillteam pixelmill.com
  4. 4. 1. SharePoint Provisioning Review 2. Introduction to SharePoint PnP 3. Provisioning SharePoint With PnP and PowerShell 4. Tips, Best Practices, and Demos OVERVIEW
  5. 5. SHAREPOINT PROVISIONING
  6. 6. @ericoverfieldericoverfield.com SharePoint Deployment Components • Site columns • Content Types • List Templates • List Instances • Master Pages • Page Layouts • General branding assets (CSS, JS, etc) COMMON SHAREPOINT DEPLOYMENT REQUIREMENTS • Content Pages • Site Templates • Office 365 Groups • Auto-Feature Activation • Site Configuration Settings • Property Bag* • Search Setup
  7. 7. @ericoverfieldericoverfield.com Feature Framework • Full Trust – SharePoint 2007 • Sandbox – SharePoint 2010 (somewhat deprecated in SPO) • Add-ins – SharePoint 2013+ Traditionally required Visual Studio • Compiled code often used – not cloud friendly • Add-in model clunky for provisioning TRADITIONAL SHAREPOINT DEVELOPMENT METHODS
  8. 8. @ericoverfieldericoverfield.com FEATURE FRAMEWORK CHALLENGE Customized site based on snapshot of existing OOTB site template with Feature provided customization provisioning Custom v16.x SharePoint/O365 v16.x Custom v16.x SharePoint/O365 v16.x.1 Features / enhancement / bug fixes / new experiences released and available to new or existing sites. Deployed automatically New features / experiences not available / difficult to transfer without continual on-going maintenance Custom V16.x SharePoint/O365 v16.x.next SharePoint Framework Copy Customizations OOTBTime
  9. 9. A BETTER WAY SHAREPOINT PNP
  10. 10. @ericoverfieldericoverfield.com SharePoint PnP – An open source Initiative • Originally created by Microsoft and a few others in 2013 • Thanks core team – http://aka.ms/OfficeDevPnP Not related to Microsoft’s general Patterns and Practices initiative SharePoint PnP – For SharePoint 2013/2016/O365 – consists of: • Code, samples, best practices • Videos, tutorials, and a toolset for customization and working with SharePoint • Thanks core team – http://aka.ms/OfficeDevPnP All available on github – https://github.com/SharePoint/PnP SHAREPOINT / OFFICE 365 DEVELOPMENT PATTERNS AND PRACTICES Patterns & Practices
  11. 11. @ericoverfieldericoverfield.com SHAREPOINT PNP
  12. 12. @ericoverfieldericoverfield.com SHAREPOINT PNP CORE COMPONENTS Project source – get the code, resources and contribute • https://github.com/SharePoint/PnP Core Component - https://github.com/SharePoint/PnP-Sites-Core • Useful to build SharePoint ready console apps PnP PowerShell - https://github.com/sharepoint/pnp-powershell/ JavaScript Core Library - https://github.com/SharePoint/PnP-JS-Core Partner Pack - https://github.com/SharePoint/PnP-Partner-Pack Monthly – Bi-weekly community calls - http://pxml.ly/2mjpckv PnP Core Component
  13. 13. Demo INTRODUCTION TO SHAREPOINT PNP
  14. 14. PNP POWERSHELL AND REMOTE PROVISIONING
  15. 15. @ericoverfieldericoverfield.com SHAREPOINT PNP CORE COMPONENTS PnP PowerShell based on a PnP Core Component Remote Provisioning Schema • https://github.com/SharePoint/PnP-Provisioning-Schema Together provide a method to repeatedly provision
  16. 16. @ericoverfieldericoverfield.com GETTING STARTED WITH PNP AND POWERSHELL Install PnP PowerShell • https://github.com/SharePoint/PnP-PowerShell#installation Windows 10 – Very easy – Open PowerShell • SPO: />Install-Module SharePointPnPPowerShellOnline –AllowClobber • SP2016: />Install-Module SharePointPnPPowerShell2016 –AllowClobber • SP2013: />Install-Module SharePointPnPPowerShell2013 –AllowClobber Have at least PowerShell V3? • /> $PSVersionTable.PSVersion • /> Invoke-Expression (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/ OfficeDev/PnP-PowerShell/master/Samples/Modules.Install/Install- SharePointPnPPowerShell.ps1')
  17. 17. @ericoverfieldericoverfield.com COMMON PNP POWERSHELL COMMANDS Update PnP PowerShell – remember, monthly updates! • Update-Module SharePointPnPPowerShell* Connect to SharePoint Site • Connect-PnPOnline -url http://pixelmill-tenant.sharepoint.com/ –Credentials (Get-Credential) Work with SharePoint data once connected, such as: • Get-PnPList • Get-PnPWeb Apply a provisioning template • Apply-PnPProvisioningTemplate -Path template.xml Get detailed help regarding a specific commandlet • Get-Help Connect-PnPOnline -Detailed
  18. 18. Demo PNP POWERSHELL INTRODUCTION
  19. 19. @ericoverfieldericoverfield.com PNP POWERSHELL USAGE SCENARIOS Connect to a site • Connect-PnPOnline -url http://pixelmill-tenant.sharepoint.com/ –Credentials (Get-Credential) Get/set site/web/list/etc settings • Get-PnPWeb, Set-PnPWeb, Get-PnPSite, Get-PnPPropertyBag Query data, such as list data, search, etc • Get-PnPSearchQuery –Query “product” Create data, such as a list, or a group • New-PnPList -Title "Demo Announcements" -Url "DemoAnnouncements" -Template Announcements • Connect-PnPMicrosoftGraph –Scopes “Group.ReadWrite.All” “User.Read.All” • New-PnPUnifiedGroup -DisplayName “PnP Demo” -Description “PnP Demo Group” -MailNickname “PnPDemo” Provision SharePoint Template • Apply-PnPProvisioningTemplate -Path .template.xml -Handlers Lists, Files, CustomActions
  20. 20. @ericoverfieldericoverfield.com PROVISIONING SHAREPOINT WITH PNP POWERSHELL Create a provisioning template – Manually or based on “template” site • XML based file based on a schema - https://github.com/SharePoint/PnP-Provisioning-Schema • Can export from existing site: /> Get-PnPProvisioningTemplate -Out template.xml • https://github.com/SharePoint/PnP-PowerShell/blob/master/Documentation/GetPnPProvisioningTemplate.md Connect to SharePoint Site: Connect-PnPOnline Apply provisioning template • Many options and handlers to customize experience without having to rewrite template • Apply-PnPProvisioningTemplate -Path template.xml -Handlers Lists, Files • https://github.com/SharePoint/PnP-PowerShell/blob/master/Documentation/ApplyPnPProvisioningTemplate.md Create a PowerShell script to standardize for your user cases • Provision modern experiences as well including modern pages and SPFx webparts
  21. 21. @ericoverfieldericoverfield.com PNP POWERSHELL PROVISIONING FRAMEWORK https://msdn.microsoft.com/en-us/pnp_articles/introducing-the-pnp-provisioning-engine
  22. 22. @ericoverfieldericoverfield.com PROVISIONING SHAREPOINT WITH PNP POWERSHELL Provisioning templates may be broken up into general tasks • Infrastructure (Site Columns, Content Types, Lists) • Taxonomy (Terms) • Files (Branding assets, master pages, page layouts, CSS, JS, Images, etc) • Custom Actions
  23. 23. Demo PNP PROVISIONING TEMPLATE
  24. 24. @ericoverfieldericoverfield.com SIMPLE POWERSHELL SCRIPTS FOR REPEATABLE PATTERS Create installation and uninstall processes • Apply-PnPProvisioningTemplate allows for sending in parameters • i.e.: -Parameters @{"InfrastructureSiteUrl"=$rootPath} Allow PS Script to accept parameters • Script may include logic to provide multiple execution paths for provisioning PnP Provisioning does not include an explicit uninstall / un-apply command • Rather use other PnP commands to remove each component as needed • /> Set-PnPWeb -SiteLogoUrl "" -AlternateCssUrl “ “ • /> Remove-PnPCustomAction -Identity $customAction.Id -Scope Site -Force
  25. 25. Demo PNP PROVISIONING WITH SCRIPTS
  26. 26. @ericoverfieldericoverfield.com PnP Provisioning Limitations PnP is open source • Not 100% flushed out – not a “Product” • Not supported by Premier Support and other direct support channels • Updated often – Good and bad – keep up to date • Lively discussions do occur on GitHub project – if you find a bug, report it • Or fix issues / feature requests yourself and submit pull requests Custom actions currently not available with Modern UI / Modern Team Sites
  27. 27. PNP PARTNER PACK
  28. 28. @ericoverfieldericoverfield.com PNP PARTNER PACK JUMPSTART YOUR PROJECTS PnP Partner Pack, currently V2 – A PnP Starter Kit • A reusable solution that combines aspects of PnP – For Office 365 • https://github.com/SharePoint/PnP-Partner-Pack Includes many features • Self-service site provisioning, fully configurable • Responsive UI package for classic team sites • UI widget for JavaScript injection to bypass custom master pages • Governance tools – Azure WebJob based remote timer jobs • Configurable branding Installation is tricky, but getting better • PnP Partner Pack installation video: https://www.youtube.com/watch?v=ezWYorZClTI
  29. 29. Demo PNP PARTNER PACK
  30. 30. @ericoverfieldericoverfield.com CONTRIBUTING TO PNP PnP is community driven • Everyone – Anyone can contribute Code, documentation, samples, PowerShell updates, fixes • All available for contribution A core team does control the flow and submission approval • Contributions are reviewed for quality – good for all Get started – Watch the video • https://www.youtube.com/watch?v=ELeGFILRFfQ
  31. 31. REVIEW 1. SharePoint Provisioning Review 2. Introduction to SharePoint PnP 3. Provisioning SharePoint With PnP and PowerShell 4. Tips, Best Practices, and Demos
  32. 32. RESOURCES
  33. 33. @ericoverfieldericoverfield.com RESOURCE S PnP Partner Pack https://github.com/SharePoint/PnP-Partner-Pack PnP PowerShell https://github.com/SharePoint/PnP-PowerShell SharePoint PnP: https://github.com/SharePoint/PnP PnP Provisioning Schema https://github.com/SharePoint/PnP-Provisioning-Schema SharePoint PnP PowerShell Command Reference http://ericoverfield.com/sharepoint-pnp-powershell-command-reference/ Participating in SharePoint PnP Initiative http://ericoverfield.com/participating-in-the-sharepoint-office-365-dev-patterns-and-practices-pnp-community-initiative/ Session Source Code https://github.com/eoverfield/SPPnP-Demos
  34. 34. THANK YOU ALL YOU NEED TO KNOW FOR AUTOMATED SHAREPOINT SITE PROVISIONING WITH PNP POWERSHELL

×