2014
Introduction to PowerShell MICHAEL BLUMENTHALPSC GROUP, LLC
2014
Who is Michael Blumenthal?
• PSC Group• Sr. Solution Architect• SharePoint Architect• Speaker
• CSPUG Co-Leader• 19 years in IT Consulting• 7 years working with PowerShell
2014
Why PowerShell?
Command Line Control of
EVERY
Product!MICROSOFT
2014
The Road To Power (Shell)
• It’s Easy to Get Started!1• Learn the PowerShell Syntax2• Real World Examples3• Best Practices4• More Resources5
2014
Chapter 1
IT’S EASY TO GET STARTED!
2014
Getting Started with PowerShell
20032008, R2,2012, R2
7, 8, 8.1, +
2014
Windows Feature
2014
V2
2014
PowerShell V3&4 ISE
2014
Chapter 2
LEARN THE POWERSHELL SYNTAX!
2014
Symbols, Keywords, and Syntax! Oh My!
• Variables1• Commands2• Piping3• Comparisons4• Flow Control5• Filtering6
2014
Punctuation Pronunciation
$ _ : %# [ ] ( ) ;| . + ={ } < > ! /, \“ -
2014
Pop Quiz…
1$#|
2014
Variables
• Case Insensitive, Dynamic typing
$foo
$true, $false, $profile, $null
$foo = “Hello, World”
1
2014
2014
Commands are called cmdlets.
Verb-Noun
Built-in, Extensible
Get-Help & Help
Get-Member
2
2014
Help!
2014
The Power of Piping!
Output Of Command 1
Input of Command 2|
3
Example
2014
Dial zero for an…4
Operator
-eq -le-ne -like-gt -notlike-ge -match-lt -notmatch
2014
Example
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
2014
Example
2014
Where-Object
•Where {<Test>}Syntax
• V1&2:Dir | Where {$_.Name –like
“B*”}• V3:Dir | where Name –like B*
Example
6
2014
Executing Scripts
.\filename.ps1
Set-ExecutionPolicy Unrestricted
2014
2014
Chapter 3
REAL WORLD EXAMPLES
2014
Real World Examples
•Dell Service Tag•Audio Alerts•Flash cards•MP3, MP4 Management•Managing Microsoft Server Products•File Conversion & Text Manipulation
2014
Get-DellServiceTag
• Get-WmiObject win32_SystemEnclosure | select serialnumber
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
Flash Cards
2014
Managing Video Files
2014
File and Text Wrangling
• Word• AutoDOCX
• RegEx• PSObjTXT
• Export-• CSVCSV
2014
Chapter 4
BEST PRACTICES
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.
• #>
2014
Find custom commands this way
Refresh the command list
Actions you can take once you fill in parameters
2014
Self Announcing Functions
…
2014
Source Code Control
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
Demo Time!
2014
Chapter 5
MORE RESOURCES
2014
2014
2014
2014
Resources Summary
PowerShell Product Team Blog
TechNet Script Center Manning Press Books Blog.BlumenthalIT.Net
• Jeff Hicks• POSHCODE.ORG• SPYam• Michaelblumenthal.me
2014
Script something today!
It’s Easy to Get Started!
Learn & Use the PowerShell Syntax
More Resources
In Review…
2014
Raffle
• Two PowerShell E-books courtesy of Manning Press
• Windows PowerShell in Action, Second Edition
• PowerShell in Depth, Second Edition
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.
PSC is Hiring!
Top Related