PowerShell for SharePoint Developers

1,561 views

Published on

PowerShell for Sharepoint developers is a follow-up presentation to the NYC Sharepoint Developers user group. Session presented on 2011-11-16.

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,561
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
29
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

PowerShell for SharePoint Developers

  1. 1. Boulos Dib November 16, 2011http://blog.boulosdib.com @boulosdib
  2. 2. PS> Describe-Presenter Independent Consultant – Napeague Inc. Professional Software Development since 1983 Few Facts  First Personal Computer 1980 – TRS-80 III  First Z80 based product (EPROM based Protocol Adaptor – 1984)  First Commercial PC-DOS product (Telex on PCs – 1985)  Started 16-bit Windows Development using Win 3.1  Developed on: 8080/Z80, 68xxx, PDP/RSX,VAX-VMS and x86/x64 (C/C++/C#)  Worked with PowerShell since Monad (2006)  Worked with SharePoint since STS (2003)  More facts  Favorite sport – Windsurfing   Favorite hobby – Playing my sunburst Fender Stratocaster+ guitar.  Favorite guitar players  Wes Montgomery, Larry Carlton and Ritchie Blackmore (Deep Purple, Rainbow)
  3. 3. Agenda Quick PowerShell Review SharePoint 2010 Management Shell PowerShell (Functions, CmdLet) SharePoint CmdLets by Group Best Practices Sample Scripts Tools Resources
  4. 4. PowerShell Review Interactive Command Shell Programmatic Execution Environment Dynamic Scripting Language Extensible (CmdLets, .Net etc…) Hosted (i.e. NuGet/PowerGUI vsix) Management tool for Servers
  5. 5. Review - What is a shell“A shell is the piece of software that lets you access thefunctionality provided by the operating system. “Bruce Payette - Co-Designer and Implementer of thePowerShell language. Example  Windows Explorer  Command.com  Cmd.exe  Bash (Unix)  PowerShell
  6. 6. Review - Consistent Environment Common Parameters  -Verbose  -Debug  -WarningAction  -WarningVariable  -ErrorAction  -ErrorVariable  -OutVariable  -OutBuffer Risk Mitigation Parameters (certainly critical in a production environment)  What-If  -Confirm Whildcard support.  All names and parameter value can support wildcard. Pipeline
  7. 7. Where do I start Verb-XXNoun  Verbs: Get, Set, New, Write, Read  Nouns: Drive, Variable, Provider, Site, Collection Most important command  Get-Help  Get-Help *  Get-Help *drive*  Get-Member  Get-Command
  8. 8. PowerShell Functions Scripts Error Handling Parameters Splatting Remoting PSSession
  9. 9. Functions Functions is a script block containing list of statements function small_files ($size = 100MB) {  Get-ChildItem c: | where { $_.length -lt $size -and !$_.PSIsContainer}  } To control how a function uses the pipeline, you use Begin, Process and End. function pipelineFunction {  process {"The value is: $_"} } 1,2,3 | pipelineFunction Advanced functions allow you to write CmdLets using scripts instead of compiled code.
  10. 10. Scripts A Script file is a text file with .ps1 extension containing one or more PowerShell command A Script is a simple mechanism to re-use functionality. To run a script on a remote computer, use the Invoke- Command and provide remote computer name as a parameter. Scripts can accept parameters. To run a script in the current session, we Dot-Source the . .Script1.ps1 We can Scope Local or Global.
  11. 11. Error Handling Terminating vs. Nonterminating Errors Trap Throw – Sometime useful for parameters  function hi ($name=$(throw $name is required)) {"Hi $name"}
  12. 12. Errors Handling – as in C# try { $wc = new-object System.Net.WebClient $wc.DownloadFile("http://www.contoso.com/MyDoc.doc") } catch [System.Net.WebException],[System.IO.IOException] { unable to download MyDoc.doc from http://www.contoso.com." } catch { "An error occurred that could not be resolved." }
  13. 13. Snapins, Providers and Drives Get-PSProvider | Format-List Name, PSSnapin Get-PSSnapin Get-PSProvider Get-PSDrive
  14. 14. PowerShell Modules Get-Module –ListAvailable Import-Module ActiveDirectory
  15. 15. SharePoint Management Shell SharePoint Management Shell differs slightly from the Standard PowerShell: Runspace Threading  $Host.Runspace.ThreadOptions = "ReuseThread“ SharePoint Specific Snap-In  Add-PSSnapin Microsoft.SharePoint.PowerShell
  16. 16. Threading & Proper ObjectDisposal $Host.Runspace.ThreadOptions = "ReuseThread" Get-SPAssignment –Global  $spWeb = Get-SPWeb -Identity $url  $spWeb.TreeViewEnabled = $True  $spWeb.Update() Stop-SPAssignment –Global
  17. 17. Sharepoint CmdLets Groups Farm Application Solution Site Collection Site List and ListItem
  18. 18. Farm Backup-SPFarm Get-SPFarm Restore-SPFarm
  19. 19. Web Application Get-SPWebApplication New-SPWebApplication Remove-SPWebApplication Set-SPWebApplication
  20. 20. Solutions Get-SPSolution Add-SPSolution Remove-SPSolution Install-SPSolution UnInstall-SPSolution Update-SPSolution
  21. 21. Site Collections Backup-SPSite Get-SPSite Move-SPSite New-SPSite Remove-SPSite Restore-SPSite Set-SPSite
  22. 22. Sites Export-SPWeb Get-SPWeb Import-SPWeb New-SPWeb Remove-SPWeb Set-SPWeb
  23. 23. Tools - ProductivityTool UrlPowerGUI http://PowerGUI.org/PowerTab http://powertab.codeplex.com/Community Extensions http://pscx.codeplex.com/Quest ActiveRoles http://www.quest.com/powershell/activeroles- server.aspx/ShowUI http://showui.codeplex.com/Windows Automation Snapin http://wasp.codeplex.com/for PowerShell
  24. 24. Visual Studio Hosted NuGet  http://nuget.org/  http://nuget.codeplex.com/ PowerGUI vsix  http://powerguivsx.codeplex.com/ StudioShell  http://studioshell.codeplex.com/
  25. 25. Books – PowerShell PowerShell in Action  Windows PowerShell 2.0 Bible Bruce Payette  By Thomas Lee, Karl Mitschke, “The book from the authority on Mark E. Schill, and Tome PowerShell” Tanasovski  http://powertoe.wordpress.com/ (Tome’s blog)
  26. 26. Books – PowerShell & SharePoint Automating Microsoft SharePoint  PowerShell for Microsoft 2010 Administration with Windows Sharepoint 2010 Administrators. PowerShell 2.0 Gary Lapointe & Shannon Bray  Niklas Goude & Mattias Karlsson http://blog.falchionconsulting.com/  http://www.powershell.nu/  http://mysharepointofview.com/ http://sppowershell.com/

×