Ricerca…


introduzione

PowerShell Workflow è una funzionalità introdotta a partire da PowerShell versione 3.0. Le definizioni del flusso di lavoro sono molto simili alle definizioni delle funzioni di PowerShell, tuttavia vengono eseguite all'interno dell'ambiente Windows Workflow Foundation, anziché direttamente nel motore PowerShell.

Diverse caratteristiche uniche "out of box" sono incluse nel motore del flusso di lavoro, in particolare la persistenza del lavoro.

Osservazioni

La funzionalità del flusso di lavoro PowerShell è supportata esclusivamente sulla piattaforma Microsoft Windows, in PowerShell Desktop Edition. PowerShell Core Edition, che è supportato su Linux, Mac e Windows, non supporta la funzione Flusso di lavoro di PowerShell.

Quando si crea un flusso di lavoro di PowerShell, tenere presente che i flussi di lavoro chiamano le attività, non i cmdlet. È ancora possibile chiamare i cmdlet da un flusso di lavoro di PowerShell, ma il InlineScript Workflow avvolgerà implicitamente la chiamata del cmdlet in un'attività InlineScript . Puoi anche includere esplicitamente il codice all'interno dell'attività InlineScript , che esegue il codice PowerShell; per impostazione predefinita, l'attività InlineScript viene eseguita in un processo separato e restituisce il risultato al Flusso di lavoro chiamante.

Esempio di flusso di lavoro semplice

workflow DoSomeWork {
  Get-Process -Name notepad | Stop-Process 
}

Questo è un esempio di base di una definizione del flusso di lavoro di PowerShell.

Flusso di lavoro con parametri di input

Proprio come le funzioni di PowerShell, i flussi di lavoro possono accettare parametri di input. I parametri di input possono essere associati a un tipo di dati specifico, come una stringa, un numero intero, ecc. Utilizzare la parola chiave param standard per definire un blocco di parametri di input, direttamente dopo la dichiarazione del flusso di lavoro.

workflow DoSomeWork {
  param (
    [string[]] $ComputerName
  )
  Get-Process -ComputerName $ComputerName
}

DoSomeWork -ComputerName server01, server02, server03

Esegui il flusso di lavoro come lavoro in background

I flussi di lavoro di PowerShell sono intrinsecamente equipaggiati con la possibilità di essere eseguiti come lavoro in background. Per chiamare un flusso di lavoro come lavoro in background di PowerShell, utilizzare il parametro -AsJob durante il -AsJob del flusso di lavoro.

workflow DoSomeWork {
  Get-Process -ComputerName server01
  Get-Process -ComputerName server02
  Get-Process -ComputerName server03
}

DoSomeWork -AsJob

Aggiungi un blocco parallelo a un flusso di lavoro

workflow DoSomeWork {
  parallel {
    Get-Process -ComputerName server01
    Get-Process -ComputerName server02
    Get-Process -ComputerName server03
  }
}

Una delle caratteristiche uniche di PowerShell Workflow è la capacità di definire un blocco di attività come parallelo. Per utilizzare questa funzione, utilizzare la parola chiave parallel all'interno del flusso di lavoro.

Chiamare le attività del flusso di lavoro in parallelo può aiutare a migliorare le prestazioni del tuo flusso di lavoro.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow