PowerShell and SharePoint @spsnyc July 2012
-
Upload
talbott-crowell -
Category
Technology
-
view
2.298 -
download
0
description
Transcript of PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePointTalbott Crowell
July 28, 2012SharePoint Saturday NYC #SPSNYC
http://www.thirdm.com@talbott
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Outline & Agenda• What is PowerShell?• PowerShell Basics• Tools• PowerShell and SharePoint• Creating SharePoint 2010 Cmdlets• Iteration Style Scripts
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
What is PowerShell?• Unix-like shell• Object oriented• .NET• Command line• Scripting language
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Books• Windows PowerShell in Action
– by Bruce Payette (designer and author of PowerShell)
• Windows PowerShell 2.0 Administrator's Pocket Consultant – By William R. Stanek
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Why PowerShell for SharePoint?• Automated build and deploy• Rapid prototyping• Exploring “What If” scenarios• Developer onboarding• Administration automation
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
When use PowerShell?• When you want to make your team more
agile– Automation, automation, automation
• When developing, your daily build is like the projects heartbeat– PowerShell can be the pacemaker
• Testing– Use the PowerShell scripts to stand up an
environment for running tests
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
PowerShell Basics• What do you know about a command line?– DIR
• How about– $a = DIR
• What is $a?– .NET Object
• use gm or get-member to query properites
– Array• $a[0]
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Demo - Basics• PowerShell Basics– $a = DIR– $a | gm– Dates
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Tools• cmd, notepad• PowerShell Command• Windows PowerShell Integrated
Scripting Environment (ISE)– Import-Module ServerManager;– Add-WindowsFeature PowerShell-ISE
• PowerGUI– Download from powergui.org
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
More Basics• # for comment• Verb-Noun convention for
commandlets• Write-Host “Hello World”• Set-ExecutionPolicy Unrestricted• .\scriptname to execute
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
SharePoint 2010• Comes with PowerShell Commandlets– Get-SPSite– New-SPSite– New-SPWeb
• If you are running from standard PowerShellAdd-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Create Site Collections and Sites
• Get-SPSite– Parameter: url
• New-SPSite– Parameters: url, name, ownerAlias, template
• New-SPWeb– Parameters: url, name, description, template…– Other params:
• -AddToTopNav or -UseParentTopNav• -AddToQuickLaunch
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
What about MOSS 2007 or WSS?• Your friend STSADM is still there• You can call STSADM or any command line tool
from PowerShell• You can write your own command line tools
with .NET• Better yet, you can write your own PowerShell
Commandlets!– Inherit from Cmdlet or PSCmdlet
• Gary Lapointe has WSS and MOSS Cmdlets!– http://stsadm.blogspot.com/2009/02/downloads.html
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Creating SharePoint 2010 Cmdlets
• When creating non-persistent tasks (i.e. get info) use:– SPCmdlet
• When objects persist between commands, use:– SPRemoveCmdletBase– SPNewCmdletBase– SPSetCmdletBase– SPGetCmdletBase
• For more info, see Gary Lapointe’s blog post:– http://
stsadm.blogspot.com/2009/10/creating-custom-sharepoint-2010-cmdlets.html
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Creating SharePoint Objects• [void]
[System.Reflection.Assembly]::LoadWithPartialName(”Microsoft.SharePoint”)– Load the assembly
• $SPSite = New-Object Microsoft.SharePoint.SPSite($url)– Reference to the site collection using SharePoint
object model
• Don’t forget to– $SPSite.Dispose()
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Prototype Strategy• Series of scripts to build your site• Cleanup script to destroy site• Edit script, run cleanup, run script,
view site– Repeat
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Demo – series of scripts• Build2010.ps1
– Calls other scripts
• Build2010_site_structure.ps1– Sets up the basic site structure and content types
• Build2010_upload_file.ps1– Uploads sample files to the site
• Build2010_set_logo.ps1– Adds site logo
• Build2010_add_users.ps1– Adds users to local machine and/or SharePoint groups
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Defining functions• function Get-Theme
([Microsoft.SharePoint.SPWeb]$SPWeb, [string]$themeName)
• Strong typed parameters• Returns
Microsoft.SharePoint.Utilities.ThmxTheme
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Iteration Style Scripts• Upload File
– Takes in 1 or more files
• Has 3 blocks– Begin– Process– End
• Process is executed for each file• gci 'C:\uploadfiles\Samples\Legal' | .\
build2010_upload_file.ps1 -Location "shared/legal" -DocLib "Documents" -ContentType "Document" -MetaDataField "Dept" -MetaDataValue "Legal"
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Books• Windows PowerShell in Action
– by Bruce Payette (designer and author of PowerShell)
• Windows PowerShell 2.0 Administrator's Pocket Consultant – By William R. Stanek
www.sharepointsaturday.org/boston : [email protected] : EMAIL
@SPSBoston / #SPSBos : TWITTER
http://www.thirdm.com : WEBhttp://talbottcrowell.wordpress.com : BLOG
@talbott : TWITTER
Other References• How to: Build a SharePoint 2010 PowerShell
Cmdlet– http://silverlight.sys-con.com/node/1370916
• Microsoft TechNet– http://technet.microsoft.com/en-us/library/bb978526
22 | SharePoint Saturday New York City 2011
Housekeeping
• Please remember to turn in your filled out bingo cards and event evaluations for prizes.
• SharePint is sponsored by Summit 7 Systems across the way at the Hilton NYC.
• Follow SharePoint Saturday New York City on Twitter @spsnyc and hashtag #spsnyc
Thanks to Our Sponsors!
Thank you. Questions?
PowerShell and SharePointTalbott Crowell
ThirdM.com
http://talbottcrowell.wordpress.com/
Twitter: @talbott