about_Workflows

Korte beschrijving

Biedt een korte inleiding tot de PowerShell Workflow-functie.

Lange beschrijving

PowerShell Workflow biedt powershell de voordelen van Windows Workflow Foundation en stelt u in staat om werkstromen te schrijven en uit te voeren.

PowerShell Workflow is geïntroduceerd in PowerShell 3.0 en de module is beschikbaar tot PowerShell 5.1. Zie de Handleiding voor werkstromen en Een werkstroom Windows PowerShell schrijven voor meer informatie over PowerShell Workflow.

Over werkstromen

Werkstromen zijn opdrachten die bestaan uit een geordende reeks gerelateerde activiteiten. Normaal gesproken worden ze voor een langere periode uitgevoerd, door gegevens te verzamelen van en wijzigingen aan te brengen in honderden computers, vaak in heterogene omgevingen.

Werkstromen kunnen worden geschreven in XAML, de taal die wordt gebruikt in Windows Workflow Foundation of in de PowerShell-taal. Werkstromen worden doorgaans verpakt in modules en bevatten Help-onderwerpen. Zie XAML Overview (WPF) (XAML Overview (WPF)) voor meer informatie.

Werkstromen zijn essentieel in een IT-omgeving omdat ze opnieuw opstarten kunnen overleven en automatisch kunnen worden hersteld van veelvoorkomende fouten. U kunt de verbinding verbreken en opnieuw verbinding maken met sessies en computers die werkstromen uitvoeren zonder de werkstroomverwerking te onderbreken, en werkstromen transparant onderbreken en hervatten zonder gegevensverlies. Elke activiteit in een werkstroom kan ter referentie worden geregistreerd en gecontroleerd. Werkstromen kunnen worden uitgevoerd als taken en kunnen worden gepland met behulp van de functie Geplande taken van PowerShell.

De status en gegevens in een werkstroom worden opgeslagen of behouden aan het begin en einde van de werkstroom en op de punten die u opgeeft. Werkstroom persistentiepunten werken zoals momentopnamen van databases of programma controlepunten om de werkstroom te beschermen tegen de gevolgen van onderbrekingen en fouten. Als de werkstroom niet kan worden hersteld van een fout, kunt u de persistente gegevens gebruiken en hervatten vanaf het laatste persistentiepunt, in plaats van vanaf het begin een uitgebreide werkstroom opnieuw uit te werken.

Vereisten en configuratie van werkstromen

Een PowerShell Workflow-configuratie bestaat uit de volgende elementen:

  • Een clientcomputer waarop de werkstroom wordt uitgevoerd.
  • Een werkstroomsessie, PSSession, op de clientcomputer of op een externe computer.
  • Beheerde knooppunten, de doelcomputers die worden beïnvloed door de werkstroomactiviteiten.

De werkstroomsessie is niet vereist, maar wordt wel aanbevolen. PSSessions kan profiteren van de robuuste functies voor herstel en niet-verbonden sessies van PowerShell om niet-verbonden werkstroomsessies te herstellen. Zie voor meer informatie about_Remote_Disconnected_Sessions

Omdat de clientcomputer en de computer waarop de werkstroomsessie wordt uitgevoerd, beheerde knooppunten kunnen zijn, kunt u een werkstroom uitvoeren op één computer die aan alle rollen voldoet.

Op de clientcomputer en de computer waarop de werkstroomsessie wordt uitgevoerd, moet PowerShell 3.0 worden uitgevoerd. Alle in aanmerking komende systemen worden ondersteund, met inbegrip van de Server Core-installatieopties van Windows Server-besturingssystemen.

Als u werkstromen wilt uitvoeren die cmdlets bevatten, moeten de beheerde knooppunten Windows PowerShell 2.0 of hoger hebben. Voor beheerde knooppunten is Geen PowerShell vereist, tenzij de werkstroom cmdlets bevat. U kunt werkstromen uitvoeren die Windows Management Instrumentation (WMI) en Common Information Model -opdrachten (CIM) bevatten op computers die geen PowerShell hebben.

Werkstromen krijgen

Werkstromen worden doorgaans verpakt in modules. Als u de module wilt importeren die een werkstroom bevat, gebruikt u een opdracht in de module of gebruikt u de Import-Module cmdlet . Modules worden automatisch geïmporteerd bij het eerste gebruik van een opdracht in de module.

Gebruik de parameter CommandType van de cmdlet om de werkstromen te vinden in modules die op uw computer Get-Command zijn geïnstalleerd.

Get-Command -CommandType Workflow

Werkstromen uitvoeren

Gebruik de volgende procedure om een werkstroom uit te voeren.

  1. Wanneer het beheerde knooppunt de lokale computer is, is deze stap niet vereist. Anders start u PowerShell op de clientcomputer met de optie Als administrator uitvoeren.

    Start-Process PowerShell -Verb RunAs
    
  2. Schakel extern gebruik van PowerShell in op de computer met de werkstroomsessie en op beheerde knooppunten die worden beïnvloed door werkstromen die cmdlets bevatten.

    U hoeft deze stap slechts één keer uit te doen op elke deelnemende computer.

    Deze stap is alleen vereist bij het uitvoeren van werkstromen die cmdlets bevatten. U hoeft remoting niet in te stellen op de clientcomputer, tenzij de werkstroomsessie wordt uitgevoerd op de clientcomputer of op beheerde knooppunten met PowerShell 3.0.

    Als u remoting wilt inschakelen, gebruikt u de Enable-PSRemoting cmdlet .

    Enable-PSRemoting -Force
    

    U kunt remoting inschakelen met behulp van de instelling Scriptuitvoering groepsbeleid inschakelen. Zie voor meer informatie about_Group_Policy_Settings en about_Execution_Policies.

  3. Gebruik de New-PSWorkflowSession cmdlets of New-PSSession om de werkstroomsessie te maken.

    De New-PSWorkflowSession cmdlet start een sessie die gebruikmaakt van de ingebouwde sessieconfiguratie Microsoft.PowerShell.Workflow op de doelcomputer. Deze sessieconfiguratie bevat scripts, type- en opmaakbestanden en opties die zijn ontworpen voor werkstromen.

    Of gebruik de New-PSSession cmdlet . Gebruik de parameter ConfigurationName om de sessieconfiguratie Microsoft.PowerShell.Workflow op te geven. Met deze opdracht is hetzelfde als het gebruik van de New-PSWorkflowSession cmdlet.

    Een alternatief is om de New-PSSession cmdlet te gebruiken. Gebruik de parameter ConfigurationName om de sessieconfiguratie Microsoft.PowerShell.Workflow op te geven.

    Op de lokale computer:

    $ws = New-PSWorkflowSession
    

    Op een externe computer:

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

    Als u een beheerder bent op de werkstroomsessiecomputer, New-PSWorkflowExecutionOption kunt u de cmdlet gebruiken om aangepaste optie-instellingen te maken voor de configuratie van de werkstroomsessie. En gebruik de Set-PSSessionConfiguration cmdlet om de sessieconfiguratie te wijzigen.

    $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. Voer de werkstroom uit in de werkstroomsessie. Als u de namen van de beheerde knooppunten, doelcomputers, wilt opgeven, gebruikt u de algemene parameter psComputerName workflow.

    In de volgende voorbeelden wordt de werkstroom met de naam uitgevoerd Test-Workflow.

    Waar het beheerde knooppunt de computer is die de werkstroomsessie host:

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

    Waarbij de beheerde knooppunten externe computers zijn.

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

    In het volgende voorbeeld wordt de Test-Workflow uitgevoerd op honderden computers. De Get-Content cmdlet haalt de computernamen op uit een tekstbestand en slaat deze op in de $Servers variabele op de lokale computer.

    Invoke-Command gebruikt de $Using scope-modifier om de variabele $Servers in de lokale sessie te definiëren. Zie voor meer informatie over $Using de scope-modifier about_Remote_Variables.

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

Algemene werkstroomparameters gebruiken

De algemene werkstroomparameters zijn een set parameters die powershell automatisch toevoegt aan alle werkstromen. PowerShell voegt de algemene parameters van de cmdlet toe aan alle werkstromen, zelfs als de werkstroom niet het kenmerk CmdletBinding gebruikt.

De volgende werkstroom definieert bijvoorbeeld geen parameters. Wanneer u de werkstroom echter uitvoeren, heeft deze zowel de CommonParameters als workflowCommonParameters.

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

De algemene werkstroomparameters bevatten verschillende parameters die essentieel zijn voor het uitvoeren van werkstromen. Met de algemene parameter PSComputerName worden bijvoorbeeld de beheerde knooppunten opgegeven die van invloed zijn op de werkstroom.

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

De algemene parameter pspersist workflow bepaalt wanneer werkstroomgegevens persistent zijn. Hiermee kunt u een persistentiepunt tussen activiteiten toevoegen aan werkstromen die geen persistentiepunten definiëren.

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

Met andere algemene werkstroomparameters kunt u de kenmerken van de externe verbinding met de beheerde knooppunten opgeven. De namen en functionaliteit zijn vergelijkbaar met de parameters van cmdlets voor het op afstand gebruiken van de cmdlets, waaronder Invoke-Command.

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

Zorg ervoor dat u de parameters voor extern PS-prefixed beheer die de verbinding voor de werkstroomsessie definiëren, onderscheidt van de algemene werkstroomparameters die de verbinding met de beheerde knooppunten definiëren.

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

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

Sommige algemene werkstroomparameters zijn uniek voor werkstromen, zoals de parameter PSParameterCollection waarmee u verschillende algemene parameterwaarden voor werkstromen voor verschillende externe knooppunten kunt opgeven. Zie voor een lijst en beschrijving van de algemene werkstroomparameters about_WorkflowCommonParameters.

Zie ook