PowerShell
Przepływy pracy programu PowerShell
Szukaj…
Wprowadzenie
Przepływ pracy programu PowerShell to funkcja, która została wprowadzona począwszy od wersji PowerShell 3.0. Definicje przepływu pracy wyglądają bardzo podobnie do definicji funkcji programu PowerShell, jednak są wykonywane w środowisku Windows Workflow Foundation, a nie bezpośrednio w silniku PowerShell.
Mechanizm przepływu pracy zawiera kilka unikalnych funkcji „po wyjęciu z pudełka”, w szczególności trwałość zadań.
Uwagi
Funkcja przepływu pracy PowerShell jest obsługiwana wyłącznie na platformie Microsoft Windows w PowerShell Desktop Edition. PowerShell Core Edition, obsługiwany w systemach Linux, Mac i Windows, nie obsługuje funkcji przepływu pracy PowerShell.
Podczas tworzenia przepływu pracy programu PowerShell należy pamiętać, że przepływy pracy wywołują działania, a nie polecenia cmdlet. Nadal możesz wywoływać polecenia cmdlet z przepływu pracy programu PowerShell, ale silnik przepływu pracy niejawnie InlineScript
wywołanie polecenia cmdlet w działaniu InlineScript
. Możesz także jawnie zawinąć kod wewnątrz działania InlineScript
, który wykonuje kod PowerShell; domyślnie działanie InlineScript
działa w osobnym procesie i zwraca wynik do wywoływanego przepływu pracy.
Przykład prostego przepływu pracy
workflow DoSomeWork {
Get-Process -Name notepad | Stop-Process
}
Jest to podstawowy przykład definicji przepływu pracy PowerShell.
Przepływ pracy z parametrami wejściowymi
Podobnie jak funkcje PowerShell, przepływy pracy mogą akceptować parametr wejściowy. Parametry wejściowe można opcjonalnie powiązać z określonym typem danych, takim jak ciąg, liczba całkowita itp. Użyj standardowego słowa kluczowego param
aby zdefiniować blok parametrów wejściowych, bezpośrednio po deklaracji przepływu pracy.
workflow DoSomeWork {
param (
[string[]] $ComputerName
)
Get-Process -ComputerName $ComputerName
}
DoSomeWork -ComputerName server01, server02, server03
Uruchom przepływ pracy jako zadanie w tle
Przepływy pracy programu PowerShell są z natury wyposażone w możliwość uruchamiania jako zadania w tle. Aby wywołać przepływ pracy jako zadanie w tle PowerShell, użyj parametru -AsJob
podczas wywoływania przepływu pracy.
workflow DoSomeWork {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
DoSomeWork -AsJob
Dodaj blok równoległy do przepływu pracy
workflow DoSomeWork {
parallel {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
}
Jedną z unikalnych cech programu PowerShell Workflow jest możliwość zdefiniowania bloku działań jako równoległego. Aby użyć tej funkcji, użyj parallel
słowa kluczowego w przepływie pracy.
Równoległe wywoływanie działań przepływu pracy może pomóc poprawić wydajność przepływu pracy.