Jaka jest różnica między zmiennymi użytkownika a zmiennymi systemowymi?

162

Jaka jest różnica między zmiennych użytkownika, takich jak PATH, TMPitp i zmiennych systemowych?

Przypadkowo usunąłem zmienną użytkownika PATH. Co powinienem zrobić?

rekrut
źródło

Odpowiedzi:

130

Kliknij prawym przyciskiem myszy Mój komputer i przejdź do Właściwości-> Zaawansowane-> Zmienne środowiskowe ...

To, co powyżej, to zmienne użytkownika, a poniżej to zmienne systemowe. Elementy są łączone podczas tworzenia środowiska aplikacji. Zmienne systemowe są wspólne dla wszystkich użytkowników, ale zmienne użytkownika dotyczą tylko Twojego konta / profilu.

Jeśli przypadkowo usunąłeś te systemowe, otwórz Edytor rejestru, a następnie przejdź do HKLM\ControlSet002\Control\Session Manager\Environment(zakładając, że obecny zestaw kontrolny nie jest ControlSet002). Następnie znajdź Pathwartość i skopiuj dane do Pathwartości HKLM\CurrentControlSet\Control\Session Manager\Environment. Może być konieczne ponowne uruchomienie komputera. (Mam nadzieję, że te kopie zapasowe nie pochodziły zbyt dawno temu i zawierają potrzebne informacje).

user541686
źródło
1
Usunąłem użytkowników, więc czy to dobrze, czy źle, czy można ponownie ich używać?
debiutant
1
@rookie: Ah ... cóż, usuwanie zmiennych użytkowników nie jest zazwyczaj takie złe, ale to naprawdę zależy. Państwo mogli spróbować przywracania systemu, a to prawdopodobnie działa, ale ja osobiście nie podoba z powodu różnych innych problemów, które mogą pochodzić. Możesz spróbować przejść do HKU\.DEFAULT\Environmenti skopiować wszystko stamtąd do HKCU\Environment. Jeśli masz szczęście, to wszystko, co musisz przywrócić; jeśli nie masz tyle szczęścia, możesz mieć wpisy specyficzne dla użytkownika, których po prostu nie można przywrócić, w takim przypadku musiałbyś użyć Przywracania systemu. Mam nadzieję że to pomoże.
user541686
dlaczego zmienne środowiskowe systemu nie mają znaków procentowych, a zmienne użytkownika mają?
Millemila
80

Zmienne środowiskowe są „oceniane” (tj. Są przypisywane) w następującej kolejności:

  1. Zmienne systemowe
  2. Zmienne zdefiniowane w autoexec.bat
  3. Zmienne użytkownika

Każdy proces ma blok środowiskowy zawierający zestaw zmiennych środowiskowych i ich wartości. Istnieją dwa typy zmiennych środowiskowych: zmienne środowiskowe użytkownika (ustawione dla każdego użytkownika) i zmienne środowiskowe systemu (ustawione dla każdego). Proces potomny domyślnie dziedziczy zmienne środowiskowe swojego procesu nadrzędnego.

Programy uruchamiane przez procesor poleceń dziedziczą zmienne środowiskowe procesora poleceń.

Zmienne środowiskowe określają ścieżki wyszukiwania plików, katalogi plików tymczasowych, opcje specyficzne dla aplikacji i inne podobne informacje. System utrzymuje blok środowiska dla każdego użytkownika i jeden dla komputera. Blok środowiskowy systemu reprezentuje zmienne środowiskowe dla wszystkich użytkowników danego komputera. Blok środowiskowy użytkownika reprezentuje zmienne środowiskowe, które system utrzymuje dla tego konkretnego użytkownika, w tym zestaw zmiennych środowiskowych systemu.

Akshaya Aradhya
źródło
5
Czy to oznacza, że ​​zmienne systemowe zastępują zmienne użytkownika, jeśli obie definiują jedną o tej samej nazwie?
Casey Kuball
4
Zwykle nie , z wyjątkiem PATH .
Treefish Zhang
37

Wszyscy użytkownicy mają globalny dostęp do zmiennych środowiskowych systemu .
Zmienne środowiskowe użytkownika są specyficzne tylko dla aktualnie zalogowanego użytkownika.

Darin Dimitrov
źródło
Usunąłem go przypadkowo, jakie mogą być skutki? Jak mogę to zwrócić?
debiutant
@rookie, w rezultacie programy korzystające z tej zmiennej środowiskowej mogą przestać działać. Jeśli chodzi o zwrot, to nie wiem, czy jest to możliwe. Może być konieczne przywrócenie systemu.
Darin Dimitrov
1

Po prostu utwórz zmienną Path w użytkownikach. Przejdź do zmiennych użytkownika, zaznacz ścieżkę, a następnie nową, wpisz wartość. Poszukaj na innym komputerze z oknami tej samej wersji. Zwykle jest to w systemie Windows 10: Ścieżka% USERPROFILE% \ AppData \ Local \ Microsoft \ WindowsApps;

Alesper3
źródło
1

Zmienna środowiskowa (można uzyskać dostęp w dowolnym miejscu / obiekt dynamiczny) jest rodzajem zmiennej. Są to 2 typy zmiennych środowiskowych systemu i zmienne środowiskowe użytkownika.

Zmienne systemowe o predefiniowanym typie i strukturze. Są używane do funkcji systemu. Wartości utworzone przez system są przechowywane w zmiennej systemowej. Zazwyczaj są one oznaczane dużymi literami. Przykład: HOME, PATH, USER

Zmienne środowiskowe użytkownika to zmienne określone przez użytkownika i są przedstawiane za pomocą małych liter.

Anusree
źródło