Sdílet prostřednictvím


Invoke-AsWorkflow

Spustí příkaz nebo výraz jako pracovní postup Windows PowerShellu.

Syntaxe

Invoke-AsWorkflow
      [-CommandName <String>]
      [-Parameter <Hashtable>]
      [-InputObject <Object>]
      [<CommonParameters>]
Invoke-AsWorkflow
      [-Expression <String>]
      [-InputObject <Object>]
      [<CommonParameters>]

Description

Pracovní postup Invoke-AsWorkflow spouští libovolný příkaz nebo výraz jako vložený skript v pracovním postupu. Tyto pracovní postupy používají standardní sémantiku pracovního postupu, mají všechny společné parametry pracovního postupu a mají všechny výhody pracovních postupů, včetně možnosti zastavit, obnovit a obnovit.

Pracovní postupy jsou navržené pro dlouhotrvající příkazy, které shromažďují důležitá data, ale dají se použít ke spuštění libovolného příkazu. Další informace najdete v tématu about_Workflows.

Do tohoto příkazu můžete také přidat běžné parametry pracovního postupu. Další informace o běžných parametrech pracovního postupu najdete v tématu about_WorkflowCommonParameters

Tento pracovní postup je zaveden v prostředí Windows PowerShell 3.0.

Příklady

Příklad 1: Spuštění rutiny jako pracovního postupu

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

Tento příkaz spustí rutinu Get-ExecutionPolicy jako pracovní postup ve stovkách počítačů.

Příkaz používá parametr CommandName k určení rutiny, která se spouští v pracovním postupu. Používá PSComputerName společný parametr pracovního postupu k určení počítačů, na kterých se příkaz spouští. Hodnota parametru PSComputerName je příkaz Get-Content, který získá seznam názvů počítačů ze souboru Servers.txt. Hodnota parametru je uzavřena v závorkách, aby před použitím hodnoty nasměrovala prostředí Windows PowerShell ke spuštění příkazu Get-Command.

Stejně jako u všech vzdálených příkazů platí, že pokud příkaz běží na místním počítači (pokud hodnota parametru PSComputerName obsahuje místní počítač), musíte spustit Windows PowerShell s možností Spustit jako správce.

Příklad 2: Spuštění rutiny s parametry

$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5

První příkaz používá rutinu Import-Csv k vytvoření objektu z obsahu v souboru Servers.csv. Příkaz pomocí parametru Header vytvoří vlastnost ServerName pro sloupec, který obsahuje názvy cílových počítačů, označované také jako "vzdálené uzly". Příkaz uloží výsledek do proměnné $s.

Druhý příkaz používá pracovní postup Invoke-AsWorkflow ke spuštění příkazu Get-ExecutionPolicy na počítačích v souboru Servers.csv. Příkaz používá CommandName parametr Invoke-AsWorkflow k určení příkazu, který se má spustit v pracovním postupu. Používá Parameter parametr Invoke-AsWorkflow k určení parametru Scope rutiny Get-ExecutionPolicy s hodnotou Process. Příkaz také používá společný parametr pracovního postupu PSConnectionRetryCount k omezení příkazu na pět pokusů na každém počítači a společný parametr pracovního postupu PSComputerName k určení názvů vzdálených uzlů (cílových počítačů). Hodnota parametru PSComputerName je výraz, který získá ServerName vlastnost každého objektu v proměnné $s.

Tyto příkazy spouští příkaz Get-ExecutionPolicy jako pracovní postup ve stovkách počítačů. Příkaz používá parametr Scope rutiny Get-ExecutionPolicy s hodnotou Process k získání zásad provádění v aktuální relaci.

Příklad 3: Spuštění výrazu jako pracovního postupu

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

Tento příkaz používá pracovní postup Invoke-AsWorkflow ke spuštění příkazu Ipconfig jako úlohy pracovního postupu na počítačích uvedených v souboru DomainControllers.txt.

Příkaz používá parametr Expression k určení výrazu, který se má spustit. Používá společný parametr pracovního postupu PSComputerName k určení názvů vzdálených uzlů (cílových počítačů).

Příkaz také používá společné parametry AsJob a JobName pracovního postupu ke spuštění pracovního postupu jako úlohy na pozadí na každém počítači s názvem úlohy Ipconfig.

Příkaz vrátí objekt ContainerParentJob (System.Management.Automation.ContainerParentJob), který obsahuje úlohy pracovního postupu v každém počítači.

Parametry

-CommandName

Spustí zadanou rutinu nebo pokročilou funkci jako pracovní postup. Zadejte název rutiny nebo funkce, například Update-Help, Set-ExecutionPolicynebo Set-NetFirewallRule.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Expression

Určuje výraz, který tato rutina spouští jako pracovní postup. Zadejte výraz jako řetězec, například "ipconfig /all". Pokud výraz obsahuje mezery nebo speciální znaky, uzavřete výraz do uvozovek.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-InputObject

Slouží k povolení vstupu kanálu.

Typ:Object
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Parameter

Určuje parametry a hodnoty parametrů příkazu zadaného v parametru CommandName. Zadejte tabulku hash, ve které je každý klíč název parametru a jeho hodnota je hodnota parametru, například @{ExecutionPolicy="AllSigned"}.

Informace o tabulkách hash najdete v tématu about_Hash_Tables.

Typ:Hashtable
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

Object

Do parametru InputObject můžete převést libovolný objekt.

Výstupy

None

Tento příkaz negeneruje žádný výstup. Spustí ale pracovní postup, který může vygenerovat výstup.