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)