Come impostare le variabili di ambiente utilizzando PowerShell

  1. Cosa Sono le Variabili di Ambiente
  2. Imposta una Variabile di Ambiente Con Env: in PowerShell
  3. Imposta la Classe [System.Environment] di .NET in PowerShell
  4. Aggiorna le Variabili di Ambiente nella Sessione Corrente di PowerShell
  5. Conclusione
Come impostare le variabili di ambiente utilizzando PowerShell

Utilizzare Windows PowerShell per impostare le variabili di ambiente di Windows, leggere le variabili di ambiente e creare nuove variabili di ambiente è facile una volta che conosciamo l’esecuzione corretta dei comandi.

PowerShell offre molti metodi diversi per interagire con le variabili di ambiente di Windows tramite il PSDrive $env: e la classe .NET [System.Environment]. Questo articolo tratterà l’impostazione delle variabili di ambiente e il loro aggiornamento nella nostra sessione corrente utilizzando PowerShell.

Cosa Sono le Variabili di Ambiente

Come suggerisce il nome, le variabili di ambiente memorizzano informazioni sugli ambienti di Windows e delle applicazioni.

Possiamo accedere alle variabili di ambiente tramite un’interfaccia grafica come Esplora file di Windows e editor di testo semplici come Notepad, cmd.exe e PowerShell.

Utilizzare le variabili di ambiente ci aiuta ad evitare di hard-codificare i percorsi dei file, i nomi degli utenti o dei computer e altro nei nostri script o moduli PowerShell.

Imposta una Variabile di Ambiente Con Env: in PowerShell

Possiamo creare nuove variabili di ambiente con PowerShell utilizzando il cmdlet New-Item. Ma, per prima cosa, fornire il nome della variabile di ambiente nel formato Env:\<EnvVarName> per il parametro Value, come mostrato di seguito.

Codice di Esempio:

New-Item -Path Env:\TEST -Value WIN10-DESKTOP

Utilizziamo il cmdlet PowerShell New-Item per creare o aggiornare una variabile di ambiente chiamata TEST all’interno dello spazio dei nomi Env:\. Specificando -Value WIN10-DESKTOP, assegniamo il valore WIN10-DESKTOP a questa variabile.

Questa azione influisce sulla sessione attuale di PowerShell, rendendo la variabile di ambiente TEST accessibile ad altri script e comandi all’interno della sessione.

Output:

aggiorna variabili di ambiente powershell - output 1

Possiamo usare il cmdlet Set-Item per impostare una variabile di ambiente o crearne una nuova se non esiste già. Ad esempio, possiamo vedere qui sotto utilizzando il cmdlet Set-Item.

Possiamo sia creare che modificare una variabile di ambiente.

Codice di Esempio:

Set-Item -Path Env:TEST -Value "TestValue"

Utilizziamo il cmdlet PowerShell Set-Item per modificare il valore di una variabile di ambiente esistente chiamata TEST all’interno dello spazio dei nomi Env:\. Specificando -Value "TestValue", assegniamo la stringa "TestValue" alla variabile di ambiente TEST.

Questa azione influisce direttamente sulla sessione attuale di PowerShell, aggiornando il valore di TEST per l’uso da parte di altri script e comandi all’interno della sessione.

Output:

powershell aggiorna le variabili di ambiente - output 2

Imposta la Classe [System.Environment] di .NET in PowerShell

La classe [System.Environment] utilizzerà alcuni metodi statici della classe .NET. Non abbiamo bisogno di capire cos’è un modo statico.

Dobbiamo solo capire come usare una delle tecniche che stiamo per apprendere, e dobbiamo prima fare riferimento alla classe ([System.Environment]) seguita da due punti (::) e poi dal metodo.

Per impostare la variabile di ambiente utilizzando la classe .NET indicata, utilizzare la funzione SetEnvironmentVariable() per impostare il valore di una variabile di ambiente esistente per l’ambito dato o creare una nuova variabile di ambiente se non esiste già.

Quando impostiamo variabili nell’ambito del processo, scopriremo che l’ambito del processo è volatile e esistente nella sessione corrente, mentre le modifiche agli ambiti utente e macchina sono permanenti.

Codice di Esempio:

[System.Environment]::SetEnvironmentVariable('TestVariable', 'TestValue', 'User')

Utilizziamo il metodo .NET [System.Environment]::SetEnvironmentVariable() per impostare una variabile di ambiente chiamata TestVariable con il valore 'TestValue' nell’ambiente specifico dell’utente. Specificando 'User' come terzo parametro, assicuriamo che questa variabile sia impostata nel contesto dell’ambiente dell’utente.

Questa azione influisce sulle impostazioni dell’ambiente per l’utente corrente, consentendo ad altri script e applicazioni di accedere a TestVariable con il suo valore assegnato.

Aggiorna le Variabili di Ambiente nella Sessione Corrente di PowerShell

Per utilizzare il nostro nuovo set di variabili di ambiente nella nostra sessione di PowerShell, otteniamo la variabile di ambiente del profilo utente e della macchina tramite la classe .NET e la assegnamo alla variabile di ambiente di PowerShell.

Poiché le variabili di ambiente sono anche considerate variabili di PowerShell, possiamo assegnare valori ad esse direttamente in modo più semplice.

Codice di Esempio:

$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")

Stiamo aggiornando la variabile di ambiente $env:PATH concatenando i valori delle variabili di ambiente Path di sistema e utente recuperati utilizzando [System.Environment]::GetEnvironmentVariable(). Prima recuperiamo la variabile Path di sistema utilizzando il parametro "Machine" e poi aggiungiamo la variabile Path dell’utente recuperata utilizzando il parametro "User".

Combinando questi valori con un separatore di punto e virgola, assicuriamo che entrambi i set di percorsi siano inclusi nell’aggiornato $env:PATH.

Output:

aggiorna le variabili di ambiente powershell - output 3

Conclusione

In questo articolo, abbiamo esplorato vari metodi per gestire le variabili di ambiente in PowerShell, concentrandoci sull’impostazione e sull’aggiornamento utilizzando diverse tecniche. Abbiamo iniziato dimostrando come creare o modificare variabili di ambiente utilizzando cmdlet di PowerShell come New-Item e Set-Item, fornendo esempi chiari e spiegazioni per ciascun passaggio.

Successivamente, ci siamo addentrati nell’uso della classe .NET [System.Environment] per manipolare variabili di ambiente. Attraverso il metodo SetEnvironmentVariable(), abbiamo imparato come impostare variabili con ambiti specifici, comprendendo le implicazioni di ogni ambito sulla persistenza delle variabili.

Infine, abbiamo trattato l’importanza di aggiornare le variabili di ambiente all’interno della sessione attuale di PowerShell, enfatizzando l’uso di [System.Environment]::GetEnvironmentVariable() per aggiornare le variabili in modo dinamico.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Articolo correlato - PowerShell Environment Variables