Windows PowerShell: ¿Qué son los flujos de trabajo de Windows PowerShell?

Usar un flujo de trabajo de Windows PowerShell puede ser un proceso complejo, pero, a fin de cuentas, valdrá la pena gracias a la funcionalidad que proporciona.

Nota: Cada mes durante 2013, Don Jones presentará una entrega de una serie de 12-parte tutorial de flujo de trabajo de Windows PowerShell. Le recomendamos que lea la serie en orden, empezando por la columna de enero de 2013 y proceder por mes.

Don Jones

El flujo de trabajo de Windows PowerShell es una nueva función en el marco de la gestión de Windows versión 3.0. En un sentido amplio, un flujo de trabajo es un tipo especializado de secuencia de comandos de Windows PowerShell. Describe un conjunto de tareas, algunas de las cuales deban ocurrir en una secuencia determinada, mientras que otras pueden funcionar en paralelo.

Flujo de trabajo de Windows PowerShell viene preinstalado en Windows Server 2012 y Windows 8. También está disponible para Windows 7, Windows Server 2008 y Windows Server 2008 R2. Usted necesitará uno de los sistemas operativos para ejecutar un flujo de trabajo. Sin embargo, puede dirigir un flujo de trabajo — es decir, realizar tareas contra — cualquier versión de Windows, dependiendo de la tarea exacta que usted está tratando de lograr.

Está escrito con más o menos sintaxis estándar de Windows PowerShell. Sin embargo, hay varias incompatibilidades entre flujos de trabajo y secuencias de comandos de Windows PowerShell tradicionales. Flujo de trabajo de Windows PowerShell hace uso intensivo de la función de la interacción remota de Windows PowerShell. (Agarra mi libre "Secretos de PowerShell Remoting" guía si usted necesita un asesoramiento de cartilla o configuración remota.)

¿Cómo funcionan los flujos de trabajo

Mirando debajo de la campana (que vamos a hacer más profunda más adelante a lo largo de esta serie), encontrará un flujo de trabajo de Windows PowerShell no es realmente ejecutado por Windows PowerShell. En cambio, Windows PowerShell se traduce a la secuencia de comandos en XAML y manos apagado para Windows Workflow Foundation (WWF), que es una porción de Microsoft .NET Framework. WWF acepta el XAML y realmente lleva a cabo la ejecución.

El hecho de que la WWF ejecuta un flujo de trabajo y no de Windows PowerShell, introduce algunas capacidades interesantes y complejidades más de unos pocos. Por ejemplo, WWF está diseñado para control de los progresos de un flujo de trabajo. Así, si se interrumpe el flujo de trabajo de funcionamiento de la máquina de alguna manera, como cierre, el flujo de trabajo puede recoger donde lo dejó cuando la máquina comienza de nuevo.

También puede tener flujos de trabajo manualmente suspendido y reanudado. Por ejemplo, usted podría tener un flujo de trabajo completar una serie de tareas, hasta un punto cuando se requiere intervención manual. A continuación, puede suspender la operación y enviar automáticamente un mensaje de correo electrónico con una actualización de estado. Después de completar las tareas manuales, podría reanudar el flujo de trabajo y deje que se continúa la ejecución.

Flujos de trabajo también pueden ejecutar cosas en paralelo, si lo desea. Por ejemplo, si tiene un conjunto de tareas que se pueden ejecutar en cualquier orden, con ninguna interdependencias, puede tendrá todos ellos corren más o menos el mismo tiempo. Reduce la cantidad de tiempo total que tarda en completarse el flujo de trabajo, lo que mejora la eficiencia. WWF también realiza un seguimiento de cada paso del flujo de trabajo. Esto significa que puede generar un registro detallado de auditoría en lo que han completado las tareas, que es de gran ayuda con la solución de problemas.

Flujos de trabajo no pueden hacer todo lo que podía hacer una secuencia de comandos de Windows PowerShell. Como usted aprenderá a lo largo de esta serie, algo que no se puede convertir en algo que entiende de WWF está fuera de los límites. Hay sin duda algunos aspectos de Windows PowerShell que no transferencia. Así que un flujo de trabajo es un subconjunto de Windows PowerShell ni un superconjunto. Es un conjunto de Cruz, lo que significa que los flujos de trabajo agregan algunas funcionalidades a Windows PowerShell, pero pueden también llevar algunos. Es uno de los aspectos más complejos de los flujos de trabajo.

No es la única respuesta

Un flujo de trabajo no es la respuesta definitiva a cada tarea. El equipo de producto de Microsoft y numerosos aficionados independientes que pueden dar la impresión de que usted debe hacer todo como un flujo de trabajo se deriva de la emoción alrededor de flujos de trabajo. Resistir ese impulso, porque los flujos de trabajo tienen una curva de aprendizaje superior claramente. También son más difíciles solucionar problemas y depurar y no siempre son necesarios.

Por ejemplo, si usted necesita simplemente tener una tarea ejecutar un conjunto de equipos en paralelo, remoting llano de edad puede lograr para usted. También se puede utilizar un trabajo de fondo 2-estilo de versión de Windows PowerShell (que todavía existe en la versión 3).

Si sólo necesita ejecutar una secuencia de tareas que se reinicia el equipo de destino y esperar para reanudar antes de continuar la secuencia de comandos, puede hacerlo con el nuevo comando de reinicio del equipo de la versión 3 (que incluye a - interruptor de espera). Así que mientras que usted puede ver los flujos de trabajo son realmente potentes y tienen algunas capacidades únicas, que no son necesariamente la forma más sencilla de realizar cada tarea posible.

La anatomía de un flujo de trabajo

Un flujo de trabajo, como una función o un cmdlet, es un tipo de comando de Windows PowerShell. Una vez que haya creado uno, básicamente sólo ejecutarlo como cualquier otro comando. También puede programar, o empujarlo a una máquina remota para ejecutar allí. En tiempo de ejecución, Windows PowerShell lo traduce a WWF y pide WWF a ejecutar el flujo de trabajo.

Como otros tipos de comandos, puede dar los parámetros de los flujos de trabajo que le permiten personalizar su comportamiento en tiempo de ejecución. Hay una variedad de parámetros comunes disponibles para activar automáticamente comportamientos específicos.

Define un conjunto de actividades dentro de un flujo de trabajo. Puede configurar estas actividades para que se ejecute en una secuencia específica o en paralelo entre sí. Usted puede mezclar y combinar secuencias y paralelizadas bloques tanto como sea necesario. El truco es que cada actividad debe ser algo que entiende de WWF. Esto es verdaderamente donde empieza la complejidad.

El equipo de Windows PowerShell proporcionó WWF "versiones" de la mayoría de los principales cmdlets de núcleo de Windows PowerShell. Esto significa que puede usar los derecho de cmdlets dentro de un flujo de trabajo. Cuando traduce a WWF, los cmdlets se sustituyen con sus equivalentes de la WWF, por lo que quedarás como se esperaba.

En un mundo ideal, cada cmdlet de Windows PowerShell vendría con un equivalente WWF. Esto haría que los flujos de trabajo parecen mucho los scripts de Windows PowerShell familiares nos hemos escrito durante años. Sin embargo, no vivimos en un mundo perfecto. En realidad, la mayoría cmdlets no vienen con equivalentes WWF. Esto es especialmente cierto con los cmdlets que vienen con Exchange Server, SharePoint y Windows Server 2012 (con la excepción de núcleo cmdlets de Windows PowerShell).

WWF nativamente no puede ejecutar estos cmdlets. Tienes que envolver dentro de algo que entiende de WWF: un JSON. Esta especial actividad esencialmente dice WWF sólo ejecutar Windows PowerShell. Se alimenta el contenido de la actividad de JSON para la shell.

Cada JSON es un independiente, independiente y desconectada de la entidad. InlineScripts no puede compartir información con otros excepto por la persistencia de los datos en algún lugar (por ejemplo, en una base de datos) pueden todos los accesos.

Estos hacen mucho más complejos flujos de trabajo de escritura. Sin embargo, van a ser la principal unidad de ejecución por el momento, porque la mayoría cmdlets de Windows PowerShell no tiene versiones WWF.

Aquí es lo que viene

Flujos de trabajo son definitivamente emocionantes. Cuando se utiliza para la tarea adecuada, proporcionan funcionalidad increíble. Son de hecho complejos. Tendrás que invertir algún tiempo aprender a usarlos. El objetivo en 2013 es presentar una porción importante de información cada mes:

  • **Febrero de 2013:**Cubrir el entorno de flujo de trabajo, incluyendo los requisitos y configuración remota.
  • **Marzo de 2013:**Darle un ejemplo de flujo de trabajo básico, así que tenemos algo para hablar y desarrollar en el futuro.
  • **Abril de 2013:**Comparar y contrastar las secuencias de comandos y flujos de trabajo, con una lista completa de lo que será y no — trabajo en cada uno.
  • **2013 de mayo:**Cavar en las actividades de flujo de trabajo, incluyendo la importante actividad de JSON.
  • **2013 de junio:**Mirar los parámetros comunes y variables de tiempo de ejecución de flujos de trabajo y cómo utilizarlos en sus propios flujos de trabajo.
  • **Julio de 2013:**Aprende a añadir sus propios parámetros para un flujo de trabajo.
  • **Agosto de 2013:**Construcción tanto secuenciado y paralela de actividades dentro de un flujo de trabajo, y te voy a mostrar cómo mezclar y combinarlos.
  • **2013 de septiembre:**Mira cómo progreso de control de flujo de trabajo y cómo manualmente y mediante programación suspender y reanudar los flujos de trabajo.
  • **Octubre de 2013:**Tomar todo lo que has aprendido hasta ahora y crea un ejemplo de flujo de trabajo nuevo, a gran escala.
  • **Noviembre de 2013:**Poner alguna perspectiva en la conversación, mostrando algunas de las alternativas para flujos de trabajo para tareas específicas como la paralelización de tareas.
  • **De diciembre de 2013:**Mirar las otras maneras que usted puede utilizar e interactuar con el conjunto de características de flujo de trabajo.

Estoy mirando adelante a esta gira de un año de flujo de trabajo de Windows PowerShell. Espero que se me unirá a cada paso del camino.

Don Jones

Don Jones es un destinatario del premio MVP de Windows PowerShell y colabora como editor en TechNet Magazine. Ha sido coautor de cuatro libros sobre Windows PowerShell versión 3, incluyendo libre sobre la creación de informes HTML en Windows PowerShell y Windows PowerShell Remoting. Encontrarlos todos en PowerShellBooks.com, o usted puede hacer preguntas en los foros de discusión a Jones PowerShell.org.

Contenido relacionado