Поделиться через


about_Workflows

Назначение: Windows PowerShell 3.0

РАЗДЕЛ

about_Workflows

КРАТКОЕ ОПИСАНИЕ

Краткие обзорные сведения о компоненте Windows PowerShell® Workflow.

ПОДРОБНОЕ ОПИСАНИЕ

Windows PowerShell Workflow предоставляет преимущества Windows Workflow Foundation в Windows PowerShell, позволяя создавать и выполнять рабочие процессы Windows PowerShell.

Windows PowerShell Workflow впервые появился в Windows PowerShell 3.0.

Подробные сведения о Windows PowerShell Workflow см. в разделе «Введение в Windows PowerShell Workflow» в библиотеке TechNet по адресу https://go.microsoft.com/fwlink/?LinkID=252592 и в разделе «Написание Windows PowerShell Workflow» в библиотеке MSDN по адресу https://go.microsoft.com/fwlink/?LinkID=246399.

О РАБОЧИХ ПРОЦЕССАХ

Рабочие процессы — это команды, которые состоят из упорядоченной последовательности связанных действий. Обычно они выполняются в течение продолжительного времени, собирая данных и внося изменения в сотни компьютеров, часто расположенных в разнородных средах.

Рабочие процессы могут быть написаны на XAML — языке, используемом в Windows Workflow Foundation, или на языке Windows PowerShell. Как правило, рабочие процессы упакованы в модули и содержат разделы справки.

Рабочие процессы имеют важное значение в ИТ-среде, так как они остаются после перезагрузок и автоматически восстанавливаются после возникновения распространенных ошибок. Можно отключать и повторно устанавливать соединение с сеансами и компьютерами, где выполняются рабочие процессы, не прерывая процесс обработки, а также прозрачно приостанавливать и возобновлять рабочие процессы без потери данных. Каждое действие в рабочем процессе может быть зарегистрировано и проверено для получения справочных сведений. Рабочие процессы можно запускать как задания, кроме того, можно планировать их выполнение с помощью функции запланированных заданий в Windows PowerShell.

Состояние и данные в рабочем процессе сохраняются в начале и конце рабочего процесса и в точках, которые можно задать. Точки сохранения рабочего процесса работают как моментальные снимки базы данных или контрольные точки программы и обеспечивают защиту от прерываний и сбоев. В случае сбоя, после которого рабочий процесс невозможно восстановить, можно воспользоваться сохраненными данными и возобновить процесс с последней точки сохранения, а не перезапускать масштабный рабочий процесс с самого начала.

ТРЕБОВАНИЯ И КОНФИГУРАЦИЯ

Конфигурация Windows PowerShell Workflow состоит из следующих элементов.

Клиентский компьютер, который запускает рабочий процесс.

Сеанс рабочих процессов (PSSession) на клиентском компьютере или на удаленном компьютере.

Управляемые узлы, целевые компьютеры, затрагиваемые действиями рабочего процесса.

ПРИМЕЧАНИЕ.

Сеанс рабочих процессов не является обязательным, но является рекомендуемым. В сеансах PSSession можно использовать преимущества функций надежного восстановления и отключенных сеансов Windows PowerShell для восстановления отключенных сеансов рабочих процессов.

Поскольку клиентский компьютер и компьютер, на котором выполняется сеанс рабочих процессов, могут быть управляемыми узлами, рабочий процесс можно запустить на одном компьютере, исполняющем все роли.

Клиентский компьютер и компьютер, на котором выполняется сеанс рабочих процессов, должны работать под управлением Windows PowerShell 3.0. Поддерживаются все подходящие системы, включая варианты установки основных серверных компонентов ОС Windows Server.

Для выполнения рабочих процессов, которые содержат командлеты, на управляемых узлах должен быть установлен Windows PowerShell 2.0 или более поздней версии. Для управляемых узлов не требуется Windows PowerShell, если рабочий процесс не содержит командлеты. Рабочие процессы, содержащие команды инструментария управления Windows (WMI) и модели CIM, можно запускать на компьютерах без Windows PowerShell.

Дополнительные сведения о системных требованиях и конфигурации см. в разделе «Введение в Windows PowerShell Workflow» в библиотеке TechNet по адресу: https://go.microsoft.com/fwlink/?LinkID=252592.

ПОЛУЧЕНИЕ РАБОЧИХ ПРОЦЕССОВ

Рабочие процессы обычно упакованы в модули. Чтобы импортировать модуль, содержащий рабочий процесс, используйте любую команду в модуле или командлет Import-Module. Модули импортируются автоматически при первом использовании команды в модуле.

Чтобы найти рабочие процессы в модулях, установленных на компьютере, используйте параметр CommandType командлета Get-Command.

      PS C:\> Get-Command -CommandType Workflow

ЗАПУСК РАБОЧИХ ПРОЦЕССОВ

Для запуска рабочего процесса предназначена следующая процедура.

1. На клиентском компьютере запустите Windows PowerShell с помощью команды «Запуск от имени администратора».

            PS C:\> Start-Process PowerShell -Verb RunAs

Этот шаг не требуется, если управляемый узел является локальным компьютером.

2. Включите удаленное взаимодействие Windows PowerShell на компьютере, где запускается сеанс рабочих процессов, и на управляемых узлах, затронутых рабочими процессами, которые содержат командлеты.

Это действие необходимо выполнить только один раз на каждом компьютере, участвующем в запуске сеанса.

Это действие необходимо только при запуске рабочих процессов, которые содержат командлеты. Удаленное взаимодействие не нужно включать на клиентском компьютере (если сеанс рабочих процессов запускается на клиентском компьютере) или на управляемых узлах, работающих под управлением Windows PowerShell 3.0.

Для включения удаленного взаимодействия используется командлет Enable-PSRemoting.

            PS C:\> Enable-PSRemoting -Force

Можно также включить удаленное взаимодействие с помощью параметра групповой политики «Включить выполнение сценариев». Дополнительные сведения см. в разделах about_Group_Policy_Settings (https://go.microsoft.com/fwlink/?LinkID=251696) и about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170).

3. Создайте сеанс рабочего процесса. Используйте командлеты New-PSWorkflowSession или New-PSSession.

Командлет New-PSWorkflowSession запускает сеанс, который использует встроенную конфигурацию сеанса Microsoft.PowerShell.Workflow на конечном компьютере. Эта конфигурация сеанса содержит сценарии, типы и файлы форматирования, а также параметры, предназначенные для рабочих процессов.

На локальном компьютере

            PS C:\> $ws = New-PSWorkflowSession

На удаленном компьютере

            PS C:\> $ws = New-PSWorkflowSession -ComputerName Server01 `
                    -Credential Domain01\Admin01

Также можно использовать командлет New-PSSession. Используйте параметр ConfigurationName, чтобы указать конфигурацию сеанса Microsoft.PowerShell.Workflow. Эта команда аналогична командлету New-PSWorkflowSession.

Если вы являетесь членом группы «Администраторы» на компьютере сеанса рабочего процесса, можно также использовать командлет New-PSWorkflowExecutionOption для создания пользовательских параметров конфигурации сеанса рабочих процессов и командлет Set-PSSessionConfiguration для изменения конфигурации сеанса.

            PS C:\> $sto = New-PSWorkflowExecutionOption -MaxConnectedSessions 150
            PS C:\> Invoke-Command -ComputerName Server01 `
                     {Set-PSSessionConfiguration Microsoft.PowerShell.Workflow `
                      -SessionTypeOption $Using:sto}
            PS C:\> $ws = New-PSWorkflowSession -ComputerName Server01 `
                    -Credential Domain01\Admin01          

4. Запустите рабочий процесс в сеансе рабочего процесса. Для указания имен управляемых узлов (целевых компьютеров) используйте общий параметр PSComputerName рабочего процесса.

Следующие команды запускают рабочий процесс Test-Workflow.

Где управляемым узлом является компьютер, на котором размещается:

Сеанс рабочего процесса:

            PS C:\> Invoke-Command -Session $ws {Test-Workflow}

Где управляемыми узлами являются удаленные компьютеры.

            PS C:\> Invoke-Command -Session $ws{
                       Test-Workflow -PSComputerName Server01, Server02 }

Следующие команды запускают рабочий процесс Test-Workflow на сотнях компьютеров. Первая команда возвращает имена компьютеров из текстовых файлов и сохраняет их в переменной $Servers на локальном компьютере.

Вторая команда использует модификатор области Using, чтобы указать, что переменная $Servers определена в локальном сеансе.

            PS C:\> $Servers = Get-Content Servers.txt
            PS C:\> Invoke-Command -Session $ws {Test-Workflow -PSComputerName $Using:Servers }

Дополнительные сведения о модификаторе области Using см. в разделе about_Remote_Variables по адресу: https://go.microsoft.com/fwlink/?LinkID=252653.

ИСПОЛЬЗОВАНИЕ ОБЩИХ ПАРАМЕТРОВ РАБОЧИХ ПРОЦЕССОВ

Общие параметры рабочего процесса — это набор параметров, который Windows PowerShell автоматически добавляет во все рабочие процессы. Windows PowerShell также добавляет общие параметры командлетов во все рабочие процессы, даже если рабочий процесс не использует атрибут CmdletBinding.

Например, следующий очень простой рабочий процесс не определяет никакие параметры. Однако при выполнении рабочий процесс имеет WorkflowCommonParameters и WorkflowCommonParameters.

      PS C:\> workflow Test-Workflow {Get-Process}
      PS C:\> Get-Command Test-Workflow -Syntax
      Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]

В число общих параметров рабочих процессов входит несколько параметров, которые необходимы для выполнения рабочих процессов. Например, общий параметр PSComputerName указывает управляемые узлы, которые затрагивает рабочий процесс.

      PS C:\> Invoke-Command -Session $ws `
               {Test-Workflow -PSComputerName Server01, Server02}

Общий параметр рабочего процесса PSPersist определяет момент сохранения данных рабочего процесса. Он позволяет добавлять точки сохранения между действиями в рабочие процессы, которые не определяют точки сохранения.

     PS C:\> Invoke-Command -Session $ws `
               {Test-Workflow -PSComputerName Server01, Server02 -PSPersist:$True}

Другие общие параметры рабочих процессов позволяют указывать характеристики удаленного подключения к управляемым узлам. Их имена и функции очень похожи на параметры командлетов удаленного взаимодействия, включая Invoke-Command.

      PS C:\> Invoke-Command -Session $ws `
               {Test-Workflow -PSComputerName Server01, Server02 -PSPort 443}

Будьте внимательны и отличайте параметры удаленного взаимодействия, определяющие подключение для сеанса рабочего процесса, от общих параметров рабочего процесса с префиксом PS, которые определяют подключение к управляемым узлам.

      PS C:\> $ws = New-PSSession -ComputerName Server01 `
              -ConfigurationName Microsoft.PowerShell.Workflow
      PS C:\> Invoke-Command -Session $ws `
               {Test-Workflow -PSComputerName Server01, Server02 `
              -PSConfigurationName Microsoft.PowerShell.Workflow}

Некоторые общие параметры рабочих процессов являются уникальными для рабочих процессов, например параметр PSParameterCollection, который позволяет указывать разные значения общих параметров рабочих процессов для разных удаленных узлов.

Список и описание общих параметров рабочих процессов см. в разделе about_WorkflowCommonParameters по адресу: https://go.microsoft.com/fwlink/?LinkID=222527.

СМ. ТАКЖЕ

Invoke-AsWorkflow

New-PSSessionExecutionOption

New-PSWorkflowSession

about_WorkflowCommonParameters

«Приступая к работе с Windows PowerShell Workflow»

(https://go.microsoft.com/fwlink/?LinkID=252592)

«Написание Windows PowerShell Workflow»

(https://go.microsoft.com/fwlink/?LinkID=246399)