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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow