Introduction to PowerShell at Chicago Code Camp 2014

Post on 24-May-2015

193 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

An introduction to Microsoft's PowerShell scripting language.

Transcript

2014

Introduction to PowerShell MICHAEL BLUMENTHALPSC GROUP, LLC

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

2014

Why PowerShell?

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

2014

Chapter 1

IT’S EASY TO GET STARTED!

2014

Getting Started with PowerShell

200320082008 R220127, 8, 8.1

2014

Windows Feature

2014

V2

2014

PowerShell V3&4 ISE

2014

Chapter 2

LEARN THE POWERSHELL SYNTAX!

2014

Learn to use PowerShell with SharePoint!

Symbols & Keywords

Using the SharePoint API

Creating and Running Scripts

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

2014

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

Chapter 3

REAL WORLD EXAMPLES

2014

Real World Examples

•Flash cards•Dell Service Tag•Audio Alerts•MP3 Metadata Management•Managing Microsoft Server Products•File Conversion & Text Manipulation

2014

Flash Cards

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

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

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

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.

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

top related