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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow