Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
- 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
- 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.
- A munkafolyamat-munkamenet létrehozásához használja a
New-PSWorkflowSessionNew-PSSessionparancsmagokat.
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
- 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.