Invoke-AsWorkflow

Parancsot vagy kifejezést futtat Windows PowerShell-munkafolyamatként.

Syntax

Invoke-AsWorkflow
      [-CommandName <String>]
      [-Parameter <Hashtable>]
      [-InputObject <Object>]
      [<CommonParameters>]
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 munkafolyamatként futtatja a Get-ExecutionPolicy parancsmagot több száz számítógépen.

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 létrehoz egy tulajdonságot ServerName 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 CommandName paraméter használatával Invoke-AsWorkflow adja meg a munkafolyamatban futtatandó parancsot. A paraméterrel ParameterInvoke-AsWorkflow adja meg a Get-ExecutionPolicyScope parancsmag paraméterét a Process értékével. A parancs a PSConnectionRetryCount munkafolyamat közös paraméterét is használja, hogy a parancsot minden számítógépen öt kísérletre korlátozza, a PSComputerName munkafolyamat közös paramétere pedig a távoli csomópontok (célszámítógépek) nevének megadására. A paraméter értéke PSComputerName egy kifejezés, amely a ServerName változó minden objektumának tulajdonságát $s lekéri.

Ezek a parancsok több száz számítógépen futtatnak Get-ExecutionPolicy munkafolyamatként egy parancsot. A parancs a ScopeGet-ExecutionPolicy parancsmag paraméterét használja a 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 a DomainControllers.txt fájlban felsorolt számítógépeken.

A parancs a Expression paraméter használatával adja meg a futtatandó kifejezést. PSComputerName A munkafolyamat gyakori paraméterével adja meg a távoli csomópontok (célszámítógépek) nevét.

A parancs a munkafolyamat gyakori paramétereit is használja a AsJobJobName 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 tartalmazza az egyes számítógépek munkafolyamat-feladatait.

Paraméterek

-CommandName

Munkafolyamatként futtatja a megadott parancsmagot vagy speciális függvényt. Adja meg a parancsmag vagy a függvény nevét, például Update-Help: , Set-ExecutionPolicyvagy Set-NetFirewallRule.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

A folyamat bemenetének engedélyezése.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Parameter

Megadja a paraméterben megadott parancs paramétereit és paraméterértékeit CommandName . 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 talál.

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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.