Download - Managing SharePoint Anywhere with Windows PowerShell

Transcript
Page 1: Managing SharePoint Anywhere with Windows PowerShell

Managing SharePoint Anywhere with Windows

PowerShellRyan Dennis

Page 2: Managing SharePoint Anywhere with Windows PowerShell

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

[email protected]

@SharePointRyan

/in/SharePointRyan

/SharePointRyanDotCom

www.sharepointryan.com

Dog Lover Author

http://bit.ly/MMS13book

Page 3: Managing SharePoint Anywhere with Windows PowerShell

Archie the Corgi

Page 4: Managing SharePoint Anywhere with Windows PowerShell

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

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

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

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

• 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

• 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

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

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

D E M OWrite-Message

Page 13: Managing SharePoint Anywhere with Windows PowerShell

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

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

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

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

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

D E M OSharePoint Online

Page 19: Managing SharePoint Anywhere with Windows PowerShell

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

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

Q U E S T I O N S ?

Page 22: Managing SharePoint Anywhere with Windows PowerShell

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

[email protected]

@SharePointRyan

/in/SharePointRyan

/SharePointRyanDotCom

www.sharepointryan.com

Dog Lover Author

http://bit.ly/MMS13book