Invoke-AsWorkflow
Parancsot vagy kifejezést futtat Windows PowerShell-munkafolyamatként.
Syntax
Command (Alapértelmezett)
Invoke-AsWorkflow
[-CommandName <String>]
[-Parameter <Hashtable>]
[-InputObject <Object>]
[<CommonParameters>]
Expression
Invoke-AsWorkflow
[-Expression <String>]
[-InputObject <Object>]
[<CommonParameters>]
Description
A Invoke-AsWorkflow munkafolyamat bármely parancsot vagy kifejezést beágyazott szkriptként futtat egy munkafolyamatban.
Ezek a munkafolyamatok a szokásos munkafolyamat-szemantikát használják, minden munkafolyamat közös paraméterével rendelkeznek, és a munkafolyamatok minden előnyével rendelkeznek, beleértve a leállítás, a folytatás és a helyreállítás lehetőségét is.
A munkafolyamatok olyan hosszú ideig futó parancsokhoz vannak kialakítva, amelyek kritikus adatokat gyűjtenek, de bármely parancs futtatására használhatók. További információ: about_Workflows.
A parancshoz gyakran használt munkafolyamat-paramétereket is hozzáadhat. A munkafolyamat gyakori paramétereiről további információt a about_WorkflowCommonParameters
Ezt a munkafolyamatot a Windows PowerShell 3.0-ban vezettük be.
Példák
1. példa: Parancsmag futtatása munkafolyamatként
Invoke-AsWorkflow -PSComputerName (Get-Content Servers.txt) -CommandName Get-ExecutionPolicy
PSComputerName PSSourceJobInstanceId Value
-------------- --------------------- -----
Server01 77b1cdf8-8226-4662-9067-cd2fa5c3b711 AllSigned
Server02 a33542d7-3cdd-4339-ab99-0e7cd8e59462 Unrestricted
Server03 279bac28-066a-4646-9497-8fcdcfe9757e AllSigned
localhost 0d858009-2cc4-47a4-a2e0-da17dc2883d0 RemoteSigned
Ez a parancs több száz számítógépen futtatja munkafolyamatként a Get-ExecutionPolicy parancsmagot.
A parancs a CommandName paraméter használatával adja meg a munkafolyamatban futó parancsmagot.
A PSComputerName munkafolyamat gyakori paraméterével adja meg azokat a számítógépeket, amelyeken a parancs fut.
A PSComputerName paraméter értéke egy Get-Content parancs, amely lekéri a számítógépnevek listáját a Servers.txt fájlból.
A paraméter értéke zárójelben van, hogy a Windows PowerShell az érték használata előtt futtassa a Get-Command parancsot.
Mint minden távoli parancs esetén, ha a parancs a helyi számítógépen fut (ha a PSComputerName paraméter értéke tartalmazza a helyi számítógépet), a Windows PowerShellt a "Futtatás rendszergazdaként" beállítással kell elindítania.
2. példa: Parancsmag futtatása paraméterekkel
$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5
Az első parancs a Import-Csv parancsmaggal hoz létre egy objektumot a Servers.csv fájl tartalmából. A parancs a Header paraméterrel hoz létre egy ServerName tulajdonságot a célszámítógépek nevét tartalmazó oszlophoz, más néven "távoli csomópontokhoz". A parancs az eredményt a $s változóba menti.
A második parancs a Invoke-AsWorkflow munkafolyamat használatával futtat egy Get-ExecutionPolicy parancsot a Servers.csv fájlban lévő számítógépeken. A parancs a Invoke-AsWorkflow paraméterével adja meg a munkafolyamatban futtatandó parancsot. A ParameterInvoke-AsWorkflow paraméterével adja meg a Scope parancsmag Get-ExecutionPolicy paraméterét Processértékkel. A parancs a PSConnectionRetryCount munkafolyamat közös paraméterével is korlátozza a parancsot öt kísérletre minden számítógépen, és a PSComputerName munkafolyamat közös paraméterével adja meg a távoli csomópontok (célszámítógépek) nevét. A PSComputerName paraméter értéke olyan kifejezés, amely lekéri a ServerName változó összes objektumának $s tulajdonságát.
Ezek a parancsok több száz számítógépen futtatnak munkafolyamatként egy Get-ExecutionPolicy parancsot.
A parancs a Scope parancsmag Get-ExecutionPolicy paraméterét használja Folyamat értékével a végrehajtási szabályzat lekéréséhez az aktuális munkamenetben.
3. példa: Kifejezés futtatása munkafolyamatként
Invoke-AsWorkflow -Expression "ipconfig /all" -PSComputerName (Get-Content DomainControllers.txt) -AsJob -JobName IPConfig
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 IpConfig PSWorkflowJob Completed True Server01, Server01... Invoke-AsWorkflow
Ez a parancs a Invoke-AsWorkflow munkafolyamat használatával futtat egy Ipconfig-parancsot munkafolyamat-feladatként az DomainControllers.txt fájlban felsorolt számítógépeken.
A parancs a Expression paramétert használja a futtatandó kifejezés megadásához.
A PSComputerName munkafolyamat gyakori paraméterével adja meg a távoli csomópontok (célszámítógépek) nevét.
A parancs a AsJob és JobName munkafolyamat gyakori paramétereit is használja a munkafolyamat háttérfeladatként való futtatásához minden számítógépen az "Ipconfig" feladatnévvel.
A parancs egy ContainerParentJob objektumot (System.Management.Automation.ContainerParentJob) ad vissza, amely minden számítógépen tartalmazza a munkafolyamat-feladatokat.
Paraméterek
-CommandName
Munkafolyamatként futtatja a megadott parancsmagot vagy speciális függvényt.
Adja meg a parancsmag vagy függvény nevét, például Update-Help, Set-ExecutionPolicyvagy Set-NetFirewallRule.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
Command
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Expression
Azt a kifejezést adja meg, amelyet ez a parancsmag munkafolyamatként futtat.
Adja meg a kifejezést sztringként, például "ipconfig /all".
Ha a kifejezés szóközöket vagy speciális karaktereket tartalmaz, a kifejezést idézőjelek közé kell foglalnia.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
Expression
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-InputObject
A folyamat bemenetének engedélyezése.
Paramétertulajdonságok
| Típus: | Object |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Parameter
A CommandName paraméterben megadott parancs paramétereit és paraméterértékeit adja meg.
Adjon meg egy kivonattáblát, amelyben minden kulcs paraméternév, értéke pedig a paraméter értéke, például @{ExecutionPolicy="AllSigned"}.
A kivonattáblákról további információt a about_Hash_Tables.
Paramétertulajdonságok
| Típus: | Hashtable |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
Command
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
Object
A parancsmaghoz bármilyen objektumot csövezhet.
Kimenetek
None
Ez a parancs nem ad vissza saját kimenetet, de az általa futtatott munkafolyamat kimenetet adhat vissza.