PowerShell
Flujos de trabajo de PowerShell
Buscar..
Introducción
PowerShell Workflow es una característica que se introdujo a partir de la versión 3.0 de PowerShell. Las definiciones de flujo de trabajo son muy similares a las definiciones de funciones de PowerShell, sin embargo, se ejecutan dentro del entorno de Windows Workflow Foundation, en lugar de hacerlo directamente en el motor de PowerShell.
Con el motor de flujo de trabajo se incluyen varias características exclusivas "fuera de la caja", sobre todo, la persistencia del trabajo.
Observaciones
La función de flujo de trabajo de PowerShell se admite exclusivamente en la plataforma Microsoft Windows, en PowerShell Desktop Edition. PowerShell Core Edition, que es compatible con Linux, Mac y Windows, no es compatible con la función de flujo de trabajo de PowerShell.
Al crear un flujo de trabajo de PowerShell, tenga en cuenta que los flujos de trabajo llaman a las actividades, no a los cmdlets. Aún puede llamar a los cmdlets desde un flujo de trabajo de PowerShell, pero el motor de flujo de trabajo envolverá implícitamente la invocación del cmdlet en una actividad de InlineScript
. También puede ajustar explícitamente el código dentro de la actividad InlineScript
, que ejecuta el código de PowerShell; de forma predeterminada, la actividad InlineScript
se ejecuta en un proceso independiente y devuelve el resultado al flujo de trabajo de la llamada.
Ejemplo de flujo de trabajo simple
workflow DoSomeWork {
Get-Process -Name notepad | Stop-Process
}
Este es un ejemplo básico de una definición de flujo de trabajo de PowerShell.
Flujo de trabajo con parámetros de entrada
Al igual que las funciones de PowerShell, los flujos de trabajo pueden aceptar parámetros de entrada. Los parámetros de entrada pueden vincularse opcionalmente a un tipo de datos específico, como una cadena, entero, etc. Use la palabra clave param
estándar para definir un bloque de parámetros de entrada, directamente después de la declaración del flujo de trabajo.
workflow DoSomeWork {
param (
[string[]] $ComputerName
)
Get-Process -ComputerName $ComputerName
}
DoSomeWork -ComputerName server01, server02, server03
Ejecutar flujo de trabajo como un trabajo en segundo plano
Los flujos de trabajo de PowerShell están equipados de forma inherente con la capacidad de ejecutarse como un trabajo en segundo plano. Para llamar a un flujo de trabajo como un trabajo en segundo plano de PowerShell, use el parámetro -AsJob
cuando invoque el flujo de trabajo.
workflow DoSomeWork {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
DoSomeWork -AsJob
Agregar un bloque paralelo a un flujo de trabajo
workflow DoSomeWork {
parallel {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
}
Una de las características únicas de PowerShell Workflow es la capacidad de definir un bloque de actividades como paralelo. Para usar esta función, use la palabra clave parallel
dentro de su flujo de trabajo.
Llamar en paralelo a las actividades del flujo de trabajo puede ayudar a mejorar el rendimiento de su flujo de trabajo.