Script
Può creare script PowerShell all'interno di PowerShell Universal da eseguire manualmente, in base a una pianificazione o quando si verificano eventi all'interno della piattaforma. Vengono archiviati su disco e resi persistenti in un repository Git locale o remoto.
Aggiungere un nuovo script
Per aggiungere un nuovo script, clicchi sul pulsante New Script nella pagina Automation / Scripts. Sono disponibili varie impostazioni che può fornire per lo script.

Opzioni dello script
Name
È il nome dello script così come viene mostrato in Universal Automation. È anche il nome utilizzato per rendere persistente lo script su disco. Il nome deve essere univoco all'interno della cartella corrente.
Modulo e comando
Veda Moduli e comandi di seguito.
Description
Questa descrizione dello script viene mostrata in vari punti dell'interfaccia utente di UA e viene restituita dai cmdlet Universal.
Disable Manual Invocation
Impedisce l'esecuzione manuale di uno script. Viene applicato sia nell'interfaccia utente sia nel server web e nei cmdlet.
Max Job History
La cronologia massima dei processi definisce la quantità di processi archiviati durante l'esecuzione di questo script. Il valore predefinito è 100. I processi vengono inoltre eliminati in base all'impostazione della durata di conservazione dei processi valida per tutto il server, disponibile nella pagina Settings / General.
Error Action
L'azione di errore modifica il comportamento dello script quando si verifica un errore. Per impostazione predefinita, gli errori di tipo terminating e non-terminating vengono ignorati e lo script ha sempre esito positivo. Può modificare questa impostazione su stop per fare in modo che gli script abbiano esito negativo immediatamente quando viene rilevato un errore.
Se desidera scrivere gli errori direttamente nel riquadro degli errori senza modificare la gestione dello script (ad esempio in un gestore di eccezioni), utilizzi Write-PSUError per restituire il record di errore, che apparirà nella scheda degli errori del processo.
Environment
Consente di definire l'ambiente PowerShell richiesto per lo script. Per impostazione predefinita, utilizza l'ambiente PowerShell predefinito valido per tutto il server. Gli ambienti PowerShell vengono individuati automaticamente al primo avvio del Universal Server oppure letti dal file environments.ps1. Può anche aggiungere un ambiente nella pagina Settings / Environments.
Timeout
Il numero di minuti prima che lo script vada in timeout. Il valore predefinito 0 significa che lo script verrà eseguito indefinitamente. Quando uno script raggiunge il proprio timeout, viene annullato.
Discard Pipeline
Se selezionata, questa opzione disabilita l'archiviazione dell'output della pipeline. Ciò riduce notevolmente il sovraccarico di CPU e di archiviazione dei processi, ma lo script continua a scrivere nei flussi di informazioni, avvisi ed errori.
Concurrent Jobs
Definisce il numero massimo di processi simultanei con cui lo script può essere eseguito. Il valore predefinito è 100.
Ruoli di esecuzione
Utilizzando la proprietà Execution Roles, può impostare quali ruoli vengono assegnati durante l'esecuzione dello script. Per impostazione predefinita, lo script viene eseguito in base ai ruoli del chiamante. In alcuni scenari, ad esempio quando si utilizzano i Secret con i ruoli, potrebbe voler fornire ruoli aggiuntivi che il chiamante potrebbe non possedere. Quando si eseguono script in una pianificazione, questi non avranno alcun ruolo, quindi fornirli tramite Execution Roles consentirà di utilizzare variabili Secret con ruoli nello script pianificato.
Esecuzione di uno script
Può eseguire uno script nell'interfaccia utente dalla pagina Automation / Scripts cliccando su Run oppure cliccando su View e quindi su Run. In ciascun caso viene visualizzata la finestra di dialogo Run, che le consente di selezionare varie impostazioni per il processo.

Esecuzione di uno script con parametri
PowerShell Universal determina automaticamente i parametri definiti negli script. Sfrutta l'analisi statica del codice per determinare il tipo, i valori predefiniti e alcune convalide che vengono quindi presentate nell'interfaccia utente.
Ad esempio, potrebbe avere uno script con i seguenti parametri:
Il risultato è un insieme di opzioni di input basate sui tipi di parametri.

Esecuzione di uno script come un altro utente
Può eseguire script come un altro utente configurando le variabili secret. PowerShell Universal utilizza il modulo Microsoft Secret Management per l'integrazione con i provider di secret. Veda le variabili per maggiori informazioni sui secret.
Crei una nuova variabile secret PSCredential.
Clicchi su Platform \ Variables e quindi su Create Secret. Selezioni il tipo di variabile PSCredential. Inserisca il nome utente e la password. Si assicuri che il valore Disable Run As Support non sia selezionato.

Esegua lo script e selezioni la credenziale
Torni ad Automation \ Scripts e clicchi sul pulsante Run Script. Selezioni un ambiente diverso dall'ambiente Integrated. Per impostazione predefinita sarà PowerShell 7 oppure Windows PowerShell 5.1.
Le verrà ora richiesto tramite il menu a discesa Run As di selezionare la credenziale. Da lì può selezionare la credenziale all'interno della finestra di dialogo di esecuzione.

Esecuzione di uno script su un altro computer
Può utilizzare il menu a discesa Computer per selezionare altre macchine su cui eseguire uno script. Il valore predefinito prevede l'esecuzione su qualsiasi computer disponibile.
Esecuzione di uno script su tutti i computer
Può eseguire uno script su tutti i computer selezionando l'opzione All Computers dal menu a discesa Computer.
Esecuzione di uno script da un'app con output
Se desidera eseguire uno script da un'app e visualizzarne l'output durante l'esecuzione, utilizzi il seguente esempio. Sfrutta Invoke-PSUScript e Get-PSUJobOutput.
Bilanciamento del carico
PowerShell Universal utilizza un algoritmo di bilanciamento del carico basato sul server meno occupato. Se più di un server è una destinazione valida per un processo, PowerShell Universal selezionerà il server con il minor numero di processi in esecuzione.
Remoting
Può utilizzare il remoting di PowerShell sfruttando Invoke-Command. PowerShell Universal non supporta l'uso di Enter-PSSession o Import-PSSession.
Guida basata sui commenti
Può utilizzare la guida basata sui commenti per definire la descrizione, una sinossi, la guida basata sui parametri e i collegamenti per i suoi script. Questi elementi verranno visualizzati nell'interfaccia utente di PowerShell Universal.
Quanto sopra produce la seguente interfaccia utente. La sinossi viene visualizzata come descrizione breve e una descrizione più lunga viene visualizzata nella sezione della descrizione. I collegamenti appaiono sotto la descrizione.

Moduli e comandi
I comandi e i cmdlet presenti nei moduli possono essere utilizzati come destinazione degli script anziché scrivere direttamente lo script.
Supponiamo di avere un modulo denominato PSUModule che contiene la seguente funzione.
È possibile esporre questa funzione come script utilizzando la seguente sintassi in scripts.ps1.
La funzione appare esattamente come gli altri script all'interno della console di amministrazione. Parametri, testo della guida e altre funzionalità di PSU funzionano allo stesso modo degli script.
Statistiche
Utilizzando la cronologia dei processi di uno script, PowerShell Universal fornisce statistiche di base sull'esecuzione dello script. Queste includono il tasso di successo, il tempo medio di esecuzione e la suddivisione per ambiente, utente e computer di esecuzione.

Supporto di Start-Job
Sebbene sia possibile avviare processi utilizzando Invoke-PSUScript, potrebbe essere preferibile avviare un processo con il cmdlet Start-Job di PowerShell. L'uso di Start-Job non registra il processo in PowerShell Universal e le informazioni di esecuzione non saranno presenti nella tabella dei processi.
Gli ambienti Integrated, PowerShell 7 e Windows PowerShell 5.1 non sono compatibili con Start-Job perché sono host PowerShell personalizzati. Per utilizzare Start-Job dovrà configurare un ambiente PowerShell personalizzato. Clicchi su Settings \ Environments. Successivamente, clicchi su Create New Environment. Assegni un nome all'ambiente, selezioni il tipo di ambiente Custom e specifichi pwsh.exe come percorso dell'eseguibile.
Ora potrà utilizzare questo ambiente per eseguire il cmdlet Start-Job.
API
Ultimo aggiornamento
È stato utile?