managing sharepoint anywhere with windows powershell
DESCRIPTION
With the growing adoption of Office 365 and SharePoint Online and the continued prevalence of SharePoint on-premises, it’s becoming more difficult to manage both environments in an automated fashion. While SharePoint Online does have native support for Windows PowerShell, there are very few cmdlets to manage the sites and site contents. SharePoint on-premises gives us well over 700 cmdlets, but it still doesn’t answer every situational scenario – leaving gaps in functionality which can be filled by scripters. In this demo-heavy session, focused on both the developer AND the administrator – you’ll see how you can use one shell to manage both scenarios (on-premises and Office 365). Demonstrations will focus on building PowerShell Scripts and Advanced Functions for both target environments, and by the end of the session you’ll be ready to start Managing SharePoint Anywhere with PowerShell.TRANSCRIPT
![Page 1: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/1.jpg)
Managing SharePoint Anywhere with Windows
PowerShellRyan Dennis
![Page 2: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/2.jpg)
Ryan DennisSenior SharePoint Consultant at Blue Chip Consulting Group
Recently published first book as a co-author
SP Geek Father
Drummer Husbandwww.bluechip-llc.com
@SharePointRyan
/in/SharePointRyan
/SharePointRyanDotCom
www.sharepointryan.com
Dog Lover Author
http://bit.ly/MMS13book
![Page 3: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/3.jpg)
Archie the Corgi
![Page 4: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/4.jpg)
Ask Our Experts!
• Visit the Blue Chip booth to chat with one of our Expert Consultants
• Drop us your business card, and we’ll help you solve your business problem and you might win an XBOX One**
• Our resident SharePoint MCM/MVP is here all day, Monday & Tuesday*
• Visit our other sessions in the SharePoint & PowerShell tracks!
*Except when presenting**Drawing Tuesday.
Paul Stork@PStork
Paul is a Microsoft SharePoint MVP and MCM who works as
Principal Architect at Blue Chip Consulting Group. An author and/or contributor on several SharePoint books, Paul is a well-known contributor to the SharePoint community.
Blue Chip Featured Expert
![Page 5: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/5.jpg)
Get-Agenda
• Housekeeping• Intro to Advanced Functions• SharePoint PowerShell On-Premise• SharePoint PowerShell in Office 365• Using Client Side Object Model
(CSOM) code in PowerShell• Q&A
![Page 6: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/6.jpg)
Get-Help –Topic “PowerShell”
…is a task-based command-line shell and scripting language designed especially for Windows system administration
…has a task-based scripting language
…includes powerful object manipulation capabilities
…is built on the .NET Framework
![Page 7: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/7.jpg)
Verb-Noun
PowerShell uses a Verb-Noun syntax for its Cmdlets• Get-Something• Set-Something• New-Something• Remove-Something
Quick Tip!Use Get-Verb to find approved verbs! Use
Verb-Noun in your code!
![Page 8: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/8.jpg)
• Use Get-Command to see available commandsGet-Command –Module Microsoft.SharePoint.PowerShellGet-Command –Module Microsoft.Online.SharePoint.PowerShell
• Use Get-Help <CmdletName> to get help information for a cmdlet
Get-Command & Get-Help
Quick Tip!Add Help to your
scripts and functions!
![Page 9: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/9.jpg)
• SharePoint 2010– 500+ Cmdlets…– MUCH better than STSADM.exe in prior versions…– Can automate complete installations and
configurations…
• SharePoint 2013– 700+ Cmdlets!
• Still doesn’t answer every scenario, leaving gaps in functionality…– Example: Get, New and Remove SharePoint Groups – no cmdlet, easy to write a
custom function though…
Get-Command –Type “SharePoint”
Opportunity!Write our own
scripts and functions!
![Page 10: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/10.jpg)
Get-Help About_Functions_Advanced
…allow you to perform operations that are similar to the operations you can perform with cmdlets…quickly write a function without having to write a compiled cmdlet using a Microsoft .NET Framework language (C#)…use the CmdletBinding() attribute to identify them as functions that act similar to cmdlets
Quick Tip!Use Get-Help
About_Functions_Advanced for more info!
![Page 11: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/11.jpg)
New-Function –Name “Our First Function”
• Leverages all of the Write-* cmdlets in the Microsoft.PowerShell.Utility module
• Includes Switch statement, ValidateSet, Try/Catch/Finally, etc.
• Includes comment-based-help with examples
• Can be run just like a cmdletDisclaimer!
This is NOT a SharePoint demo, just a
general PowerShell demo!
![Page 12: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/12.jpg)
D E M OWrite-Message
![Page 13: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/13.jpg)
Get-Recap
• Reviewed Write-Message function…• Created output using all Write* types• Saw the behavior of –Verbose and –
Debug switches• Had some fun…
![Page 14: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/14.jpg)
Get-Info “SP PowerShell On-Premises”
• Uses the Microsoft.SharePoint.PowerShell snap-in
• Access to hundreds* of native cmdlets
• Script using Server Side Object Model Code
• Run as default (administrative) user• Must have server access *782 cmdlets on
my SP 2013 April 2014 CU farm.
![Page 15: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/15.jpg)
Get-Info “SP PowerShell O365”
• Uses the Microsoft.Online.SharePoint.PowerShell module
• Access to thirty* (30) native cmdlets• Script using Client Side Object Model
Code• Provide user credentials for
ClientContext• No need for server access*30 cmdlets as of
9/19/2014.
![Page 16: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/16.jpg)
Get-Started -with “SP Online Scripting”
• Download the SharePoint Online Management Shell
• Use Connect-SPOService to connect to your Tenant SharePoint Administration Site
• Use Get-Command –Module Microsoft.Online.SharePoint.PowerShell to see the available cmdlets
![Page 17: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/17.jpg)
Get-Intro –Topic “SharePoint CSOM”
• Add the following Assemblies–Microsoft.SharePoint.Client.dll–Microsoft.SharePoint.Client.Runtime.dll
• Create a ClientContext variable• Call the Load() and ExecuteQuery()
methods• Once context is created, get and set
properties… For help on writing CSOM, see
http://bit.ly/MsdnCsom
![Page 18: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/18.jpg)
D E M OSharePoint Online
![Page 19: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/19.jpg)
Get-Recap
• Loaded assemblies using: Import-SPOAssemblies
• Created context using New-SPOServiceContext
• Created a new Site usingNew-SPOWeb
• Retrieved Web usingGet-SPOWeb
• Set Properties withSet-SPOWebProperties
Important!All of these
functions/commands are a part of our custom PowerShell Module! Not OOTB.
![Page 20: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/20.jpg)
Get-Info –Type “Bonus”
• All of this works on-premises as well…– Just need to create ClientContext()
differently• Use the System.Net.NetworkCredential object
instead of Microsoft.SharePoint.Client.SharePointOnlineCredentials
• It is security trimmed, if you don’t have SP permissions to do this – you can’t…
• CSOM != SSOM– You do not have access to all of the same
methods and properties…
![Page 21: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/21.jpg)
Q U E S T I O N S ?
![Page 22: Managing SharePoint Anywhere with Windows PowerShell](https://reader030.vdocuments.us/reader030/viewer/2022012910/557ad6a3d8b42a8f648b460c/html5/thumbnails/22.jpg)
Ryan DennisSenior SharePoint Consultant at Blue Chip Consulting Group
Recently published first book as a co-author
SP Geek Father
Drummer Husbandwww.bluechip-llc.com
@SharePointRyan
/in/SharePointRyan
/SharePointRyanDotCom
www.sharepointryan.com
Dog Lover Author
http://bit.ly/MMS13book