PowerShell 3.0 workflows

Post on 11-Nov-2014

2.440 views 1 download

Tags:

description

This slide deck was used for the Windows PowerShell 3.0 Workflows session at the Bangalore IT Pro user group.

Transcript of PowerShell 3.0 workflows

LearningPowerShell.com

PowerShell Bangalore and ITPro User Groups

In-person Meeting – 15th, December 2012

http://twitter.com/psbug

http://twitter.com/BangaloreITPro

LearningPowerShell.com

PowerShell 3.0 Workflows

Ravikanth Chaganti

PowerShell Bangalore User Group (@PSBUG) – 15th December, 2012

http://twitter.com/ravikanth

http://ravichaganti.com/blog

LearningPowerShell.com

About Me• Work at Dell Inc.• PowerShell MVP since

2010• Author

• Layman’s guide to PS remoting

• WQL via PowerShell

• Founder & Editor• PowerShellMagazine.c

om• LearningPowerShell.c

om (coming soon)

LearningPowerShell.comImage courtesy: http://ebsindy.com/wp-content/uploads/2012/05/web-pg-1-br-pg-1.jpg

PS Workflows

LearningPowerShell.com

Introduction to Workflows

#Test Computer Connectivity$computers = Get-Content computers.txt$computers.CountMeasure-Command -Expression { foreach ($computer in $computers) { Test-Connection -ComputerName $computer -Count 1 -EA SilentlyContinue }}

Let us start with an example!

LearningPowerShell.com

Introduction to Workflows

• Simple example but can be a long-running task!• How can we make this:• Repeatable• Parallelizable• Interruptible• Stoppable and Restartable

We can use functions, remoting, and background jobs to achieve all the above!Involves lot of scripting!

Workflows in PowerShell 3.0 is introduced to ease this task!

LearningPowerShell.com

Introduction to Workflows

• A Workflow is a set of activities• An activity is a specific task in a

Workflow• Scalable solutions for complex

activities– Run in parallel or sequentially– Repeatable– Interruptible and recoverable

LearningPowerShell.com

Introduction to Workflows

• PowerShell Workflows are based on Windows Workflow Foundation (WWF)

• Can be authored using – PowerShell syntax– XAML files (Visual Studio)

LearningPowerShell.com

Benefits of Workflows

• Multi-device management• Automated failure recovery• Connection and activity retries• Connect and disconnect• Task Scheduling

LearningPowerShell.com

Workflow Environment

Source: http://technet.microsoft.com/en-us/library/jj134257.aspx

Workflow ClientComputer used for managing or viewing workflows

Workflow ServerComputer used for running workflows

Managed NodeComputer on which actions or activities are performed

LearningPowerShell.com

Writing a Workflow

Workflow Write-Hello {“Hello, World”

}

• Syntactically similar to PowerShell Functions

• Can define parameters & CmdletBinding attribute• No Begin, Process, and End blocks!

• Most of the core cmdlets can be added as cmdlets

• Other cmdlets implicitly run as InlineScript

LearningPowerShell.com

Writing a Workflowworkflow Test-Workflow{

Get-Process -Name PowerShellGet-WindowsFeature -Name PowerShell, PowerShell-v2InlineScript { Get-Variable -Name PSHome }

}

InlineScript activity is used for cmdlets that have no workflow activity implementation or for the dynamic parameters!workflow Test-Workflow{

InlineScript {Get-ChildItem -Path Cert:\CurrentUser -CodeSigningCert}}

LearningPowerShell.com

Activities in Parallel

workflow Test-Workflow{

Parallel{

<Activity><Activity>

}}

Foreach –Parallel and Parallel Keywords are used

LearningPowerShell.com

Activities in Sequence

workflow Test-Workflow{

sequence{

<Activity3><Activity4>...

}}

LearningPowerShell.com

Nested Workflows

• Workflows can be nested and combined with functions!– Increases complexity

• Recursive calling is not allowed

LearningPowerShell.com

Quick Bytes on benefits

• Suspend / Resume Workflows• Restart computer in a workflow–Manual– Automatic resume using Scheduled Jobs

• Checkpoints or persisting workflow data

LearningPowerShell.com

References

• Getting Started with Windows PowerShell Workflows: http://technet.microsoft.com/en-us/library/jj134242

• Windows Workflows (video) by Bruce Payette: http://youtu.be/qeV4Qmce2Dk

• PowerShell Team Blog:– http://

blogs.msdn.com/b/powershell/archive/2012/03/17/when-windows-powershell-met-workflow.aspx

– http://blogs.msdn.com/b/powershell/archive/2012/06/15/high-level-architecture-of-windows-powershell-workflow-part-1.aspx

– http://blogs.msdn.com/b/powershell/archive/2012/06/19/high-level-architecture-of-windows-powershell-workflow-part-2.aspx

LearningPowerShell.com

Call to Action

• Join our FB Page: https://www.facebook.com/groups/451930394834695/

• Follow us on Twitter: @psbug• Provide feedback on what you want to see• Watch out for the session schedules!• Write for us!

– On PowerShell Magazine– On PSBUG blog! (http://psbug.wordpress.com/)

LearningPowerShell.com

OPEN HOUSE