2014 Introduction to PowerShell MICHAEL BLUMENTHAL PSC GROUP, LLC
2014
Who is Michael Blumenthal?
• Sr. Solution Architect at PSC Group
• Office 365 MVP
• CSPUG Co-Leader
• 20 years in IT Consulting
• 8 years working with PowerShell
2014
This is about you
• Anyone used PowerShell before?
• Who’s done scripting before? Windows? Unix?
• Developer or Administrator?
2014
PowerShell puts .NET at your fingertips!
• It’s Easy to Get Started!1
• Learn the PowerShell Syntax2
• Real World Examples3
• Best Practices4
• More Resources5
2014
Symbols, Keywords, and Syntax! Oh My!
• Variables1
• Commands2
• Piping3
• Comparisons4
• Flow Control5
• Filtering6
2014
Reading Symbols in Code
•(tal Guidance
•Moe, Larry, and }
•The universe started with the Big !
•!Important
•A # of Bacon and # Browns
2014
Variables
• Case Insensitive, Dynamic typing
$something
$true, $false, $null, $profile
$myMessage= “Hello, World”
1
2014
Taking Control of the Flow
• For (Init;Test;Repeat) {Commands}
• for($i=1; $i -le 10; $i++) {Write-Host $i}For
• Foreach (Item in Collection) {Commands}
• Foreach ($web in $site.AllWebs) {$web.Title}• Collection | Foreach {Commands}
ForEach
• If (Test) {Commands} else {Commands}
• if ($web.Title –ne “”) {Write-Host $web.Title}If
• While (Condition){Commands}
• while($val -ne 3){$val++; Write-Host $val}While
5
2014
Where-Object
•Where {<Test>}Syntax
• V1&2:Dir | Where {$_.Name –like “B*”}
• V3:Dir | where Name –like B*Example
6
2014
Real World Examples
• Flash cards
•Dell Service Tag
•Audio Alerts
• File Conversion & Text Manipulation
•Managing Microsoft Server Products
2014
Audio Alerts
• Stick this at the end of your long running script:
$Voice = new-object -com SAPI.SpVoice$Voice.Speak(“Deployment is done!")
2014
Server Management
Server/Service What you can script
Azure Virtual Machines
Exchange Mailboxes
Office 365 Sites
SharePoint Everything
SQL Queries
Windows Server File system
2014
Comment your functions
• <#
• .SYNOPSIS –a brief explanation of what the script or function does.
• .DESCRIPTION – a more detailed explanation of what the script or function does.
• .PARAMETER name – an explanation of a specific parameter. Replace namewith the parameter name. You can have one of these sections for each parameter the script or function uses.
• .EXAMPLE – an example of how to use the script or function. You can have multiple .EXAMPLE sections if you want to provide more than one example.
• .NOTES – any miscellaneous notes on using the script or function.
• .LINK – a cross-reference to another help topic; you can have more than one of these. If you include a URL beginning with http:// or https://, the shell will open that URL when the Help command’s –online parameter is used.
• #>
2014
Find custom commands this way
Refresh the command list
Actions you can take once you fill in parameters
2014
More Good Ideas
• Always read scripts before running them
• Make yours safe when others don’t
• Check for valid parameter values
• get-help about_Functions_Advanced_Parameters
• Do error handling
• get-help about_Try_Catch_Finally
• get-help about_CommonParameters• -ErrorAction and -ErrorVariable
2014
2014
Questions
• Michael BlumenthalSr. Solution ArchitectPSC Group, LLC
• psclistens.com
• MichaelBlumenthal.me
• Twitter: @MichaelBL
• Microsoft Midwest Customers Yammer Network
Thank you for your time today.