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.
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
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_Settings a about_Execution_Policies.
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í rutinyNew-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ávcem 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 rutinySet-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
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čů. RutinaGet-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.