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


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.