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


about_Workflows

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 beállítással.

    Start-Process PowerShell -Verb RunAs
    
  2. 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.

  3. 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:

    $newPSWorkflowSessionSplat = @{
     ComputerName = 'Server01'
     Credential = 'Domain01\Admin01'
    }
    $ws = New-PSWorkflowSession @newPSWorkflowSessionSplat
    

    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.

    $newPSWorkflowExecutionOptionSplat = @{
        MaxConnectedSessions = 150
    }
    $sto = New-PSWorkflowExecutionOption @newPSWorkflowExecutionOptionSplat
    $invokeCommandSplat = @{
        ComputerName = 'Server01'
        ScriptBlock = {
          Set-PSSessionConfiguration Microsoft.PowerShell.Workflow -SessionTypeOption $Using:sto
       }
    }
    Invoke-Command @invokeCommandSplat
    $newPSWorkflowSessionSplat = @{
       ComputerName = 'Server01'
       Credential = 'Domain01\Admin01'
    }
    $ws = New-PSWorkflowSession @newPSWorkflowSessionSplat
    
  4. 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 munkafolyamatot Test-Workflowfuttatjá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 Test-Workflow műveletet. 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 Using: about_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ó újraformálási paramétereket a PS-prefixed felügyelt csomópontokhoz való kapcsolatot meghatározó gyakori munkafolyamat-paraméterektől.

$newPSSessionSplat = @{
    ComputerName = 'Server01'
    ConfigurationName = 'Microsoft.PowerShell.Workflow'
}
$ws = New-PSSession @newPSSessionSplat

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

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