powershell: automation for everyone

Post on 17-May-2015

369 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Intergen's Solution Architect and Microsoft MVP Gavin Barron presented "PowerShell: Automation for everyone" during the MVP CompCamp 2014, a worldwide event ran during the weekend of 22-23 March 2014. Gavin's blog: http://gavinb.net/

TRANSCRIPT

Gavin Barron, Solution ArchitectMarch 22, 2014

ComCamp Auckland

PowerShell: Automation for Everyone

The only five commands you need

Rules for writing scripts

Demos

Intro

Wrap up

Our agenda

PowerShell: Automation for Everyone | 3

SharePoint Server MVP

Developer

Skier

http://gavinb.net

@gavinbarron

gavin.barron@intergen.co.nz

Gavin BarronSolution Architect

Your presenter

PowerShell: Automation for Everyone | 4

Why Automate?

Repeatability

Reliability

Save time?

Eliminate boring manual tasks

PowerShell: Automation for Everyone | 5

Why PowerShell?

Product specific cmdlets

Able to run .NET code

Hooks into WMI/COM

Object pipeline

Readable scripts

The only five commands you need

Your Awesome Presentation Title {Segoe UI 12 pt.}

Get-Command

Your Awesome Presentation Title {Segoe UI 12 pt.}

Get-Help

Your Awesome Presentation Title {Segoe UI 12 pt.}

Get-Member

Your Awesome Presentation Title {Segoe UI 12 pt.}

Where-Object

Your Awesome Presentation Title {Segoe UI 12 pt.}

ForEach-Object

Demos

Your Awesome Presentation Title {Segoe UI 12 pt.}

Find the command you need

Your Awesome Presentation Title {Segoe UI 12 pt.}

Simple Pipeline Use

PowerShell: Automation for Everyone | 15

File renaming in .bat

@echo offfor /f "delims=" %%a in ('dir /b *.txt') do call :dot "%%a"pausegoto :EOF:dotset "var=%~n1"set "var=%var:.=_%"  echo ren %1 "%var%%~x1"

Rules for writing scripts

PowerShell: Automation for Everyone | 17

Consider error cases

What should you do when it goes pear shaped? Default behaviour is Ignore and Continue $ErrorActionPreference -ErrorAction try{} catch{}

PowerShell: Automation for Everyone | 18

Consider your outputs

Write-Host Write-Output Write-Progress Add-Content Out-File

PowerShell: Automation for Everyone | 19

Have style!

Use a coding convention Naming Casing Bracing

Avoid aliases Be Consistent!

PowerShell: Automation for Everyone | 20

Leverage functions for re-use

Small tasks Compose a script from functions Functions are highly reusable Cmdlet Binding Attribute Parameters Attribute Default Values

PowerShell: Automation for Everyone | 21

Use configuration files

$file =[xml] (Get-ChildItem $constantsFilePath)$root = "setup-config"$ConstantsNodeList = $file.$root.Constantsforeach($property in $ConstantsNodeList.Property) {

$key= $property.Key$value=$property.Value $webApp.Properties.Add($key,$value)

}$webApp.Update()

Your Awesome Presentation Title {Segoe UI 12 pt.}

Script Examples

Wrap up

Your Awesome Presentation Title {Segoe UI 12 pt.}

Start scripting, it’s easy!

PowerShell: Automation for Everyone | 25

Handy resources

http://blogs.technet.com/b/heyscriptingguy http://gallery.technet.microsoft.com/scriptcenter http://social.technet.microsoft.com/Forums/scriptcenter/

en-US/home?forum=ITCG http://ss64.com/ps/ http://ss64.com/ps/syntax.html

Any questions?

Email: gavin.barron@intergen.co.nz

Blog: http://gavinb.net

Twitter: @gavinbarron

Thank you

THE END

top related