Megosztás a következőn keresztül:


Tudnivalók a munkafolyamatokról

Rövid leírás

Rövid bevezetést nyújt a PowerShell-munkafolyamat szolgáltatásba.

Hosszú leírás

A PowerShell-munkafolyamat a Windows Workflow Foundation előnyeit biztosítja a PowerShellben, és lehetővé teszi munkafolyamatok írását és futtatását.

A PowerShell-munkafolyamat a PowerShell 3.0-ban lett bevezetve, és a modul a PowerShell 5.1-ig érhető el. A PowerShell-munkafolyamatról további információt a Munkafolyamatok útmutatóban és a Windows PowerShell-munkafolyamat írásában talál.

Tudnivalók a munkafolyamatokról

A munkafolyamatok olyan parancsok, amelyek a kapcsolódó tevékenységek rendezett sorozatából állnak. Általában hosszabb ideig futnak, adatokat gyűjtenek és módosítanak több száz számítógépről, gyakran heterogén környezetekben.

A munkafolyamatok írhatók XAML-ben, a Windows Workflow Foundationben vagy a PowerShell-nyelven. A munkafolyamatok általában modulokba vannak csomagolva, és súgótémaköröket tartalmaznak. További információt az XAML áttekintésében (WPF) talál.

A munkafolyamatok kritikus fontosságúak egy informatikai környezetben, mert túlélhetik az újraindításokat, és automatikusan helyreállhatnak a gyakori hibákból. A munkafolyamat-feldolgozás megszakítása nélkül leválaszthatja és újracsatlakoztathatja a munkafolyamatokat futtató munkameneteket és számítógépeket, és transzparens módon, adatvesztés nélkül felfüggesztheti és folytathatja a munkafolyamatokat. A munkafolyamat minden tevékenysége naplózható és naplózható referenciaként. A munkafolyamatok feladatokként futtathatók, és ütemezhetők a PowerShell Ütemezett feladatok funkciójával.

A munkafolyamat állapotának és adatainak mentése vagy megőrzése a munkafolyamat elején és végén, valamint az Ön által megadott pontokon történik. A munkafolyamat-megőrzési pontok az adatbázis-pillanatképekhez vagy a program ellenőrzőpontjaihoz hasonlóan működnek, hogy megvédjék a munkafolyamatot a megszakítások és hibák hatásaitól. Ha a munkafolyamat nem tud helyreállítani egy hibát, használhatja a megőrzött adatokat, és folytathatja az utolsó adatmegőrzési pontról ahelyett, hogy újrafuttat egy átfogó munkafolyamatot az elejétől kezdve.

Munkafolyamat-követelmények és konfiguráció

A PowerShell-munkafolyamat-konfiguráció a következő elemekből áll:

  • A munkafolyamatot futtató ügyfélszámítógép.
  • Egy munkafolyamat-munkamenet( PSSession) az ügyfélszámítógépen vagy egy távoli számítógépen.
  • Felügyelt csomópontok, a munkafolyamat-tevékenységek által érintett célszámítógépek.

A munkafolyamat-munkamenet nem szükséges, de ajánlott. A PSSessions kihasználhatja a PowerShell robusztus helyreállítási és leválasztott munkamenet-funkcióit a leválasztott munkafolyamat-munkamenetek helyreállításához. További információ: about_Remote_Disconnected_Sessions

Mivel az ügyfélszámítógép és az a számítógép, amelyen a munkafolyamat-munkamenet fut, felügyelt csomópontok lehetnek, egyetlen számítógépen futtathat munkafolyamatot, amely minden szerepkört betölt.

Az ügyfélszámítógépnek és annak a számítógépnek, amelyen a munkafolyamat-munkamenet fut, a PowerShell 3.0-t kell futtatnia. Minden jogosult rendszer támogatott, beleértve a Windows Server operációs rendszerek Server Core telepítési lehetőségeit is.

A parancsmagokat tartalmazó munkafolyamatok futtatásához a felügyelt csomópontoknak Windows PowerShell 2.0-s vagy újabb verzióval kell rendelkezniük. A felügyelt csomópontok csak akkor igényelnek PowerShellt, ha a munkafolyamat parancsmagokat tartalmaz. A Windows Management Instrumentation (WMI) és a Common Information Model (CIM) parancsokat tartalmazó munkafolyamatokat olyan számítógépeken is futtathatja, amelyek nem rendelkeznek PowerShell-lel.

Munkafolyamatok lekérése

A munkafolyamatok általában modulokba vannak csomagolva. A munkafolyamatot tartalmazó modul importálásához használja a modul bármely parancsát, vagy használja a Import-Module parancsmagot. A modulok importálása automatikusan megtörténik a modul bármely parancsának első használatakor.

A számítógépen telepített modulok munkafolyamatainak megkereséséhez használja a Get-Command parancsmag CommandType paraméterét.

Get-Command -CommandType Workflow

Munkafolyamatok futtatása

Munkafolyamat futtatásához kövesse az alábbi eljárást.

  1. Ha a felügyelt csomópont a helyi számítógép, ez a lépés nem szükséges. Ellenkező esetben az ügyfélszámítógépen indítsa el a PowerShellt a Futtatás rendszergazdaként lehetőséggel.
Start-Process PowerShell -Verb RunAs
  1. Engedélyezze a PowerShell-újramotálást a munkafolyamat-munkamenetet futtató számítógépen és a parancsmagokat tartalmazó munkafolyamatok által érintett felügyelt csomópontokon.

Ezt a lépést csak egyszer kell elvégeznie minden résztvevő számítógépen.

Ez a lépés csak parancsmagokat tartalmazó munkafolyamatok futtatásakor szükséges. Nem kell engedélyeznie az újraegyezést az ügyfélszámítógépen, kivéve, ha a munkafolyamat-munkamenet az ügyfélszámítógépen vagy a PowerShell 3.0-t futtató felügyelt csomópontokon fut.

Az újraküldés engedélyezéséhez használja a Enable-PSRemoting parancsmagot.

Enable-PSRemoting -Force

Az újrakezdés engedélyezéséhez használja a Szkriptvégrehajtási csoportházirend bekapcsolása beállítást. További információ: about_Group_Policy_Settings és about_Execution_Policies.

  1. A munkafolyamat-munkamenet létrehozásához használja a New-PSWorkflowSessionNew-PSSession parancsmagokat.

A New-PSWorkflowSession parancsmag elindít egy munkamenetet, amely a célszámítógép beépített Microsoft.PowerShell.Workflow munkamenet-konfigurációját használja. Ez a munkamenet-konfiguráció parancsfájlokat, típus- és formázási fájlokat, valamint munkafolyamatokhoz tervezett beállításokat tartalmaz.

Vagy használja a New-PSSession parancsmagot. A ConfigurationName paraméter használatával adja meg a Microsoft.PowerShell.Workflow munkamenet konfigurációját. Ez a parancs ugyanaz, mint a New-PSWorkflowSession parancsmag használata.

Másik lehetőségként használhatja a New-PSSession parancsmagot. A ConfigurationName paraméter használatával adja meg a Microsoft.PowerShell.Workflow munkamenet konfigurációját.

A helyi számítógépen:

$ws = New-PSWorkflowSession

Távoli számítógépen:

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

Ha Ön rendszergazda a munkafolyamat-munkamenet számítógépén, a New-PSWorkflowExecutionOption parancsmaggal egyéni beállításbeállításokat hozhat létre a munkafolyamat-munkamenet konfigurációjához. A parancsmaggal Set-PSSessionConfiguration pedig módosíthatja a munkamenet konfigurációját.

$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
  1. Futtassa a munkafolyamatot a munkafolyamat-munkamenetben. A felügyelt csomópontok, célszámítógépek nevének megadásához használja a PSComputerName munkafolyamat gyakori paraméterét.

Az alábbi példák a Test-Workflow nevű munkafolyamatot futtatják.

Ahol a felügyelt csomópont a munkafolyamat-munkamenetet üzemeltető számítógép:

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

Ahol a felügyelt csomópontok távoli számítógépek.

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

Az alábbi példa több száz számítógépen futtatja a teszt-munkafolyamatot . A Get-Content parancsmag lekéri a számítógépneveket egy szövegfájlból, és menti őket a $Servers helyi számítógépen lévő változóba.

Invoke-Command A $Using hatókör-módosító használatával határozza meg a változót $Servers a helyi munkamenetben. A hatókör-módosítóról további információt a $Usingabout_Remote_Variables talál.

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

Gyakori munkafolyamat-paraméterek használata

A munkafolyamat gyakori paraméterei olyan paraméterek, amelyeket a PowerShell automatikusan hozzáad az összes munkafolyamathoz. A PowerShell hozzáadja a parancsmag általános paramétereit az összes munkafolyamathoz, még akkor is, ha a munkafolyamat nem használja a CmdletBinding attribútumot.

Az alábbi munkafolyamat például nem határoz meg paramétereket. A munkafolyamat futtatásakor azonban a CommonParameters és a WorkflowCommonParameter is rendelkezik.

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

A munkafolyamatok gyakori paraméterei számos olyan paramétert tartalmaznak, amelyek elengedhetetlenek a munkafolyamatok futtatásához. A PSComputerName common paraméter például a munkafolyamat által érintett felügyelt csomópontokat határozza meg.

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

A PSPersist munkafolyamat gyakori paramétere határozza meg, hogy a munkafolyamat adatai mikor maradnak meg. Lehetővé teszi, hogy olyan munkafolyamatokhoz adjon megőrzési pontot a tevékenységek között, amelyek nem határoznak meg adatmegőrzési pontokat.

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

A munkafolyamat egyéb gyakori paraméterei lehetővé teszik a felügyelt csomópontokhoz való távoli kapcsolat jellemzőinek megadását. Nevük és funkciójuk hasonló a parancsmagok újraküldésének paramétereihez, beleértve a parancsmagokat is Invoke-Command.

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

Ügyeljen arra, hogy megkülönböztesse a munkafolyamat-munkamenet kapcsolatát meghatározó távelérési paramétereket a PS-előtaggal rendelkező munkafolyamat gyakori paramétereitől, amelyek meghatározzák a felügyelt csomópontokkal való kapcsolatot.

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

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

A munkafolyamatok egyes gyakori paraméterei egyediek a munkafolyamatokhoz, például a PSParameterCollection paraméterhez, amely lehetővé teszi a munkafolyamat különböző gyakori paraméterértékeinek megadását a különböző távoli csomópontokhoz. A munkafolyamat gyakori paramétereinek listáját és leírását lásd : about_WorkflowCommonParameters.

Lásd még

Invoke-AsWorkflow

New-PSSession (új PowerShell-munkamenet)

Munkafolyamatok útmutatója

Windows PowerShell-munkafolyamat írása