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.