powershell 3.0 workflows
DESCRIPTION
This slide deck was used for the Windows PowerShell 3.0 Workflows session at the Bangalore IT Pro user group.TRANSCRIPT
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