Recherche…


Introduction

PowerShell Workflow est une fonctionnalité qui a été introduite à partir de PowerShell version 3.0. Les définitions de flux de travail ressemblent beaucoup aux définitions de fonction PowerShell, mais elles s'exécutent dans l'environnement Windows Workflow Foundation, et non directement dans le moteur PowerShell.

Le moteur de workflow comprend plusieurs fonctionnalités uniques, telles que la persistance des tâches.

Remarques

La fonctionnalité de workflow PowerShell est exclusivement prise en charge sur la plate-forme Microsoft Windows, sous PowerShell Desktop Edition. PowerShell Core Edition, qui est pris en charge sous Linux, Mac et Windows, ne prend pas en charge la fonctionnalité PowerShell Workflow.

Lors de la création d'un workflow PowerShell, gardez à l'esprit que les workflows appellent des activités, pas des applets de commande. Vous pouvez toujours appeler des applets de commande à partir d'un workflow PowerShell, mais le moteur de workflow InlineScript implicitement l'appel de la cmdlet dans une activité InlineScript . Vous pouvez également explicitement envelopper le code à l'intérieur de l'activité InlineScript , qui exécute le code PowerShell; Par défaut, l'activité InlineScript s'exécute dans un processus distinct et renvoie le résultat au workflow appelant.

Exemple de workflow simple

workflow DoSomeWork {
  Get-Process -Name notepad | Stop-Process 
}

Ceci est un exemple de base d'une définition de workflow PowerShell.

Workflow avec des paramètres d'entrée

Tout comme les fonctions PowerShell, les flux de travail peuvent accepter des paramètres d'entrée. Les paramètres d'entrée peuvent éventuellement être liés à un type de données spécifique, tel qu'une chaîne, un entier, etc. Utilisez le mot-clé param standard pour définir un bloc de paramètres d'entrée, directement après la déclaration de workflow.

workflow DoSomeWork {
  param (
    [string[]] $ComputerName
  )
  Get-Process -ComputerName $ComputerName
}

DoSomeWork -ComputerName server01, server02, server03

Exécuter le workflow en tant que job d'arrière-plan

Les workflows PowerShell sont intrinsèquement équipés de la possibilité de s'exécuter en tâche de fond. Pour appeler un workflow en tant que job d'arrière-plan PowerShell, utilisez le paramètre -AsJob lors de l'appel du workflow.

workflow DoSomeWork {
  Get-Process -ComputerName server01
  Get-Process -ComputerName server02
  Get-Process -ComputerName server03
}

DoSomeWork -AsJob

Ajouter un bloc parallèle à un workflow

workflow DoSomeWork {
  parallel {
    Get-Process -ComputerName server01
    Get-Process -ComputerName server02
    Get-Process -ComputerName server03
  }
}

L'une des fonctionnalités uniques de PowerShell Workflow est la possibilité de définir un bloc d'activités en parallèle. Pour utiliser cette fonctionnalité, utilisez le mot-clé parallel dans votre workflow.

L'appel des activités de workflow en parallèle peut aider à améliorer les performances de votre flux de travail.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow