ARGOMENTO
about_Environment_Variables
DESCRIZIONE BREVE
Descrive come accedere alle variabili di ambiente di Windows in
Windows PowerShell.
DESCRIZIONE DETTAGLIATA
Nelle variabili di ambiente vengono archiviate informazioni
sull'ambiente del sistema operativo. Queste informazioni
includono elementi come il percorso del sistema operativo, il
numero di processori utilizzati dal sistema operativo e il
percorso delle cartelle temporanee.
Nelle variabili di ambiente vengono archiviati i dati utilizzati
dal sistema operativo e da altri programmi. La variabile di
ambiente WINDIR, ad esempio, contiene il percorso della directory
di installazione di Windows. I programmi possono eseguire una
query relativa al valore di questa variabile per determinare il
percorso dei file del sistema operativo Windows.
Windows PowerShell consente di visualizzare e modificare le
variabili di ambiente di Windows, incluse le variabili impostate
nel Registro di sistema e quelle impostate per una determinata
sessione. Il provider di ambiente di Windows PowerShell
semplifica questo processo rendendo semplice la visualizzazione e
la modifica delle variabili di ambiente.
A differenza di altri tipi di variabili in Windows PowerShell, le
variabili di ambiente e i relativi valori vengono ereditati dai
sessioni figlio, ad esempio i processi in background locali e le
sessioni in cui vengono eseguiti i membri di modulo. Ciò rende le
variabili di ambiente particolarmente indicate per l'archiviazione
di valori necessari nelle sessioni padre e figlio.
Provider di ambiente di Windows PowerShell
Il provider di ambiente di Windows PowerShell consente di
accedere alle variabili di ambiente di Windows in Windows
PowerShell in un'unità di Windows PowerShell (l'unità Env:).
Questa unità è molto simile a un'unità del file system. Per
passare all'unità Env:, digitare:
set-location env:
Quindi, per visualizzare il contenuto dell'unità Env:, digitare:
get-childitem
È possibile visualizzare le variabili di ambiente nell'unità
Env: da qualsiasi altra unità di Windows PowerShell ed è
possibile passare all'unità Env: per visualizzare e modificare
le variabili di ambiente.
Oggetti variabile di ambiente
In Windows PowerShell ogni variabile di ambiente è
rappresentata da un oggetto che costituisce un'istanza della classe
System.Collections.DictionaryEntry.
In ciascun oggetto DictionaryEntry, il nome della variabile di
ambiente corrisponde alla chiave di dizionario. Il valore della
variabile corrisponde al valore di dizionario.
Per visualizzare una variabile di ambiente in Windows
PowerShell, ottenere un oggetto che rappresenta la variabile,
quindi visualizzare i valori delle proprietà dell'oggetto.
Quando si modifica una variabile di ambiente in Windows
PowerShell, utilizzare i metodi associati all'oggetto
DictionaryEntry.
Per visualizzare le proprietà e i metodi dell'oggetto che
rappresenta una variabile di ambiente in Windows PowerShell,
utilizzare il cmdlet Get-Member.
Per visualizzare, ad esempio, i metodi e le proprietà di tutti
gli oggetti nell'unità Env:, digitare:
get-item -path env:* | get-member
Visualizzazione delle variabili di ambiente
È possibile utilizzare i cmdlet che contengono il nome Item
(cmdlet Item) per visualizzare e modificare i valori delle
variabili di ambiente. Poiché le variabili di ambiente non
contengono elementi figlio, l'output di Get-Item è lo stesso di
quello di Get-ChildItem.
Quando si fa riferimento a una variabile di ambiente, digitare
il nome dell'unità Env: seguito dal nome della variabile. Per
visualizzare, ad esempio, il valore della variabile di ambiente
COMPUTERNAME, digitare:
get-childitem env:computername
Per visualizzare i valori di tutte le variabili di ambiente,
digitare:
get-childitem env:
Per impostazione predefinita, in Windows PowerShell le
variabili di ambiente vengono visualizzate nell'ordine in cui
vengono recuperate. Per ordinare l'elenco in base al nome delle
variabili, reindirizzare l'output di un comando Get-ChildItem
al cmdlet Sort-Object. Da qualsiasi unità di Windows PowerShell
digitare ad esempio:
get-childitem env: | sort name
È inoltre possibile passare all'unità Env: tramite il cmdlet
Set-Location:
set-location env:
Quando ci si trova nell'unità Env:, è possibile omettere il
nome di tale unità dal percorso. Per visualizzare, ad esempio,
tutte le variabili di ambiente, digitare:
get-childitem
Per visualizzare il valore della variabile COMPUTERNAME
dall'unità Env:, digitare:
get-childitem computername
È inoltre possibile visualizzare e modificare i valori delle
variabili di ambiente senza utilizzare un cmdlet tramite il
parser di espressioni di Windows PowerShell. Per visualizzare
il valore di una variabile di ambiente, utilizzare la sintassi
seguente:
$env:<nome-variabile>
Per visualizzare, ad esempio, il valore della variabile di
ambiente WINDIR, al prompt dei comandi di Windows PowerShell
digitare il comando seguente:
$env:windir
In questa sintassi il segno di dollaro ($) indica una
variabile, mentre il nome dell'unità indica una variabile di
ambiente.
Modifica delle variabili di ambiente
Per apportare una modifica permanente a una variabile di
ambiente, utilizzare Sistema nel Pannello di controllo (la
scheda Avanzate o l'elemento Impostazioni di sistema avanzate)
per salvare la modifica nel Registro di sistema.
Le modifiche apportate alle variabili di ambiente in Windows
PowerShell hanno effetto solo nella sessione corrente. Questo
comportamento è analogo a quello del comando Set in ambienti
basati su Windows e a quello del comando Setenv in ambienti
basati su UNIX.
È necessario disporre delle autorizzazioni per la modifica dei
valori delle variabili. Se si tenta di modificare un valore
senza disporre di autorizzazioni sufficienti, il comando ha
esito negativo e in Windows PowerShell viene visualizzato un errore.
È possibile modificare i valori delle variabili senza
utilizzare un cmdlet tramite la sintassi seguente:
$env:<nome-variabile> = "<nuovo-valore>"
Per aggiungere, ad esempio, ";c:\tesp" al valore della
variabile di ambiente Path, utilizzare la sintassi seguente:
$env:path = $env:path + ";c:\temp"
È inoltre possibile utilizzare i cmdlet Item, ad esempio
Set-Item, Remove-Item e Copy-Item per modificare i valori delle
variabili di ambiente. Ad esempio, per utilizzare il cmdlet
Set-Item per aggiungere ";c:\tesp" al valore della variabile di
ambiente Path, utilizzare la sintassi seguente:
set-item -path env:path -value ($env:path + ";c:\temp")
In questo comando il valore è racchiuso tra parentesi affinché
venga interpretato come elemento unico.
Salvataggio delle modifiche apportate alle variabili di ambiente
Per creare o modificare il valore di una variabile di ambiente
in ogni sessione di Windows PowerShell, aggiungere la modifica
al profilo di Windows PowerShell.
Per aggiungere, ad esempio, la directory C:\Temp alla variabile
di ambiente Path in ogni sessione di Windows PowerShell,
aggiungere il comando seguente al profilo di Windows PowerShell.
$env:path = $env:path + ";c:\temp"
Per aggiungere il comando a un profilo esistente, ad esempio il
profilo CurrentUser,AllHosts, digitare:
add-content -path $profile.CurrentUserAllHosts -value '$env:path =
$env:path + ";c:\temp"'
Variabili di ambiente in cui sono archiviate le preferenze
Le funzionalità di Windows PowerShell possono utilizzare le
variabili di ambiente per archiviare le preferenze dell'utente.
Queste variabili funzionano in modo analogo alle variabili di
preferenza, ma vengono ereditate dalle sessioni figlio delle
sessioni in cui vengono create. Per ulteriori informazioni
sulle variabili di preferenza, vedere about_preference_variables.
Variabili di ambiente in cui sono archiviate le preferenze
includono:
PSModulePath
Archivia i percorsi delle directory dei moduli
predefinite. Windows PowerShell cerca i moduli nelle
directory specificate quando non si specifica il percorso
completo di un modulo.
Il valore predefinito di $env:PSModulePath è:
$home\Documents\WindowsPowerShell\Modules;
$pshome\Modules
Windows PowerShell imposta il valore di "$pshome\Modules"
nel Registro di sistema.
Il valore di "$home\Documents\WindowsPowerShell\Modules"
viene impostato ogni volta che si avvia Windows PowerShell.
Inoltre, i programmi di installazione che installano
moduli in altre directory, ad esempio nella directory
Programmi, aggiungono i relativi percorsi al valore di
PSModulePath.
Per modificare le directory dei moduli predefinite,
modificare il valore della variabile di ambiente PSModulePath.
Per aggiungere, ad esempio, la directory "C:\ps-test\Modul
es" al valore della variabile di ambiente PSModulePath,
digitare:
$env:PSModulePath = $env:PSModulePath +
";c:\ps-test\Modules"
Il punto e virgola (;) nel comando separa il nuovo
percorso dal percorso che lo precede nell'elenco.
Le modifiche influiscono solo sulla sessione corrente a
meno che non si sia aggiunto un comando che modifichi il
valore al profilo o non si utilizzi Sistema nel Pannello
di controllo per modificare il valore della variabile di
ambiente PSModulePath nel Registro di sistema.
Per ulteriori informazioni, vedere about_Modules.
VEDERE ANCHE
Environment (provider)