Compartilhar via


about_Workflows

Aplica-se a: Windows PowerShell 3.0

TÓPICO

about_Workflows

DESCRIÇÃO BREVE

Fornece uma breve introdução ao recurso de fluxo de trabalho para o Windows PowerShell®.

DESCRIÇÃO LONGA

O fluxo de trabalho do Windows PowerShell dá os benefícios do Windows Workflow Foundation para Windows PowerShell, permitindo que você escreva e execute fluxos de trabalho em Windows PowerShell.

O fluxo de trabalho do Windows PowerShell foi introduzido no Windows PowerShell 3.0.

Para obter informações detalhadas sobre o fluxo de trabalho do Windows PowerShell, consulte "Introduzindo o fluxo de trabalho do Windows PowerShell" na biblioteca do TechNet em https://go.microsoft.com/fwlink/?LinkID=252592 e "Escrevendo um fluxo de trabalho do Windows PowerShell" na biblioteca MSDN em https://go.microsoft.com/fwlink/?LinkID=246399.

SOBRE FLUXOS DE TRABALHO

Fluxos de trabalho são comandos que consistem em uma sequência ordenada de atividades relacionadas. Geralmente, eles são executados por um longo período de tempo, coletando dados e fazendo alterações em centenas de computadores, geralmente em ambientes heterogêneos.

Fluxos de trabalho podem ser gravados em XAML, a linguagem usada no Windows Workflow Foundation ou na linguagem Windows PowerShell. Fluxos de trabalho normalmente são empacotados em módulos e incluem tópicos de ajuda.

Fluxos de trabalho são essenciais em um ambiente de TI porque podem sobreviver a reinicializações e recuperar automaticamente de falhas comuns. Você pode se desconectar e reconectar de sessões e computadores que executam os fluxos de trabalho sem interromper o processamento de fluxo de trabalho, e suspender e retomar os fluxos de trabalho de forma transparente, sem perda de dados. Cada atividade em um fluxo de trabalho pode ser registrada e auditada para referência. O fluxo de trabalho pode ser executado como trabalhos e pode ser agendado usando o recurso de trabalhos agendados do Windows PowerShell.

O estado e os dados em um fluxo de trabalho são salvos ou "persistentes" no início e no final do fluxo de trabalho e em pontos que você especificar. Pontos de persistência de fluxo de trabalho funcionam como instantâneos de banco de dados ou pontos de verificação de programa para proteger o fluxo de trabalho dos efeitos de falhas e interrupções. Em caso de falha da qual não é possível recuperar o fluxo de trabalho, você pode usar os dados persistentes e retomar do último ponto de persistência, em vez de executar novamente um fluxo de trabalho amplo desde o início.

REQUISITOS E CONFIGURAÇÃO

Uma configuração fluxo de trabalho do Windows PowerShell consiste dos seguintes elementos.

Um computador cliente, que executa o fluxo de trabalho.

Uma sessão de fluxo de trabalho (PSSession) no computador cliente ou em um computador remoto.

Nós gerenciados, os computadores de destino que são afetados pelas atividades de fluxo de trabalho.

OBSERVAÇÃO:

A sessão de fluxo de trabalho não é necessária, mas é recomendada. Os PSSessions podem tirar proveito da recuperação robusta e recursos de sessões desconectadas do Windows PowerShell para recuperar sessões desconectadas do fluxo de trabalho.

Como o computador cliente e o computador no qual a sessão de fluxo de trabalho é executado podem ser nós gerenciados, você pode executar um fluxo de trabalho em um único computador que atenda a todas as funções.

O computador cliente e o computador no qual a sessão de fluxo de trabalho é executada devem estar executando Windows PowerShell 3.0. Todos os sistemas qualificados têm suporte, incluindo as opções de instalação Server Core dos sistemas operacionais Windows Server.

Para executar fluxos de trabalho que incluem cmdlets, os nós gerenciados devem ter Windows PowerShell 2.0 ou posterior. Nós gerenciados não exigem Windows PowerShell, a menos que o fluxo de trabalho inclua cmdlets. Você pode executar fluxos de trabalho que incluem comandos do WMI (Instrumentação de Gerenciamento do Windows) e CIM (Modelo de Informações Comuns) em computadores que não têm Windows PowerShell.

Para obter mais informações sobre os requisitos de sistema e configuração, consulte "Introduzindo o fluxo de trabalho do Windows PowerShell" na biblioteca do TechNet em https://go.microsoft.com/fwlink/?LinkID=252592.

COMO OBTER OS FLUXOS DE TRABALHO

Fluxos de trabalho são normalmente incluídos em módulos. Para importar o módulo que inclui um fluxo de trabalho, use qualquer comando no módulo ou os cmdlets Import-Module. Módulos são importados automaticamente no primeiro uso de todos os comandos no módulo.

Para localizar os fluxos de trabalho em módulos instalados no seu computador, use o parâmetro CommandType do cmdlet Get-Command.

      PS C:\> Get-Command -CommandType Workflow

COMO EXECUTAR OS FLUXOS DE TRABALHO

Para executar um fluxo de trabalho, use o procedimento a seguir.

1. No computador cliente, inicie o Windows PowerShell com a opção Executar como administrador.

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

Essa etapa não é necessária quando o nó gerenciado é o computador local.

2. Habilite Windows PowerShell com comunicação remota no computador em que a sessão de fluxo de trabalho é executada e em nós gerenciados afetados pelos fluxos de trabalho que incluem cmdlets.

Você precisa fazer isso apenas uma vez em cada computador participante.

Essa etapa é necessária apenas ao executar fluxos de trabalho que incluem cmdlets. Você não precisa habilitar a comunicação remota no computador cliente (a menos que a sessão de fluxos de trabalho seja executada no computador cliente) ou em quaisquer nós gerenciados que estão executando Windows PowerShell 3.0.

Para habilitar a comunicação remota, use o cmdlet Enable-PSRemoting.

            PS C:\> Enable-PSRemoting -Force

Você também pode habilitar a comunicação remota usando a configuração de política de grupo "Desativar na execução do script". Para obter mais informações, consulte about_Group_Policy_Settings (https://go.microsoft.com/fwlink/?LinkID=251696) e about_Execution_Policies (https://go.microsoft.com/fwlink/?LinkID=135170).

3. Crie uma sessão de fluxo de trabalho. Use os cmdlets New-PSWorkflowSession ou New-PSSession.

O cmdlet New-PSWorkflowSession inicia uma sessão que usa a configuração de sessão do Microsoft.PowerShell.Workflow interna no computador de destino. Essa configuração de sessão inclui scripts, tipo e arquivos de formatação e opções que foram desenvolvidas para fluxos de trabalho.

No computador local:

            PS C:\> $ws = New-PSWorkflowSession

Em um computador remoto:

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

Ou, use o cmdlet New-PSSession. Use o parâmetro ConfigurationName para especificar a configuração de sessão do Microsoft.PowerShell.Workflow. Esse comando é equivalente a usar o cmdlet New-PSWorkflowSession.

Se você for um membro do grupo Administradores no computador de sessão de fluxo de trabalho, você também pode usar o cmdlet New-PSWorkflowExecutionOption para criar configurações de opção personalizada para a configuração da sessão de fluxo de trabalho e use o cmdlet Set-PSSessionConfiguration para alterar a configuração da sessão.

            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. Execute o fluxo de trabalho na sessão de fluxo de trabalho. Para especificar os nomes de nós gerenciados (computadores de destino), use o parâmetro comum de fluxo de trabalho PSComputerName.

Os seguintes comandos executam o fluxo de trabalho Test-Workflow.

Em que o nó gerenciado é o computador que hospeda:

A sessão de fluxo de trabalho:

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

Em que os nós gerenciados são computadores remotos.

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

Os seguintes comandos executam o fluxo de trabalho Test-Workflow em centenas de computadores. O primeiro comando obtém os nomes de computador de arquivos de texto e os salva na variável $Servers no computador local.

O segundo comando usa o modificador de escopo Using para indicar que a variável $Servers é definida na sessão local.

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

Para obter mais informações sobre o modificador de escopo Using, consulte about_Remote_Variables em https://go.microsoft.com/fwlink/?LinkID=252653

USANDO PARÂMETROS COMUNS DE FLUXO DE TRABALHO

Os parâmetros comuns de fluxo de trabalho são um conjunto de parâmetros que Windows PowerShell adiciona automaticamente a todos os fluxos de trabalho. O Windows PowerShell também adiciona os parâmetros de cmdlet comuns a todos os fluxos de trabalho, mesmo se o fluxo de trabalho não usar o atributo CmdletBinding.

Por exemplo, o fluxo de trabalho muito simples a seguir não define parâmetros. No entanto, quando você executa o fluxo de trabalho, ele tem CommonParameters e WorkflowCommonParameters.

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

Os parâmetros de fluxo de trabalho comuns incluem vários parâmetros que são essenciais para executar fluxos de trabalho. Por exemplo, o parâmetro comum PSComputerName especifica os nós gerenciados que afeta o fluxo de trabalho.

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

O parâmetro comum de fluxo de trabalho PSPersist determina quando os dados de fluxo de trabalho são mantidos. Ele permite que você adicione o ponto de persistência entre atividades para fluxos de trabalho que não definem pontos de persistência.

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

Outros parâmetros comuns de fluxo de trabalho permitem especificar as características da conexão remota para os nós gerenciados. Os nomes e a funcionalidade são muito semelhantes aos parâmetros de cmdlets de comunicação remota, incluindo Invoke-Command.

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

Tome cuidado para distinguir os parâmetros de comunicação remota que definem a conexão para a sessão de fluxo de trabalho de parâmetros comuns de fluxo de trabalho com o prefixo PS que define a conexão com os nós gerenciados.

      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}

Alguns parâmetros comuns de fluxo de trabalho são exclusivos dos fluxos de trabalho, como o parâmetro PSParameterCollection que permite que você especifique valores diferentes de parâmetros comuns do fluxo de trabalho para diferentes nós remotos.

Para obter uma lista e descrição dos parâmetros comuns de fluxo de trabalho, consulte about_WorkflowCommonParameters em https://go.microsoft.com/fwlink/?LinkID=222527.

CONSULTE TAMBÉM

Invoke-AsWorkflow

New-PSSessionExecutionOption

New-PSWorkflowSession

about_WorkflowCommonParameters

"Introdução ao fluxo de trabalho do Windows PowerShell"

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

"Escrevendo um fluxo de trabalho do Windows PowerShell"

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