Udostępnij za pomocą


Invoke-AsWorkflow

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

Składnia

Command (domyślnie)

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

Expression

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

Opis

Przepływ pracy Invoke-AsWorkflow 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 polecenie cmdlet Get-ExecutionPolicy 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 PSComputerName wspólnego parametru przepływu pracy, aby określić komputery, na których jest uruchamiane polecenie. Wartość parametru PSComputerName to polecenie 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 polecenia Get-Command 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 polecenia cmdlet Import-Csv do utworzenia obiektu na podstawie zawartości w pliku Servers.csv. Polecenie używa parametru Header do utworzenia właściwości ServerName 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 przepływu pracy Invoke-AsWorkflow do uruchomienia polecenia Get-ExecutionPolicy na komputerach w pliku Servers.csv. Polecenie używa CommandName parametru Invoke-AsWorkflow, aby określić polecenie do uruchomienia w przepływie pracy. Używa parametru ParameterInvoke-AsWorkflow do określenia parametru Scope polecenia cmdlet Get-ExecutionPolicy z wartością Process. Polecenie używa również wspólnego parametru przepływu pracy PSConnectionRetryCount, aby ograniczyć polecenie do pięciu prób na każdym komputerze i wspólny parametr przepływu pracy PSComputerName w celu określenia nazw węzłów zdalnych (komputerów docelowych). Wartość parametru PSComputerName jest wyrażeniem, które pobiera właściwość ServerName każdego obiektu w zmiennej $s.

Te polecenia uruchamiają polecenie Get-ExecutionPolicy jako przepływ pracy na setkach komputerów. Polecenie używa parametru Scope polecenia cmdlet Get-ExecutionPolicy z wartością Process, aby pobrać 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 przepływu pracy Invoke-AsWorkflow 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 przepływu pracy PSComputerName do określania nazw węzłów zdalnych (komputerów docelowych).

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

Polecenie zwraca obiekt ContainerParentJob (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ź nazwę polecenia cmdlet lub funkcji, na przykład Update-Help, Set-ExecutionPolicylub Set-NetFirewallRule.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Command
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów: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.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Expression
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-InputObject

Służy do zezwalania na wprowadzanie potoku.

Właściwości parametru

Typ:Object
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Parameter

Określa parametry i wartości parametrów polecenia określonego w CommandName parametru. 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.

Właściwości parametru

Typ:Hashtable
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

Command
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

Object

Do tego polecenia cmdlet można przekierować 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.