introduction to powershell at chicago code camp 2014
DESCRIPTION
An introduction to Microsoft's PowerShell scripting language.TRANSCRIPT
![Page 1: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/1.jpg)
2014
Introduction to PowerShell MICHAEL BLUMENTHALPSC GROUP, LLC
![Page 2: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/2.jpg)
2014
Who is Michael Blumenthal?
• Sr. Solution Architect at PSC Group• CSPUG Co-Leader• INETA Champ 2010-2013• 19 years in IT Consulting• 7 years working with PowerShell• Twitter: @MichaelBL
![Page 3: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/3.jpg)
2014
Why PowerShell?
![Page 4: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/4.jpg)
2014
PowerShell puts the SharePoint Engine at your fingertips!
• It’s Easy to Get Started!1• Learn the PowerShell Syntax2• Real World Examples3• Best Practices4• More Resources5
![Page 5: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/5.jpg)
2014
Chapter 1
IT’S EASY TO GET STARTED!
![Page 6: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/6.jpg)
2014
Getting Started with PowerShell
200320082008 R220127, 8, 8.1
![Page 7: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/7.jpg)
2014
Windows Feature
![Page 8: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/8.jpg)
2014
V2
![Page 9: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/9.jpg)
2014
PowerShell V3&4 ISE
![Page 10: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/10.jpg)
2014
Chapter 2
LEARN THE POWERSHELL SYNTAX!
![Page 11: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/11.jpg)
2014
Learn to use PowerShell with SharePoint!
Symbols & Keywords
Using the SharePoint API
Creating and Running Scripts
![Page 12: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/12.jpg)
2014
Symbols, Keywords, and Syntax! Oh My!
• Variables1• Commands2• Piping3• Comparisons4• Flow Control5• Filtering6
![Page 13: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/13.jpg)
2014
Punctuation Pronunciation
$ _ : %# [ ] ( ) ;| . + ={ } < > ! /, \“ -
![Page 14: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/14.jpg)
2014
Pop Quiz…
1$#|
![Page 15: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/15.jpg)
2014
Variables
• Case Insensitive, Dynamic typing
$foo
$true, $false, $profile, $null
$foo = “Hello, World”
1
![Page 16: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/16.jpg)
2014
![Page 17: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/17.jpg)
2014
Commands are called cmdlets.
Verb-Noun
Built-in, Extensible
Get-Help & Help
Get-Member
2
![Page 18: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/18.jpg)
2014
Help!
![Page 19: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/19.jpg)
2014
The Power of Piping!
Output Of Command 1
Input of Command 2|
3
![Page 20: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/20.jpg)
2014
Example
![Page 21: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/21.jpg)
2014
Dial zero for an…4
Operator
-eq -le-ne -like-gt -notlike-ge -match-lt -notmatch
![Page 22: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/22.jpg)
2014
Example
![Page 23: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/23.jpg)
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}ForEach• If (Test) {Commands} • if ($web.Title –ne “”) {Write-Host $web.Title}
If• While (Condition){Commands}• while($val -ne 3){$val++; Write-Host $val}While
5
![Page 24: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/24.jpg)
2014
Example
![Page 25: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/25.jpg)
2014
Where-Object
•Where {<Test>}Syntax
• V1&2:Dir | Where {$_.Name –like
“B*”}• V3:Dir | where Name –like B*
Example
6
![Page 26: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/26.jpg)
2014
Executing Scripts
.\filename.ps1
Set-ExecutionPolicy Unrestricted
![Page 27: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/27.jpg)
2014
Chapter 3
REAL WORLD EXAMPLES
![Page 28: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/28.jpg)
2014
Real World Examples
•Flash cards•Dell Service Tag•Audio Alerts•MP3 Metadata Management•Managing Microsoft Server Products•File Conversion & Text Manipulation
![Page 29: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/29.jpg)
2014
Flash Cards
![Page 30: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/30.jpg)
2014
Get-DellServiceTag
• Get-WmiObject win32_SystemEnclosure | select serialnumber
![Page 31: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/31.jpg)
2014
Audio Alerts
• Stick this at the end of your long running script:
$Voice = new-object -com SAPI.SpVoice $Voice.Speak(“Deployment is done!")
![Page 32: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/32.jpg)
2014
File and Text Wrangling
• Word• AutoDOCX
• RegEx• PSObjTXT
• Export-• CSVCSV
![Page 33: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/33.jpg)
2014
Chapter 4
BEST PRACTICES
![Page 34: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/34.jpg)
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 name with 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.
• #>
![Page 35: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/35.jpg)
2014
Find custom commands this way
Refresh the command list
Actions you can take once you fill in parameters
![Page 36: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/36.jpg)
2014
Self Announcing Functions
…
![Page 37: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/37.jpg)
2014
Source Code Control
![Page 38: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/38.jpg)
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
![Page 39: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/39.jpg)
2014
Chapter 5
MORE RESOURCES
![Page 41: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/41.jpg)
2014
![Page 42: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/42.jpg)
2014
![Page 43: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/43.jpg)
2014
![Page 44: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/44.jpg)
2014
Resources Summary
PowerShell Product Team Blog
TechNet Script Center PowerShell in Action by Br
uce Payette CodePlex: PSBBs (mine) CodePlex:SPInstaller Blog.BlumenthalIT.Net SharePointJack.com
• Jeff Hicks• Gary LaPointe • Raymond Mitchell• Todd Klindt• POSHCODE.ORG• get-spscripts.com• SPYam
![Page 45: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/45.jpg)
2014
Script something today!
It’s Easy to Get Started!
Learn & Use the PowerShell Syntax
More Resources
In Review…
![Page 46: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/46.jpg)
2014
Questions
• Michael BlumenthalSharePoint ArchitectPSC Group, LLC
• [email protected]• psclistens.com• www.cspug.org• Twitter: @MichaelBL• LinkedIn• Microsoft Midwest Customers
Yammer Network
Thank you for your time today.
![Page 47: Introduction to PowerShell at Chicago Code Camp 2014](https://reader033.vdocument.in/reader033/viewer/2022061606/5560b869d8b42aef3b8b4b54/html5/thumbnails/47.jpg)
2014
In Memory of Dave Bost6/30/1970-4/7/2014
Developer Evangelist at Microsoft for 8 yearsSeptember 2005 – October 2013He was a great supporter of the Chicago technical community.
Please donate to his family’s chosen cause, Pitt Hopkins Research Foundationhttp://pitthopkins.org/donate/
More about Dave Bost’s passing: Obit: http://bit.ly/1msYRLRDavid Giard’s blog: http://bit.ly/1fhIvR2