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
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Służy do zezwalania na wprowadzanie potoku.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Linki powiązane
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla