Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PowerShell for SharePoint Developers

1,588 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
  • Be the first to comment

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/

×