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


22

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


Solo curioso - ma come stai impedendo esattamente agli utenti di cambiare il loro ambiente predefinito? Stai semplicemente negando loro l'accesso a Risorse del computer / Proprietà / Avanzate / Ambiente? Potrebbero comunque modificare HKCU / Environment attraverso una varietà di metodi.
Cooper


Preferenze dei criteri di gruppo? Solo un pensiero.
Simon Catlin,

Risposte:


6

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 nuova shell / programma utilizzerà le nuove impostazioni.


25

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.


2
Devo pensare che questo risponda: " Ho utenti che non dispongono dell'autorizzazione per modificare il proprio PERCORSO ...", e lo fa in modo permanente , meglio degli altri. Molto ben fatto. Ti chiedi perché facendo clic su Risorse del computer è protetto dall'amministratore se non lo è? Proteggi i campi non locali allo stesso modo dell'interfaccia utente quando accedi in questo modo.
ruffin,

10

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

NOTA: se non si ha accesso a quella finestra, potrebbe essere possibile ottenerlo eseguendo rundll32 sysdm.cpl,EditEnvironmentVariablesdalla finestra Esegui o dalla riga di comando.


gli utenti regolari sulla mia rete non sono in grado di modificare le proprie variabili d'ambiente in questo modo, a meno che non riesca ad aprire quella schermata con privilegi elevati tramite "Esegui come ..." o qualcosa di simile, questo non funzionerà per me
Noines

4

Nel prompt dei comandi è possibile eseguire:

set PATH=C:\somedir;%PATH%

ma questo lo cambia solo per il prompt dei comandi (e tutte le app avviate dal prompt dei comandi). 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.


Ho bisogno di cambiare l'ordine delle voci già nel PERCORSO, quindi aggiungere la rimozione dalle variabili utente non funziona in questo caso per me
Noines

setx, come menzionato @Berzemus, è possibile modificare la variabile PATH di sistema (lo /mswitch) in modo permanente.
Pat

2

L'utente può impostare una variabile PATH al prompt dei comandi che sovrascriverà 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 prompt dei comandi. (Il processo Explorer esistente e qualsiasi altro processo che l'utente sta eseguendo quando viene apportata la modifica, non "vedrà" la modifica.)


1

Oltre alle risposte sopra, puoi anche aggiornare il registro (che ha il vantaggio di essere programmabile):

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.