Jak mogę zmodyfikować zmienną środowiskową PATH użytkownika bez wylogowania?

22

Pytanie właściwie mówi wszystko; Mam użytkowników, którzy nie mają uprawnień do edytowania własnej PATHzmiennej środowiskowej i jeśli z jakiegoś powodu muszą ją zmodyfikować, muszą się wylogować, aby administrator mógł się zalogować i zmienić PATHdla nich, zanim użytkownik zaloguje się ponownie . To nie jest idealne. Czy można to zrobić lepiej?

dziewięciostronny
źródło
Ciekawe - ale jak dokładnie uniemożliwiasz użytkownikom zmianę własnego domyślnego środowiska? Czy po prostu odmawiasz im dostępu do Mojego komputera / Właściwości / Zaawansowane / Zmienna środowiskowa? Nadal mogą modyfikować HKCU / środowisko za pomocą różnych metod.
Cooper
Preferencje zasad grupy? Tylko myśl.
Simon Catlin

Odpowiedzi:

6

Zawsze możesz wywołać powłokę cmd z uprawnieniami administratora (lub dowolną inną metodą runas) i użyć narzędzia takiego jak SETX, aby trwale zmodyfikować ścieżkę. Istniejące powłoki i / lub działające programy prawdopodobnie będą używać starej ścieżki, ale każda nowa powłoka / program będzie używać nowych ustawień.

Berzemus
źródło
25

W przypadku kont bez uprawnień administratora:

Otwórz „Konta użytkowników” i wybierz „Zmień moje zmienne środowiskowe” ( http://support.microsoft.com/kb/931715 ).

To okno dialogowe pokazuje bieżące zmienne użytkownika, a także zmienne systemowe. Może być konieczne dodanie lokalnej zmiennej PATH, jeśli jeszcze tego nie zrobiłeś.

Aby na przykład zaktualizować ścieżkę, tak aby zawierała katalog Python 3.3, kliknij opcję Nowy:

Nazwa zmiennej: PATH Wartość zmiennej:% PATH%; C: \ Python33

Tworzy to lokalną ŚCIEŻKĘ, pobierając bieżącą ŚCIEŻKĘ systemu i dodając ją.

Curtis Nelson
źródło
2
Muszę pomyśleć, że odpowiedź brzmi: „ Mam użytkowników, którzy nie mają uprawnień do edytowania własnej ŚCIEŻKI ...” i robi to na stałe , lepiej niż reszta. Bardzo ładnie wykonane. Zastanawiasz się, dlaczego kliknięcie tego na Moim komputerze jest chronione przez administratora, jeśli tak nie jest? Po prostu chroń pola nielokalne w taki sam sposób, jak interfejs użytkownika, gdy uzyskuje się do nich dostęp w ten sposób.
ruffin
10

Mój komputer / Właściwości / Zaawansowane / Zmienne środowiskowe. Zmiany tam wprowadzone obowiązują natychmiast, z wyjątkiem już otwartych okien wiersza poleceń. Nie trzeba się wylogowywać i ponownie logować.

UWAGA: Jeśli nie masz dostępu do tego okna, możesz je uzyskać, uruchamiając go rundll32 sysdm.cpl,EditEnvironmentVariablesz okna Uruchom lub wiersza polecenia.

John Gardeniers
źródło
zwykli użytkownicy w mojej sieci nie są w stanie zmienić swoich własnych zmiennych środowiskowych w ten sposób, chyba że mogę otworzyć ten ekran z podwyższonymi uprawnieniami prywatnymi poprzez „uruchom jako ...” lub coś podobnego, to nie zadziała dla mnie
jednostronny
4

W wierszu polecenia możesz wykonać:

set PATH=C:\somedir;%PATH%

ale to zmienia to tylko dla wiersza polecenia (i wszelkich aplikacji uruchomionych z wiersza polecenia). Zakładając, że chcesz to zastosować do wszystkiego, co użytkownik zmienia zmienne środowiskowe użytkowników. Kliknij prawym przyciskiem Mój komputer, Właściwości, Zaawansowane, Zmienne środowiskowe i w „Zmienne użytkownika, aby dodać zmienną:

PATH = C:\whatever

Gdy użytkownik się zaloguje, zostanie dodany do ścieżki systemowej.

John Rennie
źródło
Muszę zmienić kolejność wpisów już w ŚCIEŻCE, więc dodawanie usuwania ze Zmiennych użytkownika nie działa w tym przypadku dla mnie
dziewiętnastego
setx, jak wspomniano @Berzemus, może trwale edytować systemową zmienną PATH ( /mprzełącznik).
Pat
2

Użytkownik może ustawić zmienną PATH w wierszu polecenia, która zastąpi ogólnosystemową zmienną PATH, nawet jeśli użytkownik nie ma uprawnień administratora. Zmiana zacznie obowiązywać w przypadku nowych procesów uruchamianych przez użytkownika z tego wiersza polecenia. (Istniejący proces Eksploratora i wszelkie inne procesy uruchomione przez użytkownika po wprowadzeniu zmiany nie „zobaczą” zmiany).

Evan Anderson
źródło
1

Oprócz powyższych odpowiedzi możesz także zaktualizować rejestr (co ma tę zaletę, że umożliwia tworzenie skryptów):

Zmienna PATH jest przechowywana w HKEY_CURRENT_USER \ Environment.

Aby odczytać bieżącą ścieżkę:

reg query HKEY_CURRENT_USER\Environment /v PATH

Aby dodać wartość c: \ somedir do ścieżki:

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

Zauważ, że procesy odczytują środowisko podczas uruchamiania, więc musisz ponownie uruchomić proces, aby uzyskać nową ścieżkę.

Aktualizacja: Znalazłem inny sposób:

rundll32 sysdm.cpl,EditEnvironmentVariables

Ponownie, ten aplet edytuje rejestr i ma taki sam efekt jak powyżej.

Kristopher Noronha
źródło