PowerShell
Рабочие процессы PowerShell
Поиск…
Вступление
PowerShell Workflow - это функция, которая была введена с версии PowerShell версии 3.0. Определения рабочего процесса очень похожи на определения функций PowerShell, однако они выполняются в среде Windows Workflow Foundation, а не непосредственно в движке PowerShell.
Несколько уникальных функций «вне коробки» включены в механизм Workflow, в первую очередь, настойчивость работы.
замечания
Функция PowerShell Workflow поддерживается исключительно на платформе Microsoft Windows под PowerShell Desktop Edition. PowerShell Core Edition, поддерживаемый в Linux, Mac и Windows, не поддерживает функцию PowerShell Workflow.
При создании рабочего процесса PowerShell имейте в виду, что рабочие процессы вызывают действия, а не командлеты. Вы все равно можете вызывать командлеты из рабочего процесса PowerShell, но Workflow Engine неявно InlineScript
вызов cmdlet в InlineScript
. Вы также можете явно InlineScript
код внутри действия InlineScript
, который выполняет код PowerShell; по умолчанию действие InlineScript
выполняется в отдельном процессе и возвращает результат в вызывающий Workflow.
Пример простого рабочего процесса
workflow DoSomeWork {
Get-Process -Name notepad | Stop-Process
}
Это базовый пример определения рабочего процесса PowerShell.
Рабочий процесс с входными параметрами
Подобно функциям PowerShell, рабочие процессы могут принимать входной параметр. Параметры ввода могут быть необязательно привязаны к определенному типу данных, таким как строка, целое число и т. Д. Используйте ключевое слово стандартного param
для определения блока входных параметров непосредственно после объявления рабочего процесса.
workflow DoSomeWork {
param (
[string[]] $ComputerName
)
Get-Process -ComputerName $ComputerName
}
DoSomeWork -ComputerName server01, server02, server03
Запуск рабочего процесса в качестве фонового задания
Рабочие процессы PowerShell по своей сути оснащены возможностью запуска в фоновом режиме. Чтобы вызвать рабочий процесс в качестве фонового задания PowerShell, при вызове рабочего процесса используйте параметр -AsJob
.
workflow DoSomeWork {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
DoSomeWork -AsJob
Добавление параллельного блока в рабочий процесс
workflow DoSomeWork {
parallel {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
}
Одной из уникальных возможностей PowerShell Workflow является возможность определять блок действий как параллельный. Чтобы использовать эту функцию, используйте ключевое слово parallel
внутри вашего Workflow.
Вызов параллельных действий рабочего процесса может помочь повысить производительность вашего рабочего процесса.