Introduction to PowerShell - Presented to the SDC Nov 3, 2014

Preview:

DESCRIPTION

This is an introduction to PowerShell that I presented to the Software Development Community in Naperville, IL on November 2, 2014.

Citation preview

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

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

• MBlumenthal@psclistens.com• psclistens.com• www.cspug.org• Twitter: @MichaelBL• LinkedIn• Microsoft Midwest Customers

Yammer Network

Thank you for your time today.

PSC is Hiring!

Recommended