SlideShare a Scribd company logo
Azure Automation, PnP
Provisioning and PnP PowerShell
To automate, administrate
and provision
Teams/Groups/SharePoint
Sites
Amany Sakr, Markus Möller
(Avanade)
About us
• Background
• Amany
• O365/SharePoint Consultant
• 7 Years of experience
• MCP – Cloud platform
• Markus
• Dev/Architect/SharePoint SME
• 25 years in IT, 10 years in consulting
• Loves new ways of Dev such as SPFx, PnP Provisioning, Microsoft Graph
• Public Blogger / Contributor PnP
• Basics
• Automation Account
Resources
• .
• .
• .
• UI Options
Azure
Automation
• Basics
• Authentication
PnP Powershell
• Scope
• Capabilities
• XML Templates (in Azure)
PnP Provisioning
• Provisioning Microsoft Teams / Groups / Sites
• Support of PnP Components
• Lessons learned
Agenda
Azure Automation
Basics – Why
use Azure
Automation?
Azure Automation setup much simpler than comparing
technologies
PnP PowerShell one of the
best ‚tools‘ to work with
SharePoint
Low # lines of code
Can use same codebase for user requests as for
administrative reasons
„Lightweight“ provisioning
engine approach
But also scalable to high end
... But you need a UI except for administrative use ...
Azure
Automation
Account -
Resources
• The Modules
• The Assets
• Credentials
• Variables
• Certificates
• The Runbooks
• Jobs
• Schedules
• Source control
Azure
Automation
Account
Resources
Demo
PnP PowerShell
Quiz
PnP PowerShell
• PnP Community project
• Monthly update (+ emergency updates)
• Based on CSOM and Microsoft Graph SDK (.Net)
• Therefore versions for SPO, 2013, 2016, 2019 available
• „The“ way to administrate modern SharePoint
• E.g. Much more authentication ways than „SPO“
Authentication
Ways of
authentication
(unattended)
Legacy Authentication with
credentials
Modern App based authentication
App ID / Secret for Graph
App ID / Secured with Certificate for SPO
Legacy
authentication
vs
Modern App
for SPO
Steps to establish modern auth
• App registration with consented permissions
• Sites.FullControl.All, (Termstore?), (UserProfiles?)
• Create a self signed certificate with PnP PowerShell
• Store certificate in Automation Account assets
• Store AppID and certificate password in Automation Account assets
Benefits:
• No need to care for SiteCollection Admin
• Less code needed finally!
• Prevents user-context bugs (such as multi-lingual)
• More stable
PnP Provisioning
PnP
Provisioning
How You Used To
Provision Site
Artifacts in the past ?
CAML/XML –based Feature
Framework
What is the difference
between the past and
now?
Cloud
Why PnP
Provisioning?
necessity of Remote
Provisioning techniques
What PnP
Provisioning?
XML Template driven
How to Use PnP
Provisiong?
Design Your Site, Export your
PnP Template & Reuse
PnP Provisioning VS (Site Design & Site Scripts)
Only Available in Sharepoint Online
Taxonomy Provisioning not
available
Hardcoded implementation
Only Site level provisioning
Site designs are like a template. They can be used each time a new site is created to apply a consistent set of
actions
Available in both SPO & On
Premises
Taxonomy Provisioning
Variables and Token support
Tenant Artifacts Provisioning
Provisioning Engine
Azure Automation
SharePoint
Online
SharePoint
Online Sites
O365 Groups
Teams
Provision PnP XML
Template
<pnp:Properties />
<pnp:SitePolicy />
<pnp:WebSettings />
<pnp:RegionalSettings />
<pnp:SupportedUILanguages />
<pnp:AuditSettings />
<pnp:PropertyBagEntries />
<pnp:Security />
<pnp:Navigation />
<pnp:SiteFields />
<pnp:ContentTypes />
<pnp:Lists />
<pnp:Features />
<pnp:CustomActions />
<pnp:Files />
<pnp:Pages />
<pnp:TermGroups />
<pnp:ComposedLook />
<pnp:Workflows />
<pnp:SearchSettings />
<pnp:Publishing />
<pnp:ApplicationLifecycleManagement />
<pnp:Providers />
<pnp:SiteWebhooks />
<pnp:ClientSidePages />
<pnp:Header />
<pnp:Footer />
<pnp:ProvisioningTemplateWebhooks />
19
PnP Provisioning
Recently published:
<pnp:Team>
<pnp:FunSettings />
<pnp:GuestSettings />
<pnp:MembersSettings />
<pnp:MessagingSettings />
<pnp:Security>
<pnp:Owners></pnp:Owners>
<pnp:Members></pnp:Members>
</pnp:Security>
<pnp:Channels>
<pnp:Channel>
<pnp:Tabs></pnp:Tabs>
<pnp:TabResources />
<pnp:Messages></pnp:Messages>
</pnp:Channel>
</pnp:Channels>
<pnp:Apps></pnp:Apps>
</pnp:Team>
Provision a full
Team with
custom list and
custom Tab
Demo
UI options to start Azure Automation
• SharePoint Framework Webpart
• SharePoint Framework Webpart+AzureFunction
• PowerApp / PowerAutomate / LogicApp
• With (Premium) Connector
• With webhook
• .Net MVC App
UI options
Demo
• Server side API issue
• Detected:
14-May-2019
• Fixed
16-May-2019
• Roll out announced
Within 36hrs
• PnP Provisioning
related issue
• Detected:
14-May-2019
• Fixed PnP Core (.Net)
• 15-May-2019
• Fixed PnP PowerShell
• 15-May-2019 (2hrs later)
23
What if ...
Support on PnP Open Source solutions
Premium Support
Open Source
Community Support
84 hrs till solved
24 hrs till solved
PnP Provisioning follow up
issue
• Detected:
16-May-2019
• Fixed PnP Core (.Net)
• 16-May-2019
• Fixed PnP PowerShell
• 16-May-2019 (2hrs later)
Open Source
Community Support
24 hrs till solved
Lessons Learned
• Use modularized approach (better than 1 „big“ script)
• „Problem solver“ Pattern:
1. Use PnP Provisioning Template
2. Use PnP Powershell
3. Use Invoke-RestMethod directly (Connect-PnPOnline, Get-PnPAccessToken help to auth)
4. Call CSOM code from PS directly
5. Write your own PS cmdlet
• Big migration pattern:
1. Create ALL Sites/Groups/Teams
2. Provision ALL Sites/Groups/Teams
3. Do further steps with ALL Sites/Groups/Teams
• Modern App Auth is not only „modern“ but solves lots of problems
• Multilingual bugs, Site Collection Admin bugs, ...
Resources
• Markus‘ Blog on Azure Automation
• Microsoft demo on Provisioning Teams with Azure Automation
• PnP Provisioning Issues (mostly Core issues)
• PnP PowerShell Issues (if not Core related)
• PnP Provisioning Schema and samples
• SharePoint Online Provisioning Service (beta)
• Modern SP authentication with PnP PowerShell
Thank You
Ad

Recommended

Web jobs, Azure Functions and Serverless Computing
Web jobs, Azure Functions and Serverless Computing
Paris Polyzos
 
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Rencore
 
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
Sébastien Levert
 
Azure Functions in Action #OrlandoCC
Azure Functions in Action #OrlandoCC
Baskar rao Dsn
 
How to automate the SharePoint Provisioning
How to automate the SharePoint Provisioning
Knut Relbe-Moe [MVP, MCT]
 
Era of server less computing
Era of server less computing
Baskar rao Dsn
 
Era of server less computing final
Era of server less computing final
Baskar rao Dsn
 
Google App Engine - September 17 2009
Google App Engine - September 17 2009
sullis
 
O365: Attack of the Clones
O365: Attack of the Clones
Christopher Johnson
 
From PowerShell Function to Serverless code with Azure Functions
From PowerShell Function to Serverless code with Azure Functions
Jaap Brasser
 
Discover Microsoft's Cloud Automation Suite
Discover Microsoft's Cloud Automation Suite
Jaap Brasser
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
DIWUG
 
Using Microsoft Flow for IT Professionals
Using Microsoft Flow for IT Professionals
Jaap Brasser
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Waldek Mastykarz
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
Automate Anything with Microsoft Flow
Automate Anything with Microsoft Flow
Jaap Brasser
 
Create awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShell
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
TelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAX
Ed Charbeneau
 
Monolith to microservices - our journey
Monolith to microservices - our journey
Giles Williams
 
Microsoft Flow and PowerShell combined to automate everything
Microsoft Flow and PowerShell combined to automate everything
Jaap Brasser
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOps
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!
Jaap Brasser
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
Sébastien Levert
 

More Related Content

What's hot (20)

O365: Attack of the Clones
O365: Attack of the Clones
Christopher Johnson
 
From PowerShell Function to Serverless code with Azure Functions
From PowerShell Function to Serverless code with Azure Functions
Jaap Brasser
 
Discover Microsoft's Cloud Automation Suite
Discover Microsoft's Cloud Automation Suite
Jaap Brasser
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
DIWUG
 
Using Microsoft Flow for IT Professionals
Using Microsoft Flow for IT Professionals
Jaap Brasser
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Waldek Mastykarz
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
Automate Anything with Microsoft Flow
Automate Anything with Microsoft Flow
Jaap Brasser
 
Create awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShell
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
TelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAX
Ed Charbeneau
 
Monolith to microservices - our journey
Monolith to microservices - our journey
Giles Williams
 
Microsoft Flow and PowerShell combined to automate everything
Microsoft Flow and PowerShell combined to automate everything
Jaap Brasser
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOps
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!
Jaap Brasser
 
From PowerShell Function to Serverless code with Azure Functions
From PowerShell Function to Serverless code with Azure Functions
Jaap Brasser
 
Discover Microsoft's Cloud Automation Suite
Discover Microsoft's Cloud Automation Suite
Jaap Brasser
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
SPSNL17 - Be more effective with the PnP Provisioning Engine - Erwin van Hunen
DIWUG
 
Using Microsoft Flow for IT Professionals
Using Microsoft Flow for IT Professionals
Jaap Brasser
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Waldek Mastykarz
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
Automate Anything with Microsoft Flow
Automate Anything with Microsoft Flow
Jaap Brasser
 
Create awesome Azure Functions with PowerShell
Create awesome Azure Functions with PowerShell
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
TelerikNEXT What's new in UI for ASP.NET AJAX
TelerikNEXT What's new in UI for ASP.NET AJAX
Ed Charbeneau
 
Monolith to microservices - our journey
Monolith to microservices - our journey
Giles Williams
 
Microsoft Flow and PowerShell combined to automate everything
Microsoft Flow and PowerShell combined to automate everything
Jaap Brasser
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
Using Chat Automation - ChatOps
Using Chat Automation - ChatOps
Jaap Brasser
 
Automate it with Azure Functions
Automate it with Azure Functions
Jaap Brasser
 
Automate yourself out of a job - Use ChatOps!
Automate yourself out of a job - Use ChatOps!
Jaap Brasser
 

Similar to Azure Automation, PnP Provisioning and PnP PowerShell (20)

aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Rencore
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
SUGES (SharePoint Users Group España)
 
from ai.backend import python @ pycontw2018
from ai.backend import python @ pycontw2018
Chun-Yu Tseng
 
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
Eric Overfield
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
Sébastien Levert
 
Mastering Office 365 with PowerShell - TechDays Finland 2020
Mastering Office 365 with PowerShell - TechDays Finland 2020
Matti Paukkonen [MVP]
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
Sébastien Levert
 
Modern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint Online
DocFluix, LLC
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
Sébastien Levert
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
Sébastien Levert
 
Spsnyc transforming share point farm solutions to the add-in model and shar...
Spsnyc transforming share point farm solutions to the add-in model and shar...
spsnyc
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
Vincent Biret
 
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
aOS Canadian Tour - Montreal - From SharePoint to Office 365 Development
Sébastien Levert
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Rencore
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
SUGES (SharePoint Users Group España)
 
from ai.backend import python @ pycontw2018
from ai.backend import python @ pycontw2018
Chun-Yu Tseng
 
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
All You Need to Know for Automated SharePoint Site Provisioning with PnP Powe...
Eric Overfield
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
Sébastien Levert
 
Mastering Office 365 with PowerShell - TechDays Finland 2020
Mastering Office 365 with PowerShell - TechDays Finland 2020
Matti Paukkonen [MVP]
 
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
SharePoint Saturday Ottawa - From SharePoint to Office 365 Development
Sébastien Levert
 
Modern Automated Site Provisioning for SharePoint Online
Modern Automated Site Provisioning for SharePoint Online
DocFluix, LLC
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
Sébastien Levert
 
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
ESPC 2016 - From SharePoint to Office 365 Development - The path to your new ...
Sébastien Levert
 
Spsnyc transforming share point farm solutions to the add-in model and shar...
Spsnyc transforming share point farm solutions to the add-in model and shar...
spsnyc
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
Vincent Biret
 
Ad

More from Markus Moeller (6)

Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
Markus Moeller
 
Microsoft 365 De Security pdf
Microsoft 365 De Security pdf
Markus Moeller
 
Extend your Teams Meetings with Custom Meeting Apps
Extend your Teams Meetings with Custom Meeting Apps
Markus Moeller
 
SharePoint goes Microsoft Graph
SharePoint goes Microsoft Graph
Markus Moeller
 
Teams Meeting Apps
Teams Meeting Apps
Markus Moeller
 
Develop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft Teams
Markus Moeller
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
Markus Moeller
 
Microsoft 365 De Security pdf
Microsoft 365 De Security pdf
Markus Moeller
 
Extend your Teams Meetings with Custom Meeting Apps
Extend your Teams Meetings with Custom Meeting Apps
Markus Moeller
 
SharePoint goes Microsoft Graph
SharePoint goes Microsoft Graph
Markus Moeller
 
Develop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft Teams
Markus Moeller
 
Ad

Recently uploaded (20)

OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 

Azure Automation, PnP Provisioning and PnP PowerShell

  • 1. Azure Automation, PnP Provisioning and PnP PowerShell To automate, administrate and provision Teams/Groups/SharePoint Sites Amany Sakr, Markus Möller (Avanade)
  • 2. About us • Background • Amany • O365/SharePoint Consultant • 7 Years of experience • MCP – Cloud platform • Markus • Dev/Architect/SharePoint SME • 25 years in IT, 10 years in consulting • Loves new ways of Dev such as SPFx, PnP Provisioning, Microsoft Graph • Public Blogger / Contributor PnP
  • 3. • Basics • Automation Account Resources • . • . • . • UI Options Azure Automation • Basics • Authentication PnP Powershell • Scope • Capabilities • XML Templates (in Azure) PnP Provisioning • Provisioning Microsoft Teams / Groups / Sites • Support of PnP Components • Lessons learned Agenda
  • 5. Basics – Why use Azure Automation? Azure Automation setup much simpler than comparing technologies PnP PowerShell one of the best ‚tools‘ to work with SharePoint Low # lines of code Can use same codebase for user requests as for administrative reasons „Lightweight“ provisioning engine approach But also scalable to high end ... But you need a UI except for administrative use ...
  • 6. Azure Automation Account - Resources • The Modules • The Assets • Credentials • Variables • Certificates • The Runbooks • Jobs • Schedules • Source control
  • 10. PnP PowerShell • PnP Community project • Monthly update (+ emergency updates) • Based on CSOM and Microsoft Graph SDK (.Net) • Therefore versions for SPO, 2013, 2016, 2019 available • „The“ way to administrate modern SharePoint • E.g. Much more authentication ways than „SPO“
  • 12. Ways of authentication (unattended) Legacy Authentication with credentials Modern App based authentication App ID / Secret for Graph App ID / Secured with Certificate for SPO
  • 14. Steps to establish modern auth • App registration with consented permissions • Sites.FullControl.All, (Termstore?), (UserProfiles?) • Create a self signed certificate with PnP PowerShell • Store certificate in Automation Account assets • Store AppID and certificate password in Automation Account assets Benefits: • No need to care for SiteCollection Admin • Less code needed finally! • Prevents user-context bugs (such as multi-lingual) • More stable
  • 16. PnP Provisioning How You Used To Provision Site Artifacts in the past ? CAML/XML –based Feature Framework What is the difference between the past and now? Cloud Why PnP Provisioning? necessity of Remote Provisioning techniques What PnP Provisioning? XML Template driven How to Use PnP Provisiong? Design Your Site, Export your PnP Template & Reuse
  • 17. PnP Provisioning VS (Site Design & Site Scripts) Only Available in Sharepoint Online Taxonomy Provisioning not available Hardcoded implementation Only Site level provisioning Site designs are like a template. They can be used each time a new site is created to apply a consistent set of actions Available in both SPO & On Premises Taxonomy Provisioning Variables and Token support Tenant Artifacts Provisioning
  • 18. Provisioning Engine Azure Automation SharePoint Online SharePoint Online Sites O365 Groups Teams Provision PnP XML Template
  • 19. <pnp:Properties /> <pnp:SitePolicy /> <pnp:WebSettings /> <pnp:RegionalSettings /> <pnp:SupportedUILanguages /> <pnp:AuditSettings /> <pnp:PropertyBagEntries /> <pnp:Security /> <pnp:Navigation /> <pnp:SiteFields /> <pnp:ContentTypes /> <pnp:Lists /> <pnp:Features /> <pnp:CustomActions /> <pnp:Files /> <pnp:Pages /> <pnp:TermGroups /> <pnp:ComposedLook /> <pnp:Workflows /> <pnp:SearchSettings /> <pnp:Publishing /> <pnp:ApplicationLifecycleManagement /> <pnp:Providers /> <pnp:SiteWebhooks /> <pnp:ClientSidePages /> <pnp:Header /> <pnp:Footer /> <pnp:ProvisioningTemplateWebhooks /> 19 PnP Provisioning Recently published: <pnp:Team> <pnp:FunSettings /> <pnp:GuestSettings /> <pnp:MembersSettings /> <pnp:MessagingSettings /> <pnp:Security> <pnp:Owners></pnp:Owners> <pnp:Members></pnp:Members> </pnp:Security> <pnp:Channels> <pnp:Channel> <pnp:Tabs></pnp:Tabs> <pnp:TabResources /> <pnp:Messages></pnp:Messages> </pnp:Channel> </pnp:Channels> <pnp:Apps></pnp:Apps> </pnp:Team>
  • 20. Provision a full Team with custom list and custom Tab Demo
  • 21. UI options to start Azure Automation • SharePoint Framework Webpart • SharePoint Framework Webpart+AzureFunction • PowerApp / PowerAutomate / LogicApp • With (Premium) Connector • With webhook • .Net MVC App
  • 23. • Server side API issue • Detected: 14-May-2019 • Fixed 16-May-2019 • Roll out announced Within 36hrs • PnP Provisioning related issue • Detected: 14-May-2019 • Fixed PnP Core (.Net) • 15-May-2019 • Fixed PnP PowerShell • 15-May-2019 (2hrs later) 23 What if ... Support on PnP Open Source solutions Premium Support Open Source Community Support 84 hrs till solved 24 hrs till solved PnP Provisioning follow up issue • Detected: 16-May-2019 • Fixed PnP Core (.Net) • 16-May-2019 • Fixed PnP PowerShell • 16-May-2019 (2hrs later) Open Source Community Support 24 hrs till solved
  • 24. Lessons Learned • Use modularized approach (better than 1 „big“ script) • „Problem solver“ Pattern: 1. Use PnP Provisioning Template 2. Use PnP Powershell 3. Use Invoke-RestMethod directly (Connect-PnPOnline, Get-PnPAccessToken help to auth) 4. Call CSOM code from PS directly 5. Write your own PS cmdlet • Big migration pattern: 1. Create ALL Sites/Groups/Teams 2. Provision ALL Sites/Groups/Teams 3. Do further steps with ALL Sites/Groups/Teams • Modern App Auth is not only „modern“ but solves lots of problems • Multilingual bugs, Site Collection Admin bugs, ...
  • 25. Resources • Markus‘ Blog on Azure Automation • Microsoft demo on Provisioning Teams with Azure Automation • PnP Provisioning Issues (mostly Core issues) • PnP PowerShell Issues (if not Core related) • PnP Provisioning Schema and samples • SharePoint Online Provisioning Service (beta) • Modern SP authentication with PnP PowerShell