O pracovních postupech
Krátký popis
Poskytuje 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 zaveden v PowerShellu 3.0 a modul je dostupný až do PowerShellu 5.1. Další informace o pracovním postupu PowerShellu najdete v tématu Průvodce pracovními postupy a Zápis pracovního postupu 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ěží delší dobu a shromažďují data ze stovek počítačů a dělají změny ve stovkách 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 v IT prostředí kritické, protože můžou přežít restartování a automaticky se zotavit z běžných selhání. Můžete se odpojit a znovu připojit k relacím a počítačům, na kterých běží pracovní postupy, aniž by došlo k přerušení zpracování pracovního postupu, a pozastavit a obnovit pracovní postupy transparentně 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 v PowerShellu.
Stav a data v pracovním postupu jsou uloženy nebo uloženy na začátku a na konci pracovního postupu a v bodech, které určíte. Body trvalosti pracovního postupu fungují podobně jako snímky databáze nebo kontrolní body programu a chrání pracovní postup před účinky přerušení a selhání. Pokud se pracovní postup nedokáže zotavit z selhání, můžete použít trvalá data a pokračovat od posledního bodu trvalosti místo opětovného spuštění rozsáhlého pracovního postupu od začátku.
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 se spouští pracovní postup.
- Relace pracovního postupu , PSSession, na klientském počítači nebo na vzdáleném počítači.
- Spravované uzly, cílové počítače, které jsou ovlivněny aktivitami pracovního postupu.
Relace pracovního postupu se nevyžaduje, ale doporučuje se. Nástroje PSSession můžou využít robustní funkce obnovení a odpojené relace PowerShellu k obnovení odpojených relací pracovního postupu. Další informace najdete v tématu about_Remote_Disconnected_Sessions
Protože klientský počítač a počítač, na kterém běží relace pracovního postupu, mohou být spravované uzly, můžete spustit pracovní postup na jednom počítači, který splňuje všechny role.
Na klientském počítači a počítači, 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.
Pokud chcete spouštět pracovní postupy, které obsahují rutiny, musí mít spravované uzly Windows PowerShell 2.0 nebo novější. Spravované uzly nevyžadují PowerShell, pokud pracovní postup neobsahuje rutiny. Pracovní postupy, které zahrnují rozhraní WMI (Windows Management Instrumentation) a příkazy MODELU CIM (Common Information Model), můžete spouštět na počítačích, které nemají PowerShell.
Jak získat pracovní postupy
Pracovní postupy jsou obvykle zabaleny v modulech. K importu modulu, který obsahuje pracovní postup, použijte libovolný příkaz v modulu nebo použijte rutinu Import-Module
.
Moduly se importují automaticky 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
Jak spouštět pracovní postupy
Pokud chcete spustit pracovní postup, použijte následující postup.
- Pokud je spravovaným uzlem místní počítač, není tento krok povinný. 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 na počítači, na kterém běží relace pracovního postupu, a na spravovaných uzlech ovlivněných pracovními postupy, které obsahují rutiny.
Tento krok stačí na každém zúčastněném počítači provést jenom jednou.
Tento krok se vyžaduje pouze při spouštění pracovních postupů, které obsahují rutiny. Na klientském počítači nemusíte povolovat vzdálené komunikace, pokud relace pracovních postupů neběží na klientském počítači nebo na spravovaných uzlech, na kterých běží 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 spouštění skriptů Zásady skupiny. 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 rutiny neboNew-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, soubory typu a formátování a možnosti, které jsou určené pro pracovní postupy.
Nebo použijte rutinu New-PSSession
. Pomocí parametru ConfigurationName určete konfiguraci relace Microsoft.PowerShell.Workflow . Tento příkaz je stejný jako použití rutiny New-PSWorkflowSession
.
Alternativou je použít rutinu New-PSSession
. Pomocí parametru ConfigurationName určete konfiguraci relace Microsoft.PowerShell.Workflow .
V 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 počítače relace pracovního postupu, můžete pomocí rutiny New-PSWorkflowExecutionOption
vytvořit vlastní nastavení možností pro konfiguraci relace pracovního postupu. A pomocí rutiny Set-PSSessionConfiguration
změňte 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. Pokud chcete zadat názvy spravovaných uzlů, cílových počítačů, použijte společný parametr pracovního postupu PSComputerName .
Následující příklady spustí pracovní postup s názvem Test-Workflow.
Kde spravovaným uzlem je počítač, který je hostitelem relace pracovního postupu:
Invoke-Command -Session $ws {Test-Workflow}
Spravované uzly jsou vzdálené počítače.
Invoke-Command -Session $ws{
Test-Workflow -PSComputerName Server01, Server02 }
Následující příklad spustí Test-Workflow na stovkách 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
pomocí modifikátoru $Using
oboru definuje proměnnou $Servers
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
Společné parametry pracovního postupu jsou sada parametrů, které PowerShell automaticky přidává do všech pracovních postupů. PowerShell přidá společné parametry rutiny do všech pracovních postupů, i když pracovní postup nepoužívá atribut CmdletBinding .
Například následující pracovní postup nedefinuje žádné parametry. Pokud však pracovní postup spustíte, má jak CommonParameters , tak WorkflowCommonParameters.
workflow Test-Workflow {Get-Process}
Get-Command Test-Workflow -Syntax
Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]
Společné parametry pracovního postupu zahrnují několik parametrů, které jsou nezbytné pro spouštění pracovních postupů. Například společný parametr PSComputerName určuje spravované uzly, které pracovní postup ovlivňuje.
Invoke-Command -Session $ws `
{Test-Workflow -PSComputerName Server01, Server02}
Společný parametr pracovního postupu PSPersist určuje, kdy jsou data pracovního postupu trvalá. Umožňuje přidat bod trvalosti mezi aktivitami 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}
Odlišujte parametry vzdálené komunikace, které definují připojení pro relaci pracovního postupu, od běžných parametrů pracovního postupu s předponou PS , 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, například parametr PSParameterCollection , který umožňuje zadat různé hodnoty společných 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.