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-ExecutionPolicy
lub 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
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.