Udostępnij za pośrednictwem


Invoke-AsWorkflow

Uruchamia polecenie lub wyrażenie jako przepływ pracy programu Windows PowerShell.

Składnia

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

Opis

Przepływ Invoke-AsWorkflow pracy uruchamia dowolne polecenie lub wyrażenie jako skrypt wbudowany w przepływie pracy. Te przepływy pracy korzystają ze standardowej semantyki przepływu pracy, mają wszystkie wspólne parametry przepływu pracy i mają wszystkie zalety przepływów pracy, w tym możliwość zatrzymywania, wznawiania i odzyskiwania.

Przepływy pracy są przeznaczone dla długotrwałych poleceń, które zbierają dane krytyczne, ale mogą służyć do uruchamiania dowolnego polecenia. Aby uzyskać więcej informacji, zobacz about_Workflows.

Do tego polecenia można również dodać typowe parametry przepływu pracy. Aby uzyskać więcej informacji na temat typowych parametrów przepływu pracy, zobacz about_WorkflowCommonParameters

Ten przepływ pracy jest wprowadzany w programie Windows PowerShell 3.0.

Przykłady

Przykład 1. Uruchamianie polecenia cmdlet jako przepływu pracy

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

To polecenie uruchamia Get-ExecutionPolicy polecenie cmdlet jako przepływ pracy na setkach komputerów.

Polecenie używa parametru CommandName , aby określić polecenie cmdlet uruchamiane w przepływie pracy. Używa on wspólnego parametru przepływu pracy PSComputerName , aby określić komputery, na których jest uruchamiane polecenie. Wartość parametru PSComputerName jest poleceniem Get-Content , które pobiera listę nazw komputerów z pliku Servers.txt. Wartość parametru jest ujęta w nawiasy, aby skierować program Windows PowerShell do uruchomienia Get-Command polecenia przed użyciem wartości.

Podobnie jak w przypadku wszystkich poleceń zdalnych, jeśli polecenie jest uruchamiane na komputerze lokalnym (jeśli wartość parametru PSComputerName zawiera komputer lokalny), należy uruchomić program Windows PowerShell z opcją "Uruchom jako administrator".

Przykład 2. Uruchamianie polecenia cmdlet z parametrami

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

Pierwsze polecenie używa Import-Csv polecenia cmdlet do utworzenia obiektu na podstawie zawartości w pliku Servers.csv. Polecenie używa parametru Header do utworzenia ServerName właściwości dla kolumny zawierającej nazwy komputerów docelowych, znanej również jako "węzły zdalne". Polecenie zapisuje wynik w zmiennej $s .

Drugie polecenie używa Invoke-AsWorkflow przepływu pracy do uruchomienia Get-ExecutionPolicy polecenia na komputerach w pliku Servers.csv. Polecenie używa parametru CommandName polecenia , Invoke-AsWorkflow aby określić polecenie do uruchomienia w przepływie pracy. Używa Parameter parametru , Invoke-AsWorkflow aby określić Scope parametr Get-ExecutionPolicy polecenia cmdlet z wartością Process. Polecenie używa również wspólnego parametru PSConnectionRetryCount przepływu pracy, aby ograniczyć polecenie do pięciu prób na każdym komputerze i PSComputerName wspólny parametr przepływu pracy w celu określenia nazw węzłów zdalnych (komputerów docelowych). Wartość parametru PSComputerName jest wyrażeniem, które pobiera ServerName właściwość każdego obiektu w zmiennej $s .

Te polecenia uruchamiają Get-ExecutionPolicy polecenie jako przepływ pracy na setkach komputerów. Polecenie używa Scope parametru Get-ExecutionPolicy polecenia cmdlet z wartością Process , aby uzyskać zasady wykonywania w bieżącej sesji.

Przykład 3. Uruchamianie wyrażenia jako przepływu pracy

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

To polecenie używa Invoke-AsWorkflow przepływu pracy do uruchamiania polecenia Ipconfig jako zadania przepływu pracy na komputerach wymienionych w pliku DomainControllers.txt.

Polecenie używa parametru Expression , aby określić wyrażenie do uruchomienia. Używa on wspólnego parametru PSComputerName przepływu pracy do określania nazw węzłów zdalnych (komputerów docelowych).

Polecenie używa AsJob również typowych parametrów i JobName przepływu pracy do uruchamiania przepływu pracy jako zadania w tle na każdym komputerze z nazwą zadania "Ipconfig".

Polecenie zwraca ContainerParentJob obiekt (System.Management.Automation.ContainerParentJob), który zawiera zadania przepływu pracy na każdym komputerze.

Parametry

-CommandName

Uruchamia określone polecenie cmdlet lub funkcję zaawansowaną jako przepływ pracy. Wprowadź polecenie cmdlet lub nazwę funkcji, taką jak Update-Help, Set-ExecutionPolicylub Set-NetFirewallRule.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Expression

Określa wyrażenie, które to polecenie cmdlet jest uruchamiane jako przepływ pracy. Wprowadź wyrażenie jako ciąg, na przykład "ipconfig /all". Jeśli wyrażenie zawiera spacje lub znaki specjalne, należy ująć wyrażenie w znaki cudzysłowu.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

Służy do zezwalania na wprowadzanie potoku.

Typ:Object
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Parameter

Określa parametry i wartości parametrów polecenia określonego w parametrze CommandName . Wprowadź tabelę skrótów, w której każdy klucz jest nazwą parametru, a jego wartość jest wartością parametru, taką jak @{ExecutionPolicy="AllSigned"}.

Aby uzyskać informacje o tabelach skrótów, zobacz about_Hash_Tables.

Typ:Hashtable
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

Object

Do tego polecenia cmdlet można przekazać dowolny obiekt.

Dane wyjściowe

None

To polecenie nie zwraca własnych danych wyjściowych, ale uruchamiany przepływ pracy może zwracać dane wyjściowe.