about_Workflows

Krátký popis

Obsahuje stručný úvod k funkci pracovního postupu PowerShellu.

Dlouhý popis

Pracovní postup PowerShellu přináší výhody Windows Workflow Foundation do PowerShellu a umožňuje psát a spouštět pracovní postupy.

Pracovní postup PowerShellu byl představen v PowerShellu 3.0 a modul je k dispozici až do PowerShellu 5.1. Další informace o pracovním postupu PowerShellu najdete v průvodci pracovními postupy a zápisu pracovního postupu Prostředí Windows PowerShell.

O pracovních postupech

Pracovní postupy jsou příkazy, které se skládají z seřazené posloupnosti souvisejících aktivit. Obvykle běží po delší dobu, shromažďuje data ze stovek počítačů a provádí změny stovek počítačů, často v heterogenních prostředích.

Pracovní postupy se dají psát v jazyce XAML, v jazyce používaném ve Windows Workflow Foundation nebo v jazyce PowerShellu. Pracovní postupy jsou obvykle zabalené v modulech a obsahují témata nápovědy. Další informace najdete v tématu Přehled XAML (WPF).

Pracovní postupy jsou kritické v IT prostředí, protože můžou přežít restartování a automaticky se zotavit z běžných selhání. Od relací a počítačů se spuštěnými pracovními postupy můžete odpojit a znovu se připojit bez přerušení zpracování pracovního postupu a transparentně pozastavit a obnovit pracovní postupy bez ztráty dat. Každou aktivitu v pracovním postupu je možné protokolovat a auditovat pro referenci. Pracovní postupy se můžou spouštět jako úlohy a je možné je naplánovat pomocí funkce Naplánované úlohy PowerShellu.

Stav a data v pracovním postupu se uloží nebo zachovají na začátku a na konci pracovního postupu a v bodech, které zadáte. Body trvalosti pracovního postupu fungují, jako jsou snímky databáze nebo kontrolní body programu, a chrání tak pracovní postup před účinky přerušení a selhání. Pokud se pracovní postup nemůže zotavit z selhání, můžete místo opětovného spuštění rozsáhlého pracovního postupu od začátku použít trvalá data a pokračovat z posledního bodu trvalosti.

Požadavky a konfigurace pracovního postupu

Konfigurace pracovního postupu PowerShellu se skládá z následujících prvků:

  • Klientský počítač, na kterém běží pracovní postup.
  • Relace pracovního postupu, relace PSSession, na klientském počítači nebo ve vzdáleném počítači.
  • Spravované uzly, cílové počítače ovlivněné aktivitami pracovního postupu.

Relace pracovního postupu není nutná, ale doporučuje se. Relace PSSession mohou využívat robustní funkce obnovení a odpojených relací PowerShellu k obnovení odpojených relací pracovního postupu. Další informace najdete v tématu about_Remote_Disconnected_Sessions

Vzhledem k tomu, že klientský počítač a počítač, na kterém běží relace pracovního postupu, mohou být spravované uzly, můžete pracovní postup spustit na jednom počítači, který splňuje všechny role.

Klientský počítač a počítač, na kterém běží relace pracovního postupu, musí být spuštěný PowerShell 3.0. Podporují se všechny oprávněné systémy, včetně možností instalace jádra serveru operačních systémů Windows Server.

Ke spouštění pracovních postupů, které zahrnují rutiny, musí mít spravované uzly prostředí Windows PowerShell 2.0 nebo novější. Spravované uzly nevyžadují PowerShell, pokud pracovní postup neobsahuje rutiny. Na počítačích, které nemají PowerShell, můžete spouštět pracovní postupy zahrnující rozhraní WMI (Windows Management Instrumentation) a příkazy CIM (Common Information Model).

Jak získat pracovní postupy

Pracovní postupy jsou obvykle zabalené v modulech. Pokud chcete importovat modul, který obsahuje pracovní postup, použijte libovolný příkaz v modulu nebo použijte rutinu Import-Module . Moduly se automaticky importují při prvním použití libovolného příkazu v modulu.

Pokud chcete najít pracovní postupy v modulech nainstalovaných v počítači, použijte Get-Command parametr CommandType rutiny.

Get-Command -CommandType Workflow

Spouštění pracovních postupů

Pokud chcete spustit pracovní postup, použijte následující postup.

  1. Pokud je spravovaný uzel místním počítačem, tento krok se nevyžaduje. Jinak na klientském počítači spusťte PowerShell s možností Spustit jako správce.

    Start-Process PowerShell -Verb RunAs
    
  2. Povolte vzdálené komunikace PowerShellu v počítači, na kterém běží relace pracovního postupu, a na spravovaných uzlech ovlivněných pracovními postupy, které zahrnují rutiny.

    Tento krok stačí udělat jenom jednou na každém zúčastněném počítači.

    Tento krok se vyžaduje pouze při spouštění pracovních postupů, které obsahují rutiny. V klientském počítači není nutné povolit vzdálené komunikace, pokud relace pracovních postupů neběží na klientském počítači ani na spravovaných uzlech se spuštěným Prostředím PowerShell 3.0.

    Pokud chcete povolit vzdálené komunikace, použijte rutinu Enable-PSRemoting .

    Enable-PSRemoting -Force
    

    Vzdálené komunikace můžete povolit pomocí nastavení Zapnout zásady skupiny spouštění skriptů. Další informace najdete v tématu about_Group_Policy_Nastavení a about_Execution_Policies.

  3. New-PSWorkflowSession K vytvoření relace pracovního postupu použijte rutinyNew-PSSession.

    Rutina New-PSWorkflowSession spustí relaci, která používá integrovanou konfiguraci relace Microsoft.PowerShell.Workflow v cílovém počítači. Tato konfigurace relace zahrnuje skripty, typy a formátování souborů a možnosti určené pro pracovní postupy.

    Nebo použijte rutinu New-PSSession . Pomocí parametru ConfigurationName zadejte konfiguraci relace Microsoft.PowerShell.Workflow . Tento příkaz je stejný jako použití rutiny New-PSWorkflowSession .

    Alternativou je použití rutiny New-PSSession . Pomocí parametru ConfigurationName zadejte konfiguraci relace Microsoft.PowerShell.Workflow .

    Na místním počítači:

    $ws = New-PSWorkflowSession
    

    Na vzdáleném počítači:

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

    Pokud jste Správa istrator v počítači relace pracovního postupu, můžete pomocí rutiny New-PSWorkflowExecutionOption vytvořit vlastní nastavení možností pro konfiguraci relace pracovního postupu. A pomocí této rutiny Set-PSSessionConfiguration můžete změnit konfiguraci relace.

    $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. Spusťte pracovní postup v relaci pracovního postupu. Chcete-li zadat názvy spravovaných uzlů, cílové počítače, použijte společný parametr pracovního postupu PSComputerName .

    Následující příklady spustí pracovní postup s názvem Test-Workflow.

    Kde spravovaný uzel je počítač, který je hostitelem relace pracovního postupu:

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

    Kde jsou spravované uzly vzdálené počítače.

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

    Následující příklad spustí Test-Workflow stovky počítačů. Rutina Get-Content získá názvy počítačů z textového souboru a uloží je do $Servers proměnné v místním počítači.

    Invoke-Command$Using používá modifikátor oboru k definování $Servers proměnné v místní relaci. Další informace o modifikátoru $Using oboru najdete v tématu about_Remote_Variables.

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

Použití běžných parametrů pracovního postupu

Běžné parametry pracovního postupu jsou sada parametrů, které PowerShell automaticky přidá do všech pracovních postupů. PowerShell přidá do všech pracovních postupů společné parametry rutiny, i když pracovní postup nepoužívá atribut CmdletBinding .

Následující pracovní postup například definuje žádné parametry. Při spuštění pracovního postupu však má CommonParameters i WorkflowCommonParameters.

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

Mezi běžné parametry pracovního postupu patří několik parametrů, které jsou nezbytné pro spouštění pracovních postupů. Například běžný parametr PSComputerName určuje spravované uzly, které pracovní postup ovlivňuje.

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

Běžný parametr pracovního postupu PSPersist určuje, kdy se data pracovního postupu zachovají. Umožňuje přidat bod trvalosti mezi aktivity do pracovních postupů, které nedefinují body trvalosti.

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

Další běžné parametry pracovního postupu umožňují určit charakteristiky vzdáleného připojení ke spravovaným uzlům. Jejich názvy a funkce jsou podobné parametrům rutin vzdálené komunikace, včetně Invoke-Command.

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

Dbejte na rozlišení parametrů vzdálené komunikace, které definují připojení relace pracovního postupu od PS-prefixed běžných parametrů pracovního postupu, které definují připojení ke spravovaným uzlům.

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

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

Některé běžné parametry pracovního postupu jsou jedinečné pro pracovní postupy, jako je například parametr PSParameterCollection , který umožňuje zadat různé společné hodnoty parametrů pracovního postupu pro různé vzdálené uzly. Seznam a popis běžných parametrů pracovního postupu najdete v tématu about_WorkflowCommonParameters.

Viz také