Top Banner
2014 Introduction to PowerShell MICHAEL BLUMENTHAL PSC GROUP, LLC
47

Introduction to PowerShell at Chicago Code Camp 2015

Jul 17, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to PowerShell at Chicago Code Camp 2015

2014

Introduction to PowerShell MICHAEL BLUMENTHAL

PSC GROUP, LLC

Page 2: Introduction to PowerShell at Chicago Code Camp 2015

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

Page 3: Introduction to PowerShell at Chicago Code Camp 2015

2014

This is about you

• Anyone used PowerShell before?

• Who’s done scripting before? Windows? Unix?

• Developer or Administrator?

Page 4: Introduction to PowerShell at Chicago Code Camp 2015

2014

Why PowerShell?

Command line control of

Page 5: Introduction to PowerShell at Chicago Code Camp 2015

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

Page 6: Introduction to PowerShell at Chicago Code Camp 2015

2014

Chapter 1

Page 7: Introduction to PowerShell at Chicago Code Camp 2015

2014

Getting Started with PowerShell

20032008,R22012, R210

7, 8, 8.1, 10

Page 8: Introduction to PowerShell at Chicago Code Camp 2015

2014

Windows Feature

Page 9: Introduction to PowerShell at Chicago Code Camp 2015

2014

The Command Line Window

Page 10: Introduction to PowerShell at Chicago Code Camp 2015

2014

The Integrated Script Editor

Page 11: Introduction to PowerShell at Chicago Code Camp 2015

2014

PowerShell V3&4 ISE

Page 12: Introduction to PowerShell at Chicago Code Camp 2015

2014

Intellisense!

Page 13: Introduction to PowerShell at Chicago Code Camp 2015

2014

Chapter 2

Page 14: Introduction to PowerShell at Chicago Code Camp 2015

2014

Symbols, Keywords, and Syntax! Oh My!

• Variables1

• Commands2

• Piping3

• Comparisons4

• Flow Control5

• Filtering6

Page 15: Introduction to PowerShell at Chicago Code Camp 2015

2014

Reading Symbols in Code

•(tal Guidance

•Moe, Larry, and }

•The universe started with the Big !

•!Important

•A # of Bacon and # Browns

Page 16: Introduction to PowerShell at Chicago Code Camp 2015

2014

Variables

• Case Insensitive, Dynamic typing

$something

$true, $false, $null, $profile

$myMessage= “Hello, World”

1

Page 17: Introduction to PowerShell at Chicago Code Camp 2015
Page 18: Introduction to PowerShell at Chicago Code Camp 2015

2014

Commands are called cmdlets.

Verb-Noun

Built-in, Extensible

Get-Help & Help

Get-Member

2

Page 19: Introduction to PowerShell at Chicago Code Camp 2015

2014

Help!

Page 20: Introduction to PowerShell at Chicago Code Camp 2015

Discoverability

Page 21: Introduction to PowerShell at Chicago Code Camp 2015

2014

The Power of Piping!

Output Of Command 1

Input of Command 2

3

Page 22: Introduction to PowerShell at Chicago Code Camp 2015

2014

Example

Page 23: Introduction to PowerShell at Chicago Code Camp 2015

2014

Dial zero for an…4

Operator

-eq -le

-ne -like

-gt -notlike

-ge -match

-lt -notmatch

Page 24: Introduction to PowerShell at Chicago Code Camp 2015

Example

Page 25: Introduction to PowerShell at Chicago Code Camp 2015

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

Page 26: Introduction to PowerShell at Chicago Code Camp 2015

2014

Example

Page 27: Introduction to PowerShell at Chicago Code Camp 2015

2014

Where-Object

•Where {<Test>}Syntax

• V1&2:Dir | Where {$_.Name –like “B*”}

• V3:Dir | where Name –like B*Example

6

Page 28: Introduction to PowerShell at Chicago Code Camp 2015

2014

Executing Scripts

.\filename.ps1

Set-ExecutionPolicyUnrestricted

Page 29: Introduction to PowerShell at Chicago Code Camp 2015

2014

Chapter 3

Page 30: Introduction to PowerShell at Chicago Code Camp 2015

2014

Real World Examples

• Flash cards

•Dell Service Tag

•Audio Alerts

• File Conversion & Text Manipulation

•Managing Microsoft Server Products

Page 31: Introduction to PowerShell at Chicago Code Camp 2015

2014

Flash Cards

Page 32: Introduction to PowerShell at Chicago Code Camp 2015

2014

Get-DellServiceTag

• Get-WmiObject win32_SystemEnclosure | select serialnumber

Page 33: Introduction to PowerShell at Chicago Code Camp 2015

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 34: Introduction to PowerShell at Chicago Code Camp 2015

2014

File and Text Wrangling

• Word

• AutoDOCX

• RegEx

• PSObjTXT

• Export-

• CSVCSV

Page 35: Introduction to PowerShell at Chicago Code Camp 2015

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

Page 36: Introduction to PowerShell at Chicago Code Camp 2015

2014

Chapter 4

Page 37: Introduction to PowerShell at Chicago Code Camp 2015

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.

• #>

Page 38: Introduction to PowerShell at Chicago Code Camp 2015

2014

Find custom commands this way

Refresh the command list

Actions you can take once you fill in parameters

Page 39: Introduction to PowerShell at Chicago Code Camp 2015

2014

Self Announcing Functions

Page 40: Introduction to PowerShell at Chicago Code Camp 2015

2014

Source Code Control

Page 41: Introduction to PowerShell at Chicago Code Camp 2015

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 42: Introduction to PowerShell at Chicago Code Camp 2015

2014

Chapter 5

Page 44: Introduction to PowerShell at Chicago Code Camp 2015

2014

Page 45: Introduction to PowerShell at Chicago Code Camp 2015

2014

Page 46: Introduction to PowerShell at Chicago Code Camp 2015

2014

Script something today!

It’s Easy to Get Started!

PowerShell Syntax

More Resources

In Review…

Page 47: Introduction to PowerShell at Chicago Code Camp 2015

2014

Questions

• Michael BlumenthalSr. Solution ArchitectPSC Group, LLC

[email protected]

• psclistens.com

• MichaelBlumenthal.me

• Twitter: @MichaelBL

• LinkedIn

• Microsoft Midwest Customers Yammer Network

Thank you for your time today.