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

Variabili

Le variabili consentono la definizione globale di variabili disponibili all'interno degli script. È inoltre possibile importare segreti che risultano disponibili anche negli script o come credenziali di esecuzione.

Le variabili sono archiviate nel file di configurazione variables.ps1.

Creazione di una variabile

Per creare una variabile, si porti alla pagina Piattaforma \ Variabili. Faccia clic su Crea variabile per definire una nuova variabile.

Finestra di dialogo Crea variabile

Le variabili verranno aggiunte agli script prima della loro esecuzione.

Creazione di una variabile segreta

Le variabili segrete sono archiviate nella cassaforte selezionata. Il valore di tali variabili non viene mai memorizzato in Universal. Per definire una nuova variabile segreta, faccia clic su Crea variabile segreta nella pagina delle variabili e selezioni la scheda Segreto.

Da questa finestra di dialogo potrà definire stringhe e PSCredentials nella cassaforte specificata.

Finestra di dialogo Variabile segreta

Formato delle credenziali

In alcuni ambienti può essere necessario specificare il nome di dominio nel campo del nome utente. È possibile specificarlo nel formato domain\user oppure user@domain. In caso contrario, riceverà errori quando tenterà di avviare processi, come script o dashboard, con quell'account utente.

Group Managed Service Accounts

Quando si utilizzano i Group Managed Service Accounts (GMSA), dovrà assicurarsi che la macchina e l'account abbiano accesso all'account GSMA. Può seguire la guida di Microsoft qui. Una volta completata la configurazione, crei una nuova credenziale nella gestione dei segreti di PowerShell Universal e selezioni l'opzione Password non richiesta. Inserisca l'account GSMA (ad esempio domain\user$). Purché l'account di hosting disponga dei privilegi appropriati, potrà eseguire i job con l'account GMSA.

Convalida delle credenziali

Su Windows è possibile convalidare le credenziali prima di salvarne il valore. Faccia clic sul pulsante Convalida nel campo della password per tentare l'accesso dell'utente in locale. Questo pulsante non compare sui sistemi non Windows.

Ruoli

Le variabili segrete possono includere l'accesso basato sui ruoli. I ruoli limitano chi può utilizzare il segreto nei propri script e come credenziali di esecuzione.

Quando per un segreto è definito un ruolo, esso non sarà accessibile nelle risorse che non possono fornire tale ruolo. Ciò può includere quanto segue:

  • Job pianificati

  • API o app non autenticate

  • Terminali

Casseforti

Database

La cassaforte del database archivia i segreti all'interno del database di PowerShell Universal. Questi segreti sono cifrati con crittografia AES utilizzando una chiave personalizzabile. È possibile personalizzare la chiave specificando Secrets \ Database \ EncryptionKey.

appsettings.json

Può configurare questa impostazione in appsettings.json.

Variabile di ambiente

Può configurare questa impostazione con una variabile di ambiente.

BuiltInLocalVault

I valori dei segreti con BuiltInLocalVault sono archiviati nell'istanza di Gestione credenziali di Windows dell'entità di sicurezza che esegue PSU. Ad esempio, l'account di servizio dell'utente che esegue il servizio Universal. Se cambia utente (ad esempio eseguendo il prodotto con un account di servizio), l'account non avrà accesso ai segreti dell'utente precedente e dovrà aggiungere nuovamente tali segreti.

PSUSecretStore

La cassaforte PSUSecretStore è integrata con il modulo Microsoft SecretStore per archiviare i segreti in un file multipiattaforma. Questo file è associato all'account utente corrente che esegue PowerShell Universal. La password della cassaforte è archiviata in appsettings.json.

Az.KeyVault

Valuti l'utilizzo della gestione dei segreti fuori processo quando utilizza la cassaforte Az.KeyVault, per evitare conflitti di assembly con PowerShell Universal stesso.

Per impostazione predefinita, non includiamo l'estensione Azure Key Vault direttamente in PowerShell Universal. È disponibile un container che include i moduli Az.Accounts e Az.KeyVault richiesti, per consentirle di utilizzare KeyVault immediatamente. Lo può trovare su Docker Hub.

Di seguito troverà come configurarlo. Questo esempio utilizza una versione web-app di PowerShell Universal ospitata in Azure.

In Azure sarà necessario configurare un'identità gestita per la nostra app web. Questo passaggio non è necessariamente richiesto se si esegue il prodotto al di fuori di Azure. Può abilitare l'identità gestita nella pagina Identità della sua app web.

Successivamente dovrà consentire alla sua identità gestita di accedere al key vault e di leggere la sottoscrizione. Può aggiungere l'identità gestita al gruppo integrato Reader per consentire l'accesso alla sottoscrizione.

Poi ho fornito tutti i privilegi per la gestione di segreti e chiavi alla mia identità gestita nella mia risorsa Key Vault.

Infine, dovremo registrare il key vault e connetterci ad Azure all'avvio dell'app web. Ciò può essere realizzato utilizzando i moduli Az.Account e Az.KeyVault.

Dopo aver distribuito la sua app web, dovrà innanzitutto installare i moduli Az.Account e Az.KeyVault. Può farlo nella pagina dei moduli. Verranno installati nel repository locale all'interno dell'app web.

Successivamente, crei uno script in PowerShell Universal per connettersi ad Azure e registrare la cassaforte. Esegua lo script per verificare che funzioni correttamente.

Ora, quando creerà dei segreti, vedrà AzureKeyVault disponibile.

Selettore della cassaforte delle variabili segrete

Per garantire che l'applicazione sia connessa ad Azure e che il key vault sia registrato, esegua lo script all'interno di vaults.ps1. Consigliamo di eseguire lo script in un processo PowerShell esterno per evitare conflitti di assembly con le DLL di PowerShell Universal.

Questo script viene eseguito prima che le variabili siano registrate e le casseforti individuate. Può creare questo file direttamente nella directory Repository\.universal. Verrà eseguito durante l'avvio del sistema, prima dell'esecuzione degli altri script di configurazione.

vaults.ps1

Il file vaults.ps1 contiene i comandi di registrazione delle casseforti. Sebbene l'esempio precedente definisca la registrazione di una cassaforte di segreti Azure KeyVault, in questo file può in realtà includere qualsiasi registrazione di cassaforte le occorra.

Può modificare le casseforti facendo clic su Piattaforma \ Variabili \ Casseforti e portandosi quindi alla scheda vaults.ps1.

Importazione di variabili segrete

È anche possibile importare in Universal segreti preesistenti come variabili. I valori delle variabili non vengono importati, ma verranno recuperati durante l'esecuzione. Faccia clic sul pulsante Importa segreto per importare i segreti.

Utilizzo delle variabili

Le variabili possono essere utilizzate in API, script e dashboard. Quando si utilizzano gli ambienti predefiniti, tutte le variabili vengono importate automaticamente. Ciò si ottiene specificando il parametro -Variable di New-PSUEnvironment con un carattere jolly (*). Se utilizza ambienti personalizzati, dovrà configurare quali variabili includere. Può fare riferimento a una variabile come a qualsiasi altra variabile PowerShell. La variabile conterrà il valore impostato. Se utilizza un segreto, conterrà il valore del segreto.

Può personalizzare quali variabili sono consentite in un ambiente personalizzando il parametro -Variable dell'ambiente.

Consulti Ambienti per maggiori informazioni.

Ambito Secret

Per accedere ai segreti aggiunti a PowerShell Universal, può utilizzare l'ambito $Secret. Ad esempio, se ha definito un segreto denominato Credential, potrebbe accedere a tale segreto ovunque con l'ambito secret. Non è possibile impostare i segreti utilizzando l'ambito secret.

Accedere alle variabili per nome

Può accedere alle variabili per nome utilizzando il prefisso $Secret:.

Accedere ai valori in modo dinamico

Può accedere all'ambito secret in modo dinamico utilizzando Get-Item. L'ambito secret è implementato come provider. Ciò è utile se non dispone di nomi di variabile statici.

ForEach-Object -Parallel

Per utilizzare i segreti quando si usa ForEach-Object con il parametro -Parallel, dovrà avvalersi della parola chiave $using.

Configurazione della password di PSUSecretStore

Per impostazione predefinita, la password della cassaforte PSUSecretStore è archiviata in appsettings.json in Secrets \ SecretStore \ Password.

Variabili integrate

Le seguenti variabili sono disponibili in tutti gli ambienti all'interno di PowerShell Universal.

Nome
Tipo
Descrizione

$PSUEnvironment

string

Il nome dell'ambiente in cui viene eseguito lo script (ad esempio Integrated)

$Repository

string

Il percorso assoluto della cartella del repository.

API

Esiste un insieme di variabili predefinite disponibili negli endpoint API. Potrà utilizzare queste variabili nei suoi script.

Variabile
Descrizione
Tipo

$Url

URL utilizzato dal client per chiamare l'endpoint

String

$Method

Il metodo HTTP utilizzato per chiamare l'endpoint

String

$Headers

Intestazioni fornite dal client per chiamare l'endpoint

Hashtable

$Body

La stringa con codifica UTF8 del contenuto della richiesta

String

$Data

Array di byte binari per il contenuto della richiesta

Byte[]

$RemoteIpAddress

L'indirizzo IP remoto utilizzato per effettuare la richiesta.

String

$LocalIpAddress

L'indirizzo IP locale utilizzato per servire la richiesta.

String

$RemotePort

La porta remota chiamata per effettuare la richiesta.

Integer

$LocalPort

La porta locale utilizzata per servire la richiesta.

Integer

$Identity

Il nome dell'identità dell'entità che accede all'API.

String

$UrlDefinition

La definizione dell'URL.

String

$ConnectionId

String

$SessionId

String

$RequestId

String

$ClaimsPrincipal

Il claims principal dell'utente corrente. Si tratta dello stesso oggetto fornito ai criteri di accesso basati sui ruoli.

ClaimPrincipal

App

Di seguito sono riportate le variabili disponibili nelle app oltre alle variabili globali.

Nome
Descrizione
Tipo

$User

Il nome utente dell'utente connesso. $Null se l'autenticazione è disabilitata.

String

$Roles

I ruoli concessi all'utente. $Null se l'autenticazione è disabilitata.

String[]

$RemoteIpAddress

L'indirizzo IP remoto dell'utente connesso.

String

$RemotePort

La porta remota dell'utente connesso.

Int

$ClaimsPrincipal

Il claims principal dell'utente corrente. Si tratta dello stesso oggetto fornito ai criteri di accesso basati sui ruoli.

ClaimPrincipal

$Headers

Le intestazioni fornite dal browser.

hashtable

$Cookies

I cookie della richiesta forniti dal browser.

hashtable

$PSUAppToken

Il token dell'app dell'utente corrente. Disponibile solo quando -GrantAppToken è abilitato.

string

$PSUComputerName

L'URL del server PSU. Disponibile solo quando -GrantAppToken è abilitato.

string

$DashboardName

Il nome dell'app corrente

string

$Query

I parametri della query string dall'URL dell'app

Hashtable

$RefreshToken

Il token di aggiornamento quando si utilizza OpenID Connect

string

$AccessToken

Il token dell'app quando si utilizza OpenID Connect

string

$UDPage

Il nome della pagina corrente.

string

Script

Esistono diverse variabili integrate che vengono definite quando viene eseguito un processo. È possibile utilizzare queste variabili negli script per recuperare informazioni sul processo corrente.

Nome
Descrizione

$UAJob

Il processo attualmente in esecuzione. Includerà proprietà come lo script, l'utente che ha avviato il processo e il momento in cui il processo è stato avviato.

$UAJobId

L'ID del processo in esecuzione.

$UAScript

Lo script in esecuzione. Includerà proprietà come il nome dello script e il percorso dello script.

$UAScriptId

L'ID dello script in esecuzione.

$UASchedule

La pianificazione utilizzata per avviare lo script.

$UAScheduleId

L'ID della pianificazione che ha avviato lo script.

$AccessToken

Quando si utilizza l'autenticazione OIDC, è possibile recuperare il token di accesso dell'utente corrente per accedere alle risorse per suo conto.

$Roles

I ruoli del chiamante dello script.

Struttura dell'oggetto $UAJob

Tenga presente che le proprietà possono essere null. Gli oggetti DateTime vengono restituiti nel fuso orario UTC.

Recupero dell'utente che ha avviato uno script

È possibile recuperare il nome dell'utente che ha avviato lo script utilizzando la variabile UAJob

Verifica se un processo è stato eseguito manualmente

È possibile verificare se un processo è stato eseguito manualmente utilizzando le proprietà Schedule e Trigger.

Variabili di preferenza

Le variabili di preferenza possono essere configurate su uno script, durante l'esecuzione di un processo e a livello globale. Queste includono:

  • DebugPreference

  • ErrorActionPreference

  • InformationPreference

  • ProgressPreference

  • VerbosePreference

  • WarningPreference

Le variabili di preferenza hanno una precedenza. L'elenco seguente è ordinato per precedenza. Ad esempio, se uno script imposta manualmente la variabile $DebugPreference, questa sovrascriverà il valore impostato nella finestra di dialogo delle proprietà dello script.

  • Script

  • Finestra di dialogo Run oppure Invoke-PSUScript

  • Proprietà dello script

  • Impostazioni globali

API

Vedi anche

Ultimo aggiornamento

È stato utile?