For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ambienti

Gli ambienti le permettono di definire un eseguibile, argomenti, moduli e variabili da utilizzare durante l'esecuzione di script, l'hosting di API e dashboard.

Gli ambienti sono archiviati nel file environments.ps1.

Configurazione degli ambienti

Per configurare gli ambienti, può utilizzare la pagina Impostazioni \ Ambienti.

Pagina Ambienti

Gli ambienti supportano l'impostazione di nome, percorso, argomenti, moduli e variabili.

Finestra di dialogo delle impostazioni dell'ambiente

Nome

Il nome dell'ambiente. Questo nome verrà mostrato nel resto della piattaforma durante l'esecuzione degli script, la configurazione dell'ambiente host dell'API e l'hosting delle dashboard.

Percorso e argomenti

Gli ambienti supportano la definizione di un percorso verso un eseguibile e degli argomenti per tale eseguibile. Questi devono essere PowerShell.exe oppure Pwsh.exe.

Può anche definire moduli e variabili.

Moduli

L'elenco dei moduli le permette di definire zero o più moduli da caricare nei runspace PowerShell dell'ambiente. Questi moduli faranno parte dello stato iniziale della sessione, pertanto non sarà necessario caricarli manualmente. Gli elementi aggiunti a questo elenco possono essere nomi di moduli o percorsi completi ai file dei moduli.

Variabili

L'elenco delle variabili le permette di definire zero o più variabili da caricare nei runspace PowerShell dell'ambiente. Questo elenco può essere composto da nomi di variabili provenienti dalla configurazione delle variabili.

Può anche utilizzare i caratteri jolly (*) per includere più variabili che corrispondono a un modello.

PSModulePath

Può utilizzare il parametro -PSModulePath di New-PSUEnvironment per configurare ulteriori PSModulePath da includere nell'ambiente.

Script di avvio

Gli script di avvio vengono eseguiti una volta quando l'ambiente crea il primo runspace. Per le API, questo avviene ogni volta che viene creato un runspace per servire una richiesta HTTP. Ciò può accadere frequentemente se il server è occupato. Per le app (precedentemente note come dashboard), questo avverrà ogni volta che viene creato un runspace per servire un endpoint eseguito mentre l'utente visualizza un'app (dashboard). I server occupati e le app con molti componenti dinamici lo faranno più frequentemente. Per i job, questo avverrà una volta all'avvio del job.

Gli script di avvio sono relativi alla cartella Repository. Ad esempio, se avesse uno script nella sua cartella repository denominato startup.ps1, dovrebbe indicare solo il nome del file nella configurazione. Se avesse uno script in una directory, dovrebbe includere anche quella.

Le variabili della piattaforma non sono disponibili negli script di avvio.

Utilizzo degli ambienti

Gli ambienti possono essere utilizzati in tutta la piattaforma.

API

Per selezionare l'ambiente da utilizzare, modifichi il file settings.ps1 e includa il parametro -ApiEnvironment di Set-PSUSetting. Deve corrispondere al nome dell'ambiente.

Automazione

Ogni script, job e pianificazione può utilizzare un ambiente. Può definire gli ambienti per gli script modificando scripts.ps1 e impostando il parametro -Environment di New-PSUScript. Per impostare l'ambiente di una pianificazione, imposti il parametro -Environment di New-PSUSchedule in schedules.ps1. Quando richiama uno script, può anche scegliere un ambiente da utilizzare.

App (dashboard)

Per utilizzare un ambiente specifico per un'app (dashboard), imposti il parametro -Environment di New-PSUApp in dashboards.ps1.

Sicurezza

Per impostazione predefinita, l'autenticazione e l'autorizzazione avvengono all'interno del processo Universal.Server.exe. Per eseguirle da un processo diverso, può selezionare un ambiente impostando il parametro -SecurityEnvironment di Set-PSUSetting in settings.ps1. Consulti Security per maggiori informazioni al riguardo.

Ambiente integrato

L'ambiente integrato utilizza direttamente il processo del server PowerShell Universal anziché avviare processi PowerShell esterni per servire le richieste.

L'ambiente integrato è più semplice da configurare e utilizzare rispetto ad avere più ambienti separati. Noterà anche un miglioramento delle prestazioni, poiché non è necessario serializzare e comunicare tramite comunicazione tra processi.

Lo svantaggio è che non può elevare i privilegi a credenziali alternative né utilizzare versioni alternative di PowerShell. Utilizzerà la versione corrente dell'SDK PowerShell del server PowerShell Universal. Inoltre, poiché tutti gli script PowerShell vengono eseguiti all'interno del servizio, i suoi script PowerShell possono influire sulla stabilità della piattaforma.

Legga Best practice per maggiori informazioni.

Configurazione

L'ambiente integrato è sempre disponibile e non è necessario configurarlo direttamente. Se desidera importare moduli o impostare runspace persistenti, può definire le impostazioni per l'ambiente integrato in environments.ps1.

API

Per impostare l'ambiente integrato, può utilizzare Set-PSUSetting in settings.ps1.

Automazione

Può assegnare l'ambiente integrato a script e pianificazioni. Può anche impostare l'ambiente integrato come ambiente predefinito per la piattaforma.

Può anche scegliere l'ambiente integrato dalla finestra di dialogo di esecuzione.

App

Può eseguire le app nell'ambiente integrato. Selezioni l'ambiente integrato dall'elenco a discesa degli ambienti.

PowerShell 7

L'ambiente PowerShell 7 utilizza un processo di hosting incorporato per l'SDK PowerShell incluso in PowerShell Universal. Questo è l'ambiente consigliato in quanto offre la massima compatibilità con i moduli di terze parti.

L'ambiente PowerShell 7 non supporta l'utilizzo degli assembly System.Windows.Forms. Se questi assembly sono necessari per script o moduli, utilizzi un ambiente personalizzato che punta a pwsh.exe.

Windows PowerShell 5.1

L'ambiente Windows PowerShell 5.1 utilizza un processo di hosting incorporato per il runtime PowerShell presente sulla macchina corrente. Questo è l'unico ambiente disponibile per l'esecuzione di script Windows PowerShell.

Ambienti minimi

Gli ambienti minimi consentono di eseguire script in applicazioni da riga di comando che non si integrano con l'ambiente di hosting di PowerShell Universal. PowerShell Universal cattura STDOUT e STDERR e li visualizza nel registro del job. Alcuni casi d'uso per gli ambienti minimi includono:

  • Script Python

  • Script PowerShell con moduli problematici

Gli ambienti minimi non supportano quanto segue:

  • Feedback

  • Avanzamento

  • Segreti

  • Cmdlet integrati di Universal

Gli ambienti minimi riceveranno i valori delle variabili come variabili di ambiente. Quando definisce un ambiente minimo, può utilizzare la stringa di sostituzione {scriptPath} per impostare gli argomenti dell'ambiente e definire il percorso corretto durante l'esecuzione dello script.

Ad esempio, quanto segue crea un ambiente PowerShell 7 che non carica le librerie di hosting di PowerShell Universal.

Per creare un ambiente Python, potrebbe procedere come segue.

Compatibilità con Windows PowerShell

La compatibilità con Windows PowerShell è una funzionalità di PowerShell 7. Quando comandi e moduli non sono disponibili in PowerShell 7, la piattaforma avvia automaticamente un processo Windows PowerShell in background ed esegue il remoting locale dal processo PowerShell 7. In questo modo si ottiene la compatibilità con i moduli Windows PowerShell.

Potrebbe visualizzare un avviso nella pagina degli ambienti quando questa funzionalità di PowerShell è abilitata, a causa delle implicazioni sulla piattaforma PowerShell Universal.

Problemi con la compatibilità WinPS in PowerShell Universal

Per ogni runspace aperto da PowerShell Universal in cui viene utilizzata la compatibilità con Windows PowerShell, verrà avviato un nuovo processo Windows PowerShell. Questi processi si arresteranno solo quando il runspace verrà riciclato.

Ciò riduce notevolmente le prestazioni a causa del numero eccessivo di processi in esecuzione e dell'utilizzo di memoria e CPU dovuto alla serializzazione e alla gestione dei runspace remoti.

La causa più comune di ciò è l'utilizzo del modulo Active Directory 1.0.0.0 da PowerShell 7.

Disabilitare la compatibilità implicita con Windows PowerShell

Può disabilitare la compatibilità con Windows PowerShell tramite le impostazioni all'interno delle proprietà dell'ambiente.

La compatibilità con Windows PowerShell è disabilitata per impostazione predefinita nell'ambiente Integrated e non può essere abilitata.

Utilizzare correttamente la compatibilità con Windows PowerShell

Se necessario, può rimuovere il runspace di compatibilità Windows dopo aver eseguito un comando che utilizza questa funzionalità. Ciò rimuoverà il processo Windows PowerShell. Ogni volta che questo endpoint viene eseguito, sarà necessario ristabilire la sessione.

Può ottenere maggiori informazioni sulla compatibilità con Windows PowerShell qui.

API

Ultimo aggiornamento

È stato utile?