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 beállítással.
Start-Process PowerShell -Verb RunAsEngedé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-PSRemotingparancsmagot.Enable-PSRemoting -ForceAz ú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-PSWorkflowSessionparancsmag 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-PSSessionparancsmagot. A ConfigurationName paraméter használatával adja meg a Microsoft.PowerShell.Workflow munkamenet konfigurációját. Ez a parancs ugyanaz, mint aNew-PSWorkflowSessionparancsmag használata.Másik lehetőségként használhatja a
New-PSSessionparancsmagot. 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-PSWorkflowSessionTávoli számítógépen:
$newPSWorkflowSessionSplat = @{ ComputerName = 'Server01' Credential = 'Domain01\Admin01' } $ws = New-PSWorkflowSession @newPSWorkflowSessionSplatHa Ön rendszergazda a munkafolyamat-munkamenet számítógépén, a
New-PSWorkflowExecutionOptionparancsmaggal egyéni beállításbeállításokat hozhat létre a munkafolyamat-munkamenet konfigurációjához. A parancsmaggalSet-PSSessionConfigurationpedig 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 @newPSWorkflowSessionSplatFuttassa 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-Workflowműveletet. AGet-Contentparancsmag lekéri a számítógépneveket egy szövegfájlból, és menti őket a$Servershelyi számítógépen lévő változóba.Invoke-CommandAUsing:hatókör-módosító használatával határozza meg a változót$Serversa helyi munkamenetben. A hatókör-módosítóról további információt aUsing: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.