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?


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ń.


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ą.


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.


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.


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).


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.