it-swarm.it

Come posso modificare la variabile d'ambiente PATH di un utente senza disconnettersi?

La domanda praticamente dice tutto; Ho utenti che non dispongono dell'autorizzazione per modificare la propria variabile d'ambiente PATH e se hanno bisogno di modificarla per qualche motivo, devono disconnettersi in modo che un amministratore possa accedere e cambiare PATH per loro, prima che l'utente acceda nuovamente. Questo non è l'ideale. Può essere fatto in un modo migliore?

24
ninesided

Puoi sempre invocare una shell cmd con diritti di amministratore (o qualsiasi altro metodo runas) e utilizzare uno strumento come SETX per modificare il percorso in modo permanente. Le shell esistenti e/o i programmi in esecuzione utilizzeranno probabilmente il vecchio percorso, ma qualsiasi nuovo Shell/programma utilizzerà le nuove impostazioni.

6
Berzemus

Per account senza privilegi di amministratore:

Apri "Account utente" e scegli "Cambia le mie variabili d'ambiente" ( http://support.Microsoft.com/kb/931715 ).

Questa finestra di dialogo mostrerà le variabili dell'utente corrente e le variabili di sistema. Potrebbe essere necessario aggiungere una variabile PATH locale se non l'hai già fatto.

Per aggiornare il tuo percorso in modo da includere la directory Python 3.3, ad esempio, fai clic su Nuovo:

Nome variabile: PATH Valore variabile:% PATH%; C:\Python33

Questo crea un PERCORSO locale prendendo il PERCORSO di sistema corrente e aggiungendolo ad esso.

25
Curtis Nelson

Risorse del computer/Proprietà/Avanzate/Ambiente. Le modifiche lì hanno effetto immediato tranne per il prompt dei comandi già aperto. Non è necessario disconnettersi e riconnettersi.

NOTA: Se non hai accesso a quella finestra, potresti essere in grado di farlo eseguendo rundll32 sysdm.cpl,EditEnvironmentVariables dalla finestra Esegui o dalla riga di comando.

11
John Gardeniers

In un prompt dei comandi è possibile eseguire:

set PATH=C:\somedir;%PATH%

ma questo lo cambia solo per il comando Prompt (e tutte le app avviate dal comando Prompt). Supponendo che questo si applichi a tutto ciò che l'utente modifica le variabili di ambiente degli utenti. Fare clic con il tasto destro del mouse su Risorse del computer, Proprietà, Avanzate, Ambiente e in "Variabili utente per aggiungere una variabile:

PATH = C:\whatever

Quando l'utente accede, questo viene aggiunto al percorso di sistema.

4
John Rennie

L'utente può impostare una variabile PATH al prompt dei comandi che sostituirà la variabile PATH a livello di sistema, anche se l'utente non dispone dei diritti di "Amministratore". La modifica avrà effetto per i nuovi processi che l'utente avvia da quel comando Prompt. (Il processo Explorer esistente e qualsiasi altro processo che l'utente sta eseguendo quando viene apportata la modifica, non "vedrà" la modifica.)

2
Evan Anderson

Oltre alle risposte di cui sopra, puoi anche aggiornare il registro (che ha il vantaggio di essere utilizzabile tramite script):

La variabile PATH è memorizzata in HKEY_CURRENT_USER\Environment.

Per leggere il percorso corrente:

reg query HKEY_CURRENT_USER\Environment /v PATH

Per aggiungere un valore c:\somedir al percorso:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

Si noti che i processi leggono l'ambiente all'avvio, quindi è necessario riavviare il processo per ottenere il nuovo percorso.

Aggiornamento: un altro modo che ho trovato è quello di eseguire:

rundll32 sysdm.cpl,EditEnvironmentVariables

Ancora una volta, questa applet modifica il registro e ha lo stesso effetto di cui sopra.

1