Partager via


about_Workflows

Description courte

Fournit une brève présentation de la fonctionnalité Flux de travail PowerShell.

Description longue

PowerShell Workflow offre les avantages de Windows Workflow Foundation à PowerShell et vous permet d’écrire et d’exécuter des flux de travail.

PowerShell Workflow a été introduit dans PowerShell 3.0 et le module est disponible jusqu’à PowerShell 5.1. Pour plus d’informations sur le flux de travail PowerShell, consultez le Guide des flux de travail et l’écriture d’un flux de travail Windows PowerShell.

À propos des workflows

Les flux de travail sont des commandes qui se composent d’une séquence ordonnée d’activités associées. En règle générale, ils s’exécutent pendant une période prolongée, collectent des données et apportent des modifications à des centaines d’ordinateurs, souvent dans des environnements hétérogènes.

Les flux de travail peuvent être écrits en XAML, le langage utilisé dans Windows Workflow Foundation ou dans le langage PowerShell. Les flux de travail sont généralement empaquetés dans les modules et incluent des rubriques d’aide. Pour plus d’informations, consultez Vue d’ensemble du langage XAML (WPF).

Les flux de travail sont essentiels dans un environnement informatique, car ils peuvent survivre aux redémarrages et récupérer automatiquement à partir de défaillances courantes. Vous pouvez déconnecter et vous reconnecter des sessions et des ordinateurs exécutant des flux de travail sans interrompre le traitement des flux de travail, et suspendre et reprendre les flux de travail de manière transparente sans perte de données. Chaque activité d’un flux de travail peut être journalisée et auditée pour référence. Les flux de travail peuvent s’exécuter en tant que travaux et peuvent être planifiés à l’aide de la fonctionnalité Travaux planifiés de PowerShell.

L’état et les données d’un flux de travail sont enregistrés ou conservés au début et à la fin du flux de travail et aux points que vous spécifiez. Les points de persistance de flux de travail fonctionnent comme des instantanés de base de données ou des points de contrôle de programme pour protéger le flux de travail contre les effets des interruptions et des défaillances. Si le flux de travail ne parvient pas à récupérer après une défaillance, vous pouvez utiliser les données persistantes et reprendre à partir du dernier point de persistance, au lieu de réexécuter un flux de travail étendu à partir du début.

Exigences et configuration du flux de travail

Une configuration de flux de travail PowerShell se compose des éléments suivants :

  • Un ordinateur client, qui exécute le flux de travail.
  • Session de flux de travail, PSSession, sur l’ordinateur client ou sur un ordinateur distant.
  • Nœuds managés, ordinateurs cibles affectés par les activités de flux de travail.

La session de flux de travail n’est pas obligatoire, mais est recommandée. Les sessions PSSession peuvent tirer parti des fonctionnalités robustes de récupération et de sessions déconnectées de PowerShell pour récupérer les sessions de flux de travail déconnectées. Pour plus d’informations, consultez about_Remote_Disconnected_Sessions

Étant donné que l’ordinateur client et l’ordinateur sur lequel la session de flux de travail s’exécute peuvent être des nœuds managés, vous pouvez exécuter un flux de travail sur un seul ordinateur qui remplit tous les rôles.

L’ordinateur client et l’ordinateur sur lequel s’exécute la session de flux de travail doivent exécuter PowerShell 3.0. Tous les systèmes éligibles sont pris en charge, y compris les options d’installation minimale des systèmes d’exploitation Windows Server.

Pour exécuter des workflows incluant des applets de commande, les nœuds managés doivent avoir Windows PowerShell 2.0 ou version ultérieure. Les nœuds managés ne nécessitent pas PowerShell, sauf si le flux de travail inclut des applets de commande. Vous pouvez exécuter des flux de travail qui incluent WMI (Windows Management Instrumentation) et des commandes CIM (Common Information Model) sur les ordinateurs qui n’ont pas PowerShell.

Comment obtenir des flux de travail

Les flux de travail sont généralement empaquetés dans les modules. Pour importer le module qui inclut un flux de travail, utilisez n’importe quelle commande dans le module ou utilisez l’applet de Import-Module commande. Les modules sont importés automatiquement lors de la première utilisation de n’importe quelle commande dans le module.

Pour rechercher les flux de travail dans les modules installés sur votre ordinateur, utilisez le paramètre CommandType de l’applet Get-Command de commande.

Get-Command -CommandType Workflow

Comment exécuter des flux de travail

Pour exécuter un flux de travail, utilisez la procédure suivante.

  1. Lorsque le nœud managé est l’ordinateur local, cette étape n’est pas requise. Sinon, sur l’ordinateur client, démarrez PowerShell avec l’option Exécuter en tant qu’administrateur.

    Start-Process PowerShell -Verb RunAs
    
  2. Activez la communication à distance PowerShell sur l’ordinateur qui exécute la session de flux de travail et sur les nœuds gérés affectés par les workflows qui incluent des applets de commande.

    Vous devez effectuer cette étape une seule fois sur chaque ordinateur participant.

    Cette étape est requise uniquement lors de l’exécution de flux de travail qui incluent des applets de commande. Vous n’avez pas besoin d’activer la communication à distance sur l’ordinateur client, sauf si la session de flux de travail s’exécute sur l’ordinateur client ou sur les nœuds managés exécutant PowerShell 3.0.

    Pour activer la communication à distance, utilisez l’applet de Enable-PSRemoting commande.

    Enable-PSRemoting -Force
    

    Vous pouvez activer la communication à distance à l’aide du paramètre Activer la stratégie de groupe d’exécution de script. Pour plus d’informations, consultez about_Group_Policy_Settings et about_Execution_Policies.

  3. Utilisez les applets de commande ou New-PSSession les New-PSWorkflowSession applets de commande pour créer la session de flux de travail.

    L’applet New-PSWorkflowSession de commande démarre une session qui utilise la configuration intégrée de la session Microsoft.PowerShell.Workflow sur l’ordinateur de destination. Cette configuration de session inclut des scripts, des fichiers de type et de mise en forme, ainsi que des options conçues pour les flux de travail.

    Vous pouvez également utiliser l’applet de New-PSSession commande. Utilisez le paramètre ConfigurationName pour spécifier la configuration de session Microsoft.PowerShell.Workflow . Cette commande est identique à l’utilisation de l’applet de New-PSWorkflowSession commande.

    Une alternative consiste à utiliser l’applet New-PSSession de commande. Utilisez le paramètre ConfigurationName pour spécifier la configuration de session Microsoft.PowerShell.Workflow .

    Sur l’ordinateur local :

    $ws = New-PSWorkflowSession
    

    Sur un ordinateur distant :

    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    

    Si vous êtes administrateur sur l’ordinateur de session de flux de travail, vous pouvez utiliser l’applet New-PSWorkflowExecutionOption de commande pour créer des paramètres d’option personnalisés pour la configuration de session de flux de travail. Utilisez également l’applet Set-PSSessionConfiguration de commande pour modifier la configuration de session.

    $sto = New-PSWorkflowExecutionOption -MaxConnectedSessions 150
    Invoke-Command -ComputerName Server01 `
    {Set-PSSessionConfiguration Microsoft.PowerShell.Workflow `
    -SessionTypeOption $Using:sto}
    $ws = New-PSWorkflowSession -ComputerName Server01 `
    -Credential Domain01\Admin01
    
  4. Exécutez le flux de travail dans la session de flux de travail. Pour spécifier les noms des nœuds managés, les ordinateurs cibles, utilisez le paramètre commun du flux de travail PSComputerName .

    Les exemples suivants exécutent le workflow nommé Test-Workflow.

    Où le nœud managé est l’ordinateur qui héberge la session de flux de travail :

    Invoke-Command -Session $ws {Test-Workflow}
    

    Où les nœuds managés sont des ordinateurs distants.

    Invoke-Command -Session $ws{
    Test-Workflow -PSComputerName Server01, Server02 }
    

    L’exemple suivant exécute les Test-Workflow centaines d’ordinateurs. L’applet Get-Content de commande obtient les noms d’ordinateurs à partir d’un fichier texte et les enregistre dans la $Servers variable sur l’ordinateur local.

    Invoke-Command utilise le modificateur d’étendue $Using pour définir la $Servers variable dans la session locale. Pour plus d’informations sur le modificateur d’étendue $Using , consultez about_Remote_Variables.

    $Servers = Get-Content Servers.txt
    Invoke-Command -Session $ws {Test-Workflow -PSComputerName $Using:Servers }
    

Utilisation de paramètres courants de flux de travail

Les paramètres courants du flux de travail sont un ensemble de paramètres que PowerShell ajoute automatiquement à tous les flux de travail. PowerShell ajoute les paramètres communs de l’applet de commande à tous les flux de travail, même si le flux de travail n’utilise pas l’attribut CmdletBinding .

Par exemple, le flux de travail suivant ne définit aucun paramètre. Toutefois, lorsque vous exécutez le flux de travail, il a à la fois CommonParameters et WorkflowCommonParameters.

workflow Test-Workflow {Get-Process}
Get-Command Test-Workflow -Syntax
Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]

Les paramètres courants du flux de travail incluent plusieurs paramètres essentiels à l’exécution des flux de travail. Par exemple, le paramètre commun PSComputerName spécifie les nœuds managés affectés par le flux de travail.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02
}

Le paramètre courant du flux de travail PSPersist détermine quand les données de flux de travail sont conservées. Il vous permet d’ajouter un point de persistance entre les activités aux flux de travail qui ne définissent pas de points de persistance.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPersist:$True
}

D’autres paramètres courants de flux de travail vous permettent de spécifier les caractéristiques de la connexion distante aux nœuds managés. Leurs noms et fonctionnalités sont similaires aux paramètres des applets de commande de communication à distance, notamment Invoke-Command.

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSPort 443
}

Veillez à distinguer les paramètres de communication à distance qui définissent la connexion pour la session de flux de travail à partir des PS-prefixed paramètres communs de flux de travail qui définissent la connexion aux nœuds managés.

$ws = New-PSSession -ComputerName Server01 -ConfigurationName Microsoft.PowerShell.Workflow

Invoke-Command -Session $ws {
  Test-Workflow -PSComputerName Server01, Server02 -PSConfigurationName Microsoft.PowerShell.Workflow
}

Certains paramètres courants de flux de travail sont uniques aux flux de travail, tels que le paramètre PSParameterCollection , qui vous permet de spécifier différentes valeurs de paramètres communs de flux de travail pour différents nœuds distants. Pour obtenir une liste et une description des paramètres courants du flux de travail, consultez about_WorkflowCommonParameters.

Voir aussi