about_Workflows

Korte beschrijving

Biedt een korte inleiding tot de PowerShell Workflow-functie.

Lange beschrijving

PowerShell Workflow biedt de voordelen van Windows Workflow Foundation voor PowerShell en stelt u in staat 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 werkstromen en het schrijven van een Windows PowerShell-werkstroom voor meer informatie over PowerShell Workflow.

Over werkstromen

Werkstromen zijn opdrachten die bestaan uit een geordende reeks gerelateerde activiteiten. Normaal gesproken worden ze gedurende langere tijd uitgevoerd, waarbij gegevens worden verzameld van en wijzigingen aanbrengt 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) voor meer informatie.

Werkstromen zijn essentieel in een IT-omgeving omdat ze het opnieuw opstarten kunnen overleven en automatisch kunnen herstellen na veelvoorkomende fouten. U kunt de verbinding verbreken en opnieuw verbinding maken met sessies en computers waarop werkstromen worden uitgevoerd zonder werkstroomverwerking te onderbreken en werkstromen transparant te onderbreken en te hervatten zonder gegevensverlies. Elke activiteit in een werkstroom kan ter referentie worden geregistreerd en gecontroleerd. Werkstromen kunnen als taken worden uitgevoerd 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 punten die u opgeeft. Werkstroompersistentiepunten werken als momentopnamen van databases of programmacontrolepunten om de werkstroom te beschermen tegen de gevolgen van onderbrekingen en fouten. Als de werkstroom niet kan worden hersteld na een fout, kunt u de persistente gegevens gebruiken en hervatten vanaf het laatste persistentiepunt in plaats van een uitgebreide werkstroom opnieuw uit te voeren vanaf het begin.

Werkstroomvereisten en -configuratie

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 aanbevolen. PSSessions kunnen profiteren van de robuuste functies voor herstel en niet-verbonden sessies van PowerShell om verbroken werkstroomsessies te herstellen. Zie about_Remote_Disconnected_Sessions voor meer informatie

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

De clientcomputer en de computer waarop de werkstroomsessie wordt uitgevoerd, moeten PowerShell 3.0 uitvoeren. Alle in aanmerking komende systemen worden ondersteund, inclusief de Server Core-installatieopties van Windows Server-besturingssystemen.

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

Werkstromen ophalen

Werkstromen worden meestal verpakt in modules. Als u de module wilt importeren die een werkstroom bevat, gebruikt u een willekeurige 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.

Als u wilt zoeken naar de werkstromen in modules die op uw computer zijn geïnstalleerd, gebruikt u de commandType-parameter van de Get-Command cmdlet.

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 externe communicatie van PowerShell in op de computer waarop de werkstroomsessie wordt uitgevoerd en op beheerde knooppunten die worden beïnvloed door werkstromen die cmdlets bevatten.

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

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

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

    Enable-PSRemoting -Force
    

    U kunt externe communicatie inschakelen met behulp van de instelling Groepsbeleid voor scriptuitvoering inschakelen. Zie about_Group_Policy_Instellingen en about_Execution_Policies voor meer informatie.

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

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

    Of gebruik de New-PSSession cmdlet. Gebruik de parameter ConfigurationName om de configuratie van de Microsoft.PowerShell.Workflow-sessie op te geven. 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 configuratie van de Microsoft.PowerShell.Workflow-sessie 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 Beheer istrator op de werkstroomsessiecomputer bent, kunt u de New-PSWorkflowExecutionOption 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 wilt opgeven, gebruikt u de algemene parameter van de PSComputerName-werkstroom .

    In de volgende voorbeelden wordt de werkstroom met de naam Test-Workflowuitgevoerd.

    Waar het beheerde knooppunt de computer is die als host fungeert voor de werkstroomsessie:

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

    Waar de beheerde knooppunten externe computers zijn.

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

    In het volgende voorbeeld wordt de Test-Workflow uitvoering 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 maakt gebruik van de $Using bereikaanpassing om de $Servers variabele in de lokale sessie te definiëren. Zie about_Remote_Variables voor meer informatie over de $Using bereikaanpassing.

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

Algemene parameters voor werkstromen gebruiken

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

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

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

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

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

De algemene parameter psPersist-werkstroom bepaalt wanneer werkstroomgegevens worden bewaard. Hiermee kunt u persistentiepunt toevoegen tussen activiteiten aan werkstromen die geen persistentiepunten definiëren.

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

Met andere algemene parameters voor werkstromen kunt u de kenmerken van de externe verbinding met de beheerde knooppunten opgeven. Hun namen en functionaliteit zijn vergelijkbaar met de parameters van externe cmdlets, waaronder Invoke-Command.

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

Maak onderscheid tussen de externe parameters die de verbinding voor de werkstroomsessie definiëren vanuit de algemene parameters van de PS-prefixed werkstroom 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 parameters voor werkstromen zijn uniek voor werkstromen, zoals de parameter PSParameterCollection waarmee u verschillende algemene parameterwaarden voor werkstromen voor verschillende externe knooppunten kunt opgeven. Zie about_WorkflowCommonParameters voor een lijst en beschrijving van de algemene parameters van de werkstroom.

Zie ook