Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Boulos Dib
November 16, 2011
http://blog.boulosdib.com @boulosdib
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)
Agenda Quick PowerShell Review
SharePoint 2010 Management Shell
PowerShell (Functions, CmdLet)
SharePoint CmdLets by Group
Best Practices
Sample Scripts
Tools
Resources
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
Review - What is a shell “A shell is the piece of software that lets you access the functionality provided by the operating system. “ Bruce Payette - Co-Designer and Implementer of the PowerShell language. Example
Windows Explorer Command.com Cmd.exe Bash (Unix) PowerShell
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
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
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.
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.
Error Handling Terminating vs. Nonterminating Errors
Trap
Throw – Sometime useful for parameters
function hi ($name=$(throw '$name is required')) {"Hi $name"}
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." }
Snapins, Providers and Drives Get-PSProvider | Format-List Name, PSSnapin
Get-PSSnapin
Get-PSProvider
Get-PSDrive
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
Threading & Proper Object Disposal $Host.Runspace.ThreadOptions = "ReuseThread"
Get-SPAssignment –Global
$spWeb = Get-SPWeb -Identity $url
$spWeb.TreeViewEnabled = $True
$spWeb.Update()
Stop-SPAssignment –Global
Web Application Get-SPWebApplication
New-SPWebApplication
Remove-SPWebApplication
Set-SPWebApplication
Solutions Get-SPSolution
Add-SPSolution
Remove-SPSolution
Install-SPSolution
UnInstall-SPSolution
Update-SPSolution
Site Collections Backup-SPSite
Get-SPSite
Move-SPSite
New-SPSite
Remove-SPSite
Restore-SPSite
Set-SPSite
Tools - Productivity Tool Url
PowerGUI 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 for PowerShell
http://wasp.codeplex.com/
Visual Studio Hosted NuGet
http://nuget.org/
http://nuget.codeplex.com/
PowerGUI vsix
http://powerguivsx.codeplex.com/
StudioShell
http://studioshell.codeplex.com/
Books – PowerShell PowerShell in Action
Bruce Payette
“The book from the authority on PowerShell”
Windows PowerShell 2.0 Bible By Thomas Lee, Karl Mitschke,
Mark E. Schill, and Tome Tanasovski
http://powertoe.wordpress.com/ (Tome’s blog)
Books – PowerShell & SharePoint Automating Microsoft SharePoint
2010 Administration with Windows PowerShell 2.0
Gary Lapointe & Shannon Bray
http://blog.falchionconsulting.com/
http://sppowershell.com/
PowerShell for Microsoft Sharepoint 2010 Administrators.
Niklas Goude & Mattias Karlsson http://www.powershell.nu/ http://mysharepointofview.com/