SlideShare a Scribd company logo
1 of 47
Download to read offline
State of the
SharePoint PowerShell
Nation 2017
Spencer Harbar
14 octobre 2017
#SPSParis
Merci pour votre soutien
Salut! / Hello!
• Now working mostly with Azure & Data Centre related technologies…
• Azure PaaS, .NET microservices, blockchain, PowerShell, network, data centre security and automation
• ....but there is no escape from SharePoint! ☺ “Just when I thought I was out… they pull me back in.”
• Like most of us, I started with SharePoint, by “accident” nearly 20 years ago
• Tries to avoid being sat in front of a computer
• Makes photographs, climbs rocks, makes music, plays golf, drinks whisky
• Works mostly with enterprise customers
• Works with SP PG on futures and field readiness
Architect
Edinburgh, United Kingdom
www.harbar.net spence@harbar.net @harbars
Agenda
• Common approaches to PowerShell for SharePoint
• Core priniciples of PowerShell
• SharePoint specific Considerations
• Office 365 specific considerations
• Introduction to re-usable Tooling
• Desired State Configuration
• Worked example for SharePoint
• Other techniques to consider
• Summary
Common Approaches to
PowerShell for SharePoint
Typical SharePoint PowerShell “Snippets”
Typical SharePoint PowerShell “Snippets”
Über scripts
• AutoSPInstaller
• SPAuto
• AutoSPDeploy
• SPModule
• etc
Adhoc Scripting
• Automation versus Productivity
• Absolutely imperative to understand what a script does!
• And how it does it
• The devil is always in the detail!
• Not everything can be done with a cmdlet
• Bugs and issues with SharePoint cmdlets and/or management APIs
• SPO/Office 365 “pattern” – set credentials, connect, perform action, commit
Focus on Initial Deployment
• Installing and configuring farm(s) is simply the beginning
• Operational Service Management over the deployment lifecycle is
way more important than building out a farm
• Does operations have familiarity with key components?
• Or are they merely executing scripts provided to them?
Core PowerShell Prinicples
PowerShell Principles
• One could figure out all scenarios and implement solutions for them
• However, scenarios change!
• The world, especially the SharePoint world can be a messy place
• Think… Type… Get
• What each customer thinks/wants is different
• Monad Manifesto – the Origin of Windows PowerShell
https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.ev
ol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/
01/91/05/67/Monad%20Manifesto%20-%20Public.doc
Compositional Management
• For example, Add a User
• Many, many variables
• Each customer’s process will be different
• “The whole is greater than the sum of its parts”
• Aristotle
• It’s not about understanding a bunch of cmdlets
• But how to use them together to deliver automation solutions
It’s all about a Toolbox
• Allows for fast and easy creation of solutions for operational scenarios
• Different Tools for different jobs
• Modular, reusable
• Become a tool maker rather than a “tool” ☺
• Don’t be an adhoc scripter solving immediate problems
• The time invested will pay off over the medium term
• Allowing you to make better use of your time and skills
• Allows you to learn much more
• Can be used across other products
• Any skills investment targeting On Premises will be valuable elsewhere
SharePoint Considerations
Working on it…
• Originally built 2007-2009
• It’s a Snap-in, not a module
• No xcopy, no dynamic discovery, slow to load
• Inconsistent naming, inconsistent parameters
• Incorrect handling of optional parameters and Nulls
• Incorrect handling of switch parameters
• “Missing” cmdlets
• Inadequate and missing help implementation
• Major bugs
• Significant dependencies
Working on it…
Working on it…
• Missing playbook
• Major bugs
• Significant dependencies
• Most elements are simply shims for inadequate, legacy management
APIs
• Most elements entirely devoid of remoting principles
• All the non-SharePoint work needed when operating a SharePoint farm
• AD, DNS, SQL, Network Stack, NLB, SQL Server etc
• Bottom line: It’s a legacy implementation, we need to provide the
“toolbox”
Examples
Examples
• Update-SPProfilePhotoStore requires specific Web App Policy to
avoid need to use the Farm Account:
Management APIs mean…
• Order of provisioning
• will change steps required in many cases
• Significantly impacts permissions and inheritance
• The missing playbook
• the definition of what must be done in a given situation
• In the past, sometimes also known as documentation ☺
• http://www.harbar.net/archive/2016/03/21/The-Playbook-Imperative-and-
Changing-the-Distributed-Cache-Service-Identity.aspx
Playbook Example
• The Distributed Cache service account change…
• must be performed using Windows PowerShell
• must be performed on a server which runs Distributed Cache
• must take place on a server with the Distributed Cache service running
• For new SharePoint 2013 farms, the service account should be changed after
deploying the first Distributed Cache server, and before deploying the
additional Distributed Cache servers
• must take place when only a single server is in the Cache Cluster
• will result in data loss as all cache hosts must be removed
• requires that any cache size configuration be re-applied
• For new SharePoint 2016 farms, the service account should be changed after
farm creation, and before deploying any Distributed Cache servers
Playbook Example
• Show PowerShell module….
• Find online at
https://www.powershellgallery.com/packages/SharePointDistributed
Cache/1.4
Playbook Example
Install-Module -Name SharePointDistributeCache
Office 365 Considerations
Office 365 Considerations
• SPO/Office 365 “pattern” – set credentials, connect, perform action,
commit
• Requires consideration of caching, conflicts and inter-service
dependencies
• Other related technologies which assist – JSON, ARM etc
• Will change the approach to toolbox
Reusable Tooling
Desired State Configuration
• The preferred model for PowerShell automation across the stack
• The “make it so” engine
• Ensure initial deployment and operational state
• SharePoint DSC Resources are a quality implementation, but…
• focus on initial deployment
• Many elements of SharePoint do not allow the full DSC implementation
• Enforces a deployment approach
• Additional infrastructure requirements
• Most issues are not the resources but rather the back end management APIs
• https://github.com/PowerShell/SharePointDsc
SharePoint / Office 365 PnP PowerShell
CmdLets
• https://github.com/SharePoint/PnP-PowerShell
• Library of PowerShell Cmdlets for provisioning and artifact
management
• Leverages CSOM
• On Premises and Office 365
• https://channel9.msdn.com/blogs/OfficeDevPnP/Introductio
n-to-PnP-PowerShell-Cmdlets
“Workpads”
• Many customers invest in building a “workpad”
• Working set of common routines and utilities which avoid risks of
adhoc scripting
• Which combine together the variety of approaches discussed
Example Farm Build and
“Workpad”
Wrap Up
Summary
• SharePoint’s management APIs and legacy PowerShell
implementation prevents a “step change” in automation
solutions
• Become a tool maker rather than a “tool”
• Remember the core principal of PowerShell – compositional
management
• Invest in building a “toolkit” for common administration tasks
• Understand the “quirks” of SharePoint, Office 365 and Azure
Summary
• Stay current with PowerShell platform capabilities
• Past examples include remoting, classes and of course DSC
• There will be more especially related to large scale management scenarios
and X platform
• Feedback to Microsoft on what needs fixed
• Whilst legacy management APIs are unlikely to be addressed…
• SP On Premises team are invested in bridging the gaps in this area…
Thank you, for your for #SPSParis

More Related Content

What's hot

AtlasCamp 2014: Preparing Your Plugin for JIRA Data Center
AtlasCamp 2014: Preparing Your Plugin for JIRA Data CenterAtlasCamp 2014: Preparing Your Plugin for JIRA Data Center
AtlasCamp 2014: Preparing Your Plugin for JIRA Data CenterAtlassian
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...Jon Peck
 
Advanced Core Data - The Things You Thought You Could Ignore
Advanced Core Data - The Things You Thought You Could IgnoreAdvanced Core Data - The Things You Thought You Could Ignore
Advanced Core Data - The Things You Thought You Could IgnoreAaron Douglas
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUGJon Peck
 
SharePoint and javascript – modern development
SharePoint and javascript – modern developmentSharePoint and javascript – modern development
SharePoint and javascript – modern developmentYannick Plenevaux
 
Json api dos and dont's
Json api dos and dont'sJson api dos and dont's
Json api dos and dont'sNeven Rakonić
 
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConDeep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConSPTechCon
 
Optimizing Access with SQL Server
Optimizing Access with SQL ServerOptimizing Access with SQL Server
Optimizing Access with SQL ServerPRPASS Chapter
 
The Cireson Sessions: Cireson Portal
The Cireson Sessions: Cireson Portal The Cireson Sessions: Cireson Portal
The Cireson Sessions: Cireson Portal Cireson
 
SQL Server 2016 JSON
SQL Server 2016 JSONSQL Server 2016 JSON
SQL Server 2016 JSONDavide Mauri
 
A Deep-Dive into Real-World SharePoint App Development
A Deep-Dive into Real-World SharePoint App DevelopmentA Deep-Dive into Real-World SharePoint App Development
A Deep-Dive into Real-World SharePoint App DevelopmentSPC Adriatics
 
NOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itNOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itMark Rackley
 
Introduction to SharePoint Developer
Introduction to SharePoint DeveloperIntroduction to SharePoint Developer
Introduction to SharePoint DeveloperKelly Jones
 
One Neos CMS - many websites
One Neos CMS - many websitesOne Neos CMS - many websites
One Neos CMS - many websitespunkt.de GmbH
 
Azure ML: from basic to integration with custom applications
Azure ML: from basic to integration with custom applicationsAzure ML: from basic to integration with custom applications
Azure ML: from basic to integration with custom applicationsDavide Mauri
 
SPS Kansas City - Gathering requirements and building taxonomy - November 2013
SPS Kansas City - Gathering requirements and building taxonomy - November 2013SPS Kansas City - Gathering requirements and building taxonomy - November 2013
SPS Kansas City - Gathering requirements and building taxonomy - November 2013Ruven Gotz
 
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...BIWUG
 
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013Ruven Gotz
 
Battle scarred but still standing publish: A SharePoint Admin's tell-all
Battle scarred but still standing publish: A SharePoint Admin's tell-allBattle scarred but still standing publish: A SharePoint Admin's tell-all
Battle scarred but still standing publish: A SharePoint Admin's tell-allJason Himmelstein
 

What's hot (20)

AtlasCamp 2014: Preparing Your Plugin for JIRA Data Center
AtlasCamp 2014: Preparing Your Plugin for JIRA Data CenterAtlasCamp 2014: Preparing Your Plugin for JIRA Data Center
AtlasCamp 2014: Preparing Your Plugin for JIRA Data Center
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
 
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
The Great Consolidation - Entertainment Weekly Migration Case Study - SANDcam...
 
Advanced Core Data - The Things You Thought You Could Ignore
Advanced Core Data - The Things You Thought You Could IgnoreAdvanced Core Data - The Things You Thought You Could Ignore
Advanced Core Data - The Things You Thought You Could Ignore
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUG
 
SharePoint and javascript – modern development
SharePoint and javascript – modern developmentSharePoint and javascript – modern development
SharePoint and javascript – modern development
 
Json api dos and dont's
Json api dos and dont'sJson api dos and dont's
Json api dos and dont's
 
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConDeep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
 
Optimizing Access with SQL Server
Optimizing Access with SQL ServerOptimizing Access with SQL Server
Optimizing Access with SQL Server
 
The Cireson Sessions: Cireson Portal
The Cireson Sessions: Cireson Portal The Cireson Sessions: Cireson Portal
The Cireson Sessions: Cireson Portal
 
SQL Server 2016 JSON
SQL Server 2016 JSONSQL Server 2016 JSON
SQL Server 2016 JSON
 
A Deep-Dive into Real-World SharePoint App Development
A Deep-Dive into Real-World SharePoint App DevelopmentA Deep-Dive into Real-World SharePoint App Development
A Deep-Dive into Real-World SharePoint App Development
 
NOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itNOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need it
 
Introduction to SharePoint Developer
Introduction to SharePoint DeveloperIntroduction to SharePoint Developer
Introduction to SharePoint Developer
 
One Neos CMS - many websites
One Neos CMS - many websitesOne Neos CMS - many websites
One Neos CMS - many websites
 
Azure ML: from basic to integration with custom applications
Azure ML: from basic to integration with custom applicationsAzure ML: from basic to integration with custom applications
Azure ML: from basic to integration with custom applications
 
SPS Kansas City - Gathering requirements and building taxonomy - November 2013
SPS Kansas City - Gathering requirements and building taxonomy - November 2013SPS Kansas City - Gathering requirements and building taxonomy - November 2013
SPS Kansas City - Gathering requirements and building taxonomy - November 2013
 
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
 
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013
SPS Kansas City - MS-Access and SharePoint - The new old thing - November 2013
 
Battle scarred but still standing publish: A SharePoint Admin's tell-all
Battle scarred but still standing publish: A SharePoint Admin's tell-allBattle scarred but still standing publish: A SharePoint Admin's tell-all
Battle scarred but still standing publish: A SharePoint Admin's tell-all
 

Similar to I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar

Spsatx slides (widescreen)
Spsatx slides (widescreen)Spsatx slides (widescreen)
Spsatx slides (widescreen)Ryan Dennis
 
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfxVincent Biret
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...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...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)
 
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...Vincent Biret
 
Lifecycle Management with SharePoint Apps and Solutions
Lifecycle Management with SharePoint Apps and SolutionsLifecycle Management with SharePoint Apps and Solutions
Lifecycle Management with SharePoint Apps and SolutionsSPC Adriatics
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
Practical Tips for Migrating SharePoint Customizations to Office 365
Practical Tips for Migrating SharePoint Customizations to Office 365Practical Tips for Migrating SharePoint Customizations to Office 365
Practical Tips for Migrating SharePoint Customizations to Office 365Haniel Croitoru
 
Managing SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellManaging SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellRyan Dennis
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFXVincent Biret
 
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   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
 
Powering a Startup with Apache Spark with Kevin Kim
Powering a Startup with Apache Spark with Kevin KimPowering a Startup with Apache Spark with Kevin Kim
Powering a Startup with Apache Spark with Kevin KimSpark Summit
 
PowerShell Basics for Office Apps and Servers
PowerShell Basics for Office Apps and ServersPowerShell Basics for Office Apps and Servers
PowerShell Basics for Office Apps and ServersGreg McMurray
 
Mastering Office 365 with PowerShell - TechDays Finland 2020
Mastering Office 365 with PowerShell -  TechDays Finland 2020Mastering Office 365 with PowerShell -  TechDays Finland 2020
Mastering Office 365 with PowerShell - TechDays Finland 2020Matti Paukkonen [MVP]
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint FrameworkVincent Biret
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
Release Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnPRelease Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnPPetter Skodvin-Hvammen
 

Similar to I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar (20)

Spsatx slides (widescreen)
Spsatx slides (widescreen)Spsatx slides (widescreen)
Spsatx slides (widescreen)
 
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
 
SharePoint 2016 Upgrade Planning
SharePoint 2016 Upgrade PlanningSharePoint 2016 Upgrade Planning
SharePoint 2016 Upgrade Planning
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
 
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
 
Lifecycle Management with SharePoint Apps and Solutions
Lifecycle Management with SharePoint Apps and SolutionsLifecycle Management with SharePoint Apps and Solutions
Lifecycle Management with SharePoint Apps and Solutions
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Practical Tips for Migrating SharePoint Customizations to Office 365
Practical Tips for Migrating SharePoint Customizations to Office 365Practical Tips for Migrating SharePoint Customizations to Office 365
Practical Tips for Migrating SharePoint Customizations to Office 365
 
Managing SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellManaging SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShell
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
 
O365: Attack of the Clones
O365: Attack of the ClonesO365: Attack of the Clones
O365: Attack of the Clones
 
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   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...
 
Powering a Startup with Apache Spark with Kevin Kim
Powering a Startup with Apache Spark with Kevin KimPowering a Startup with Apache Spark with Kevin Kim
Powering a Startup with Apache Spark with Kevin Kim
 
PowerShell Basics for Office Apps and Servers
PowerShell Basics for Office Apps and ServersPowerShell Basics for Office Apps and Servers
PowerShell Basics for Office Apps and Servers
 
Mastering Office 365 with PowerShell - TechDays Finland 2020
Mastering Office 365 with PowerShell -  TechDays Finland 2020Mastering Office 365 with PowerShell -  TechDays Finland 2020
Mastering Office 365 with PowerShell - TechDays Finland 2020
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
 
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint Beast
 
Release Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnPRelease Management with Visual Studio Team Services and Office Dev PnP
Release Management with Visual Studio Team Services and Office Dev PnP
 

More from SPS Paris

B2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam LevithanB2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam LevithanSPS Paris
 
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...SPS Paris
 
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...SPS Paris
 
U2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succèsU2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succèsSPS Paris
 
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...SPS Paris
 
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...SPS Paris
 
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...SPS Paris
 
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad CatrinescuU5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad CatrinescuSPS Paris
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretSPS Paris
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierSPS Paris
 
D5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio StruyfD5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio StruyfSPS Paris
 
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...SPS Paris
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...SPS Paris
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...SPS Paris
 
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...SPS Paris
 
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...SPS Paris
 
SPS Paris 2017 agenda
SPS Paris 2017 agendaSPS Paris 2017 agenda
SPS Paris 2017 agendaSPS Paris
 

More from SPS Paris (17)

B2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam LevithanB2 - The History of Content Security: Part 2 - Adam Levithan
B2 - The History of Content Security: Part 2 - Adam Levithan
 
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
B4 - Teams, groups, SharePoint, Yammer - what should i use and when - Dux Ray...
 
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
B6 - An initiative to healthcare analytics with Office 365 & PowerBI - Thuan ...
 
U2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succèsU2 - Déployer Microsoft Teams avec succès
U2 - Déployer Microsoft Teams avec succès
 
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
B5 - Introduction à Microsoft Flow - Isabelle Van Campenhoudt, Sabrine chouk,...
 
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
B3 - Building Humanitarian Applications with PowerApps, Flow and Office 365 -...
 
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
U6 - Modern collaboration in teams and projects powered by Office 365 - Jaspe...
 
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad CatrinescuU5   Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
U5 Qu'est-ce que VOUS obtenez de SharePoint hybride ? - Vlad Catrinescu
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
 
D6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier CarpentierD6 - Les nouveautés SPFx - Olivier Carpentier
D6 - Les nouveautés SPFx - Olivier Carpentier
 
D5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio StruyfD5 - Getting up to speed with type script development - Elio Struyf
D5 - Getting up to speed with type script development - Elio Struyf
 
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
D3 - SharePoint framework – une nouvelle expérience de développement - Gaetan...
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
 
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
I4 - Méthodes d'audit et d'optimisation pour votre tenant Office 365 - Joelle...
 
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
I1 - Securing Office 365 and Microsoft Azure like a rockstar (or like a group...
 
SPS Paris 2017 agenda
SPS Paris 2017 agendaSPS Paris 2017 agenda
SPS Paris 2017 agenda
 

Recently uploaded

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

I6 - State of the art SharePoint PowerShell Nation 2017 - Spencer Harbar

  • 1. State of the SharePoint PowerShell Nation 2017 Spencer Harbar 14 octobre 2017 #SPSParis
  • 3.
  • 4. Salut! / Hello! • Now working mostly with Azure & Data Centre related technologies… • Azure PaaS, .NET microservices, blockchain, PowerShell, network, data centre security and automation • ....but there is no escape from SharePoint! ☺ “Just when I thought I was out… they pull me back in.” • Like most of us, I started with SharePoint, by “accident” nearly 20 years ago • Tries to avoid being sat in front of a computer • Makes photographs, climbs rocks, makes music, plays golf, drinks whisky • Works mostly with enterprise customers • Works with SP PG on futures and field readiness Architect Edinburgh, United Kingdom www.harbar.net spence@harbar.net @harbars
  • 5.
  • 6. Agenda • Common approaches to PowerShell for SharePoint • Core priniciples of PowerShell • SharePoint specific Considerations • Office 365 specific considerations • Introduction to re-usable Tooling • Desired State Configuration • Worked example for SharePoint • Other techniques to consider • Summary
  • 8.
  • 11. Über scripts • AutoSPInstaller • SPAuto • AutoSPDeploy • SPModule • etc
  • 12. Adhoc Scripting • Automation versus Productivity • Absolutely imperative to understand what a script does! • And how it does it • The devil is always in the detail! • Not everything can be done with a cmdlet • Bugs and issues with SharePoint cmdlets and/or management APIs • SPO/Office 365 “pattern” – set credentials, connect, perform action, commit
  • 13. Focus on Initial Deployment • Installing and configuring farm(s) is simply the beginning • Operational Service Management over the deployment lifecycle is way more important than building out a farm • Does operations have familiarity with key components? • Or are they merely executing scripts provided to them?
  • 15.
  • 16. PowerShell Principles • One could figure out all scenarios and implement solutions for them • However, scenarios change! • The world, especially the SharePoint world can be a messy place • Think… Type… Get • What each customer thinks/wants is different • Monad Manifesto – the Origin of Windows PowerShell https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.ev ol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/ 01/91/05/67/Monad%20Manifesto%20-%20Public.doc
  • 17. Compositional Management • For example, Add a User • Many, many variables • Each customer’s process will be different • “The whole is greater than the sum of its parts” • Aristotle • It’s not about understanding a bunch of cmdlets • But how to use them together to deliver automation solutions
  • 18. It’s all about a Toolbox • Allows for fast and easy creation of solutions for operational scenarios • Different Tools for different jobs • Modular, reusable • Become a tool maker rather than a “tool” ☺ • Don’t be an adhoc scripter solving immediate problems • The time invested will pay off over the medium term • Allowing you to make better use of your time and skills • Allows you to learn much more • Can be used across other products • Any skills investment targeting On Premises will be valuable elsewhere
  • 20.
  • 21. Working on it… • Originally built 2007-2009 • It’s a Snap-in, not a module • No xcopy, no dynamic discovery, slow to load • Inconsistent naming, inconsistent parameters • Incorrect handling of optional parameters and Nulls • Incorrect handling of switch parameters • “Missing” cmdlets • Inadequate and missing help implementation • Major bugs • Significant dependencies
  • 23. Working on it… • Missing playbook • Major bugs • Significant dependencies • Most elements are simply shims for inadequate, legacy management APIs • Most elements entirely devoid of remoting principles • All the non-SharePoint work needed when operating a SharePoint farm • AD, DNS, SQL, Network Stack, NLB, SQL Server etc • Bottom line: It’s a legacy implementation, we need to provide the “toolbox”
  • 25. Examples • Update-SPProfilePhotoStore requires specific Web App Policy to avoid need to use the Farm Account:
  • 26.
  • 27. Management APIs mean… • Order of provisioning • will change steps required in many cases • Significantly impacts permissions and inheritance • The missing playbook • the definition of what must be done in a given situation • In the past, sometimes also known as documentation ☺ • http://www.harbar.net/archive/2016/03/21/The-Playbook-Imperative-and- Changing-the-Distributed-Cache-Service-Identity.aspx
  • 28. Playbook Example • The Distributed Cache service account change… • must be performed using Windows PowerShell • must be performed on a server which runs Distributed Cache • must take place on a server with the Distributed Cache service running • For new SharePoint 2013 farms, the service account should be changed after deploying the first Distributed Cache server, and before deploying the additional Distributed Cache servers • must take place when only a single server is in the Cache Cluster • will result in data loss as all cache hosts must be removed • requires that any cache size configuration be re-applied • For new SharePoint 2016 farms, the service account should be changed after farm creation, and before deploying any Distributed Cache servers
  • 29. Playbook Example • Show PowerShell module…. • Find online at https://www.powershellgallery.com/packages/SharePointDistributed Cache/1.4
  • 30. Playbook Example Install-Module -Name SharePointDistributeCache
  • 32.
  • 33. Office 365 Considerations • SPO/Office 365 “pattern” – set credentials, connect, perform action, commit • Requires consideration of caching, conflicts and inter-service dependencies • Other related technologies which assist – JSON, ARM etc • Will change the approach to toolbox
  • 35.
  • 36. Desired State Configuration • The preferred model for PowerShell automation across the stack • The “make it so” engine • Ensure initial deployment and operational state • SharePoint DSC Resources are a quality implementation, but… • focus on initial deployment • Many elements of SharePoint do not allow the full DSC implementation • Enforces a deployment approach • Additional infrastructure requirements • Most issues are not the resources but rather the back end management APIs • https://github.com/PowerShell/SharePointDsc
  • 37. SharePoint / Office 365 PnP PowerShell CmdLets • https://github.com/SharePoint/PnP-PowerShell • Library of PowerShell Cmdlets for provisioning and artifact management • Leverages CSOM • On Premises and Office 365 • https://channel9.msdn.com/blogs/OfficeDevPnP/Introductio n-to-PnP-PowerShell-Cmdlets
  • 38. “Workpads” • Many customers invest in building a “workpad” • Working set of common routines and utilities which avoid risks of adhoc scripting • Which combine together the variety of approaches discussed
  • 39.
  • 40. Example Farm Build and “Workpad”
  • 42.
  • 43. Summary • SharePoint’s management APIs and legacy PowerShell implementation prevents a “step change” in automation solutions • Become a tool maker rather than a “tool” • Remember the core principal of PowerShell – compositional management • Invest in building a “toolkit” for common administration tasks • Understand the “quirks” of SharePoint, Office 365 and Azure
  • 44. Summary • Stay current with PowerShell platform capabilities • Past examples include remoting, classes and of course DSC • There will be more especially related to large scale management scenarios and X platform • Feedback to Microsoft on what needs fixed • Whilst legacy management APIs are unlikely to be addressed… • SP On Premises team are invested in bridging the gaps in this area…
  • 45.
  • 46.
  • 47. Thank you, for your for #SPSParis