PowerShell
Flussi di lavoro di PowerShell
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.