Windows PowerShell: O que é o fluxo de trabalho do Windows PowerShell?

Usar um fluxo de trabalho do Windows PowerShell pode ser um processo complexo, mas que vale a pena pela funcionalidade fornecida.

Observação: Todos os meses durante 2013, Don Jones apresentará uma parcela em uma série de tutoriais de 12-parte no fluxo de trabalho do Windows PowerShell. Nós encorajamos você a ler a série na ordem, começando com a coluna de janeiro de 2013 e prosseguindo mês a mês.

Don Jones

O fluxo de trabalho do Windows PowerShell é um novo recurso do Windows Management Framework versão 3.0. Em sentido lato, um fluxo de trabalho é um tipo especializado de script do Windows PowerShell. Ele descreve um conjunto de tarefas, algumas das quais precisam ocorrer em uma determinada seqüência, enquanto outros podem executar em paralelo.

Fluxo de trabalho do Windows PowerShell vem pré-instalado no Windows Server 2012 e o Windows 8. Também está disponível para Windows 7, Windows Server 2008 e Windows Server 2008 R2. Você vai precisar de um desses sistemas operacionais para executar um fluxo de trabalho. No entanto, um fluxo de trabalho pode ter como alvo — ou seja, executar tarefas contra — qualquer versão do Windows, dependendo da tarefa exata que você está tentando realizar.

Ele é escrito usando sintaxe padrão de Windows PowerShell mais ou menos. Há, no entanto, várias incompatibilidades entre fluxos de trabalho e tradicionais scripts do Windows PowerShell. Fluxo de trabalho do Windows PowerShell faz uso pesado do recurso de comunicação remota do Windows PowerShell. (Pegar meu livre "Segredos do PowerShell Remoting" guia se você precisa de um Conselho de primer ou configuração de comunicação remota.)

Como fluxos de trabalho trabalho

Olhando sob o capô (que nós vamos fazer mais aprofundado mais tarde ao longo desta série), você encontrará um fluxo de trabalho do Windows PowerShell não é realmente executado pelo Windows PowerShell. Em vez disso, o Windows PowerShell traduz seu script em XAML e entrega-lo para o Windows Workflow Foundation (WWF), que é uma parte do Microsoft .NET Framework. WWF aceita o XAML e realmente executa a execução.

O fato de que a WWF executa um fluxo de trabalho e não o Windows PowerShell, apresenta alguns recursos interessantes e mais algumas complexidades. Por exemplo, WWF destina-se ao ponto de verificação o andamento de um fluxo de trabalho. Dessa forma, se a máquina executando o fluxo de trabalho é interrompida de alguma forma, como sendo desligado, o fluxo de trabalho pode pegar onde parou quando a máquina começa novamente.

Você também pode ter fluxos de trabalho suspenso e retomado manualmente. Por exemplo, você pode ter um fluxo de trabalho completar um determinado conjunto de tarefas, até certo ponto, quando é necessária a intervenção manual. Então você pode querer a suspender a operação e enviar automaticamente uma mensagem de email com uma atualização de status. Depois de completar as tarefas manuais, você poderia retomar o fluxo de trabalho e deixá-lo continuar a execução.

Fluxos de trabalho também podem executar coisas em paralelo, se quiser. Por exemplo, se você tem um conjunto de tarefas que podem ser executados em qualquer ordem, com nenhum interdependências, então você pode ter todos eles mais ou menos o mesmo tempo. Que diminui a quantidade de tempo total que leva para concluir o fluxo de trabalho, o que melhora a eficiência. WWF também mantém o controle de cada etapa do fluxo de trabalho. Isso significa que você pode gerar um log de auditoria detalhadas sobre quais tarefas concluiu, que é uma grande ajuda com a solução de problemas.

Fluxos de trabalho não podem fazer tudo o que poderia fazer um script do Windows PowerShell. Como você vai aprender ao longo desta série, qualquer coisa que você não pode traduzir em algo que WWF entende está fora dos limites. Há definitivamente alguns aspectos do Windows PowerShell que não vai transferir. Assim, um fluxo de trabalho é um subconjunto do Windows PowerShell nem um superconjunto. É um conjunto de Cruz, ou seja, fluxos de trabalho adicionam alguns recursos do Windows PowerShell, mas podem também tirar alguns. Que é um dos aspectos mais complexos de fluxos de trabalho.

Não é a única resposta

Um fluxo de trabalho não é a resposta final para cada tarefa. A empolgação em torno de fluxos de trabalho decorre da equipe de produto da Microsoft e numerosos entusiastas independentes que podem dar a impressão de que você deve fazer tudo como um fluxo de trabalho. Resista a esse desejo, porque os fluxos de trabalho têm uma curva de aprendizagem mais elevada distintamente. Eles também são mais difíceis de solucionar problemas e depurar e nem sempre são necessárias.

Por exemplo, se você simplesmente precisa ter uma tarefa Executar contra um conjunto de computadores em paralelo, sistema de interação remota planície de idade podemos conseguir isso para você. Você também pode usar um trabalho de fundo 2-estilo de versão do Windows PowerShell (que ainda existe na versão 3).

Se você só precisa executar uma sequência de tarefas que reinicia o computador de destino e esperar por ele para retomar antes de continuar o script, você pode fazer isso com o comando de reinicialização computador novo versão 3 (que possui um - interruptor de espera). Então enquanto você pode ver os fluxos de trabalho são realmente poderosos e têm alguns recursos únicos, eles não são necessariamente a maneira mais fácil de conseguir cada tarefa possível.

A anatomia de um fluxo de trabalho

Um fluxo de trabalho, como uma função ou um cmdlet, é um tipo de comando do Windows PowerShell. Depois de criar um, você basicamente apenas executá-lo como qualquer outro comando. Você também poderia programá-la ou empurrá-lo para uma máquina remota para correr lá. Em tempo de execução, o Windows PowerShell converte para o WWF e pede a WWF para realmente executar o fluxo de trabalho.

Como outros tipos de comandos, você pode dar parâmetros de fluxos de trabalho que permitem que você personalize o seu comportamento em tempo de execução. Há uma variedade de parâmetros comuns disponíveis para permitir automaticamente a comportamentos específicos.

Você define um conjunto de atividades dentro de um fluxo de trabalho. Você pode configurar essas atividades para executar em uma seqüência específica ou em paralelo com os outros. Você pode misturar e combinar seqüências e blocos paralelo tanto quanto necessário. O truque é que cada atividade deve ser algo que WWF entende. Este é, verdadeiramente, onde começa a complexidade.

A equipe do Windows PowerShell fornecidos WWF "versões" da maioria dos cmdlets do núcleo principais do Windows PowerShell. Isso significa que você pode usar esses cmdlets direito dentro de um fluxo de trabalho. Quando traduzido para a WWF, os cmdlets são substituídos com seus equivalentes do WWF, assim correm como esperado.

Em um mundo ideal, cada cmdlet do Windows PowerShell viria com um equivalente WWF. Isso tornaria fluxos de trabalho parecem muito com os scripts do Windows PowerShell familiares que tenho escrito há anos. No entanto, nós não vivemos em um mundo perfeito. Na realidade, a maioria dos cmdlets não vêm com equivalentes do WWF. Isto é especialmente verdadeiro com os cmdlets que vêm com o Exchange Server, SharePoint e Windows Server 2012 (com exceção do núcleo de cmdlets do Windows PowerShell).

WWF nativamente não pode executar esses cmdlets. Você deve envolvê-los dentro de algo que WWF compreende: um InlineScript. Esta atividade especial essencialmente diz WWF para apenas executar o Windows PowerShell. Alimenta-se o conteúdo da atividade InlineScript para o shell.

Cada InlineScript é independente, autônomo e entidade desconectada. InlineScripts não pode compartilhar informações uns com os outros, exceto por persistir os dados em algum lugar (como em um banco de dados) podem todos os acessos.

Estes fazem com que fluxos de trabalho de escrita muito mais complexo. No entanto, eles vão ser a sua unidade principal de execução para o momento, porque a maioria dos cmdlets do Windows PowerShell ainda não tem versões do WWF.

Aqui é que está à frente

Fluxos de trabalho são definitivamente emocionantes. Quando usado para a tarefa certa, eles fornecem funcionalidade incrível. Eles são de fato complexos. Você terá que investir algum tempo aprendendo a usá-los. A meta em 2013 é apresentar um pedaço grande de informações de cada mês:

  • **Fevereiro de 2013:**Cobrir o ambiente de fluxo de trabalho, incluindo pré-requisitos e configuração do sistema de interação remota.
  • **Março de 2013:**Dar-lhe um exemplo de fluxo de trabalho básico, então nós temos algo para falar e construir em cima vai para a frente.
  • **Abril de 2013:**Comparar e contrastar os scripts e fluxos de trabalho, com uma ampla lista do que será — e não vai — trabalho em cada um.
  • **Maio de 2013:**Cavar em atividades de fluxo de trabalho, incluindo a mais importante atividade InlineScript.
  • **Junho de 2013:**Olhar para os parâmetros comuns e variáveis de tempo de execução de fluxos de trabalho e como usá-los em seus próprios fluxos de trabalho.
  • **Julho de 2013:**Saiba como adicionar os seus próprios parâmetros para um fluxo de trabalho.
  • **Agosto de 2013:**Construção tanto seqüenciados e paralelizado atividades dentro de um fluxo de trabalho, e eu vou mostrar-lhe como misturar e combiná-los.
  • **Setembro de 2013:**Olhe como progresso de ponto de verificação de fluxo de trabalho e como manualmente e programaticamente suspender e retomar fluxos de trabalho.
  • **Outubro de 2013:**Levar tudo o que aprendemos até agora e cria um exemplo de fluxo de trabalho novo, em grande escala.
  • **Novembro de 2013:**Colocar algumas perspectivas para a conversa, mostrando algumas das alternativas para fluxos de trabalho para tarefas específicas como paralelizar tarefas.
  • **De dezembro de 2013:**Veja as outras maneiras que você pode usar e interagir com o conjunto de recursos de fluxo de trabalho.

Estou ansioso para a turnê de um ano de fluxo de trabalho do Windows PowerShell. Espero que você se juntará me cada passo do caminho.

Don Jones

Don Jones é um receptor do prêmio de MVP do Windows PowerShell e um editor colaborador da TechNet Magazine. Ele é co-autor de quatro livros sobre o Windows PowerShell versão 3, incluindo mais livre na criação de relatórios HTML no Windows PowerShell e Windows PowerShell Remoting. Encontrá-los todos no PowerShellBooks.com, ou você pode fazer Jones perguntas nos fóruns de discussão em PowerShell.org.

Conteúdo relacionado