Windows PowerShell. Che cos'è il flusso di lavoro di Windows PowerShell?

L'utilizzo di un flusso di lavoro di Windows PowerShell può rivelarsi un processo complesso, ma in definitiva utile in termini di funzionalità fornite.

Nota: Ogni mese nel corso del 2013, Don Jones presenterà una rata di una serie di tutorial 12-parte sul Workflow di Windows PowerShell. Ti invitiamo a leggere la serie nell'ordine, cominciando con la colonna gennaio 2013 e procedere mese per mese.

Don Jones

Il flusso di lavoro di Windows PowerShell è una nuova funzionalità di Windows Management Framework versione 3.0. In senso lato, un flusso di lavoro è un tipo specializzato di script di Windows PowerShell. Esso delinea un insieme di attività, alcune delle quali hanno bisogno che si verifichi in una particolare sequenza, mentre altri possono essere eseguite in parallelo.

Windows PowerShell Workflow viene pre-installato su Windows Server 2012 e Windows 8. È anche disponibile per Windows 7, Windows Server 2008 e Windows Server 2008 R2. Avrete bisogno di uno di quei sistemi operativi per eseguire un flusso di lavoro. Tuttavia, un flusso di lavoro può avere come bersaglio — significato, eseguire operazioni contro — qualsiasi versione di Windows, a seconda del compito esatto che stai cercando di realizzare.

È scritto utilizzando la sintassi standard di Windows PowerShell più o meno. Ci sono, tuttavia, parecchie incompatibilità tra i flussi di lavoro e gli script di Windows PowerShell tradizionali. Windows PowerShell Workflow fa un uso pesante della funzionalità remota di Windows PowerShell. (Afferra il mio libero "Segreti di PowerShell Remoting" guida se avete bisogno di un Consiglio di primer o configurazione remota.)

Come funzionano i flussi di lavoro

Guardare sotto il cofano (che faremo più approfondita più tardi nel corso di questa serie), troverete un flusso di lavoro di Windows PowerShell non è stato effettivamente eseguito da Windows PowerShell. Invece, Windows PowerShell si traduce il tuo script in XAML e hands off per Windows Workflow Foundation (WWF), che è una parte del Microsoft .NET Framework. WWF accetta il codice XAML ed esegue effettivamente l'esecuzione.

Il fatto che il WWF esegue un flusso di lavoro e non di Windows PowerShell, introduce alcune funzionalità interessanti e più di qualche complessità. Ad esempio, il WWF è stato progettato per checkpoint il progresso di un flusso di lavoro. In questo modo, se la macchina che esegue il flusso di lavoro viene interrotto in qualche modo, ad esempio chiudendo, il flusso di lavoro può raccogliere dove era stato interrotto quando la macchina riparte.

Si può avere anche i flussi di lavoro sospesi e ripresi manualmente. Ad esempio, potrebbe avere un flusso di lavoro completo di un certo insieme di compiti, fino ad un punto quando l'intervento manuale è necessario. Allora si potrebbe desiderare di sospendere l'operazione e inviare automaticamente un messaggio di posta elettronica con un aggiornamento di stato. Dopo aver completato le operazioni manuali, si potrebbe riprendere il flusso di lavoro e lasciarlo continuare l'esecuzione.

I flussi di lavoro possono eseguire anche cose in parallelo, se ti piace. Ad esempio, se si dispone di un set di attività che possono essere eseguiti in qualsiasi ordine, con delle interdipendenze, quindi è possibile eseguire tutti allo stesso tempo più o meno. Che riduce la quantità di tempo totale che necessario per completare il flusso di lavoro, che migliora l'efficienza. WWF inoltre tiene traccia di ogni fase del flusso di lavoro. Questo significa che è possibile generare un registro di controllo dettagliato su quali compiti hanno completato, che è un grande aiuto con la risoluzione dei problemi.

I flussi di lavoro non può fare tutto quello che potrebbe fare uno script di Windows PowerShell. Come si imparerà durante questa serie, nulla che è impossibile tradurre in qualcosa che capisce WWF è fuori dai limiti. Ci sono sicuramente alcuni aspetti di Windows PowerShell che non trasferiscono. Così un flusso di lavoro non è un sottoinsieme di Windows PowerShell né un superset. È un set di croce, cioè i flussi di lavoro, aggiungere alcune funzionalità di Windows PowerShell, ma può anche togliere alcuni. Che è uno degli aspetti più complessi dei flussi di lavoro.

Non è l'unica risposta

Un flusso di lavoro non è la risposta definitiva per ogni attività. L'emozione intorno i flussi di lavoro deriva dal team di prodotto di Microsoft e numerosi appassionati indipendenti che possono dare l'impressione che si dovrebbe fare tutto come un flusso di lavoro. Resistere a quello stimolo, perché i flussi di lavoro hanno una curva di apprendimento superiore distintamente. Ma sono anche più difficile per la risoluzione dei problemi e debug e non sono sempre necessarie.

Ad esempio, se avete semplicemente bisogno di avere un compito eseguito contro una serie di computer in parallelo, plain old remota può raggiungere che per te. Si potrebbe anche usare un processo in background 2-stile versione Windows PowerShell (che ancora esiste in versione 3).

Se è necessario eseguire una sequenza di attività che si riavvia il computer di destinazione e aspettare che riprendere prima di continuare lo script, è possibile farlo con il nuovo comando Restart-Computer versione 3 (che presenta un - interruttore di attesa). Così mentre si può vedere i flussi di lavoro sono davvero potenti e hanno alcune funzionalità uniche, non necessariamente sono il modo più semplice per raggiungere ogni attività possibile.

Anatomia di un flusso di lavoro

Un flusso di lavoro, come una funzione o un cmdlet, è un tipo di comando di Windows PowerShell. Una volta che hai creato uno, è fondamentalmente solo eseguirlo come qualsiasi altro comando. Si potrebbe anche pianificarlo, o spingerlo a un computer remoto per eseguire ci. In fase di esecuzione, Windows PowerShell si traduce nella WWF e chiede il WWF per eseguire effettivamente il flusso di lavoro.

Come altri tipi di comandi, è possibile assegnare i parametri dei flussi di lavoro che consentono di personalizzare il loro comportamento in fase di esecuzione. Ci sono una varietà di parametri comuni disponibili per attivare automaticamente comportamenti specifici.

Si definisce un set di attività all'interno di un flusso di lavoro. È possibile impostare queste attività per l'esecuzione di una specifica sequenza o in parallelo con l'altro. Si può mescolare e abbinare sequenze e blocchi parallelizzate tanto quanto necessario. Il trucco è che ogni attività deve essere qualcosa di che WWF capisce. Questo è veramente dove inizia la complessità.

Il team di Windows PowerShell fornito WWF "versioni" della maggior parte dei principali cmdlet Windows PowerShell core. Questo significa che è possibile utilizzare tali cmdlet destra all'interno di un flusso di lavoro. Quando tradotto in WWF, tali cmdlet vengono sostituiti con i loro equivalenti WWF, così essi verrà eseguito come previsto.

In un mondo ideale, sarebbe venuto ogni cmdlet di Windows PowerShell con un equivalente WWF. Questo renderebbe i flussi di lavoro assomigliano molto gli script di Windows PowerShell familiari noi abbiamo scritto per anni. Tuttavia, non viviamo in un mondo perfetto. In realtà, la maggior parte dei cmdlet non venire con equivalenti di WWF. Questo è particolarmente vero con i cmdlet che dispongono di Server di Exchange, SharePoint e Windows Server 2012 (ad eccezione del nucleo i cmdlet di Windows PowerShell).

WWF nativamente non è possibile eseguire questi cmdlet. Devi avvolgerli all'interno qualcosa di che WWF capisce: un InlineScript. Questa attività speciale racconta essenzialmente WWF basta eseguire Windows PowerShell. Si nutre il contenuto dell'attività InlineScript alla shell.

Ogni InlineScript è un indipendente, autonomo ed entità disconnessa. InlineScripts non può condividere informazioni uno con l'altro, ad eccezione di persistenza dei dati da qualche parte (ad esempio in un database) che possono accedere tutti.

Questi fanno i flussi di lavoro di scrittura molto più complesso. Tuttavia, stanno andando ad essere la principale unità di esecuzione per il momento, perché la maggior parte dei cmdlet di Windows PowerShell non dispone ancora di versioni WWF.

Ecco qual è il futuro

I flussi di lavoro sono sicuramente emozionante. Quando viene utilizzato per il proprio compito, essi forniscono funzionalità incredibile. Essi sono infatti complessi. Dovrete investire qualche tempo per imparare a usarli. L'obiettivo nel 2013 è quello di presentare un pezzo importante di informazioni ogni mese:

  • **Febbraio 2013:**Coprire l'ambiente del flusso di lavoro, compresi i prerequisiti e configurazione remota.
  • **Marzo 2013:**Dare un esempio di flusso di lavoro base, quindi abbiamo qualcosa per parlare e costruire su andare avanti.
  • **Aprile 2013:**Confrontare e contrapporre gli script e i flussi di lavoro, con un elenco completo di ciò che — e non — in ogni lavoro.
  • **Maggio 2013:**Scavare le attività del flusso di lavoro, tra cui l'importante attività di InlineScript.
  • **Giugno 2013:**Guardate i comuni parametri e variabili di runtime di flussi di lavoro e come usarli nei propri flussi di lavoro.
  • **Luglio 2013:**Ulteriori informazioni su come aggiungere il vostro proprio parametri a un flusso di lavoro.
  • **Agosto 2013:**Costrutto sia sequenziato e parallelizzato attività all'interno di un flusso di lavoro, e ti mostrerò come mescolare e abbinarli.
  • **Settembre 2013:**Guardate come punto di arresto del flusso di lavoro progresso e come manualmente e a livello di codice sospendere e riprendere i flussi di lavoro.
  • **Ottobre 2013:**Prendete tutto quello che hai imparato finora e creare un esempio di flusso di lavoro nuovo, su vasta scala.
  • **Novembre 2013:**Mettere qualche prospettiva nella conversazione mostrando alcune delle alternative per i flussi di lavoro per compiti specifici come la parallelizzazione di compiti.
  • **Dicembre 2013:**Guarda gli altri modi è possibile utilizzare e interagire con il set di funzionalità del flusso di lavoro.

Sono impaziente di questo tour yearlong di Workflow di Windows PowerShell. Spero che ti unirai me ogni passo del cammino.

Don Jones

Don Jones è un destinatario Windows PowerShell MVP Award e un redattore di TechNet Magazine. Egli è co-autore di quattro libri su Windows PowerShell versione 3, compresi quelli gratuiti sulla creazione di report HTML in Windows PowerShell e Windows PowerShell Remoting. Trovarli tutti a PowerShellBooks.com, o potete fare delle domande per il forum di discussione a Jones PowerShell.org.

Contenuti correlati