PATH i zmienne środowiskowe systemu Windows 7 są uszkodzone

97

Nie mam pojęcia, ale ostatnio miałem ten problem. Po uruchomieniu mojej stacji roboczej nagle coś niszczy ŚCIEŻKĘ i wiele rzeczy przestaje działać. Początkowo moja ścieżka zawierała WIELE katalogów (używam Windows 7 jako pudełka programistycznego), a po pewnym czasie pozostały mi tylko 3-4 katalogi na mojej ścieżce.

Nie mogę nawet otworzyć okna dialogowego Właściwości systemu, w którym widzę zmienne środowiskowe (ponieważ używa zmiennych powłoki do uruchomienia i nie działa). Krótko mówiąc, za każdym razem uruchamiam ponownie.

Wszelkie pomysły, co może powodować ten problem? Ostatnio nie uruchomiłem niczego nowego / niezwykłego. Tylko VmWare (ale używałem go w przeszłości i wtedy nie miałem tego problemu).

Właśnie sprawdziłem, nawet %WINDIR%nie jest zdefiniowany. WTF ?!

Pavel P.
źródło
2
Ostatnio miałem ten sam problem na moim 64-bitowym pudełku z Vista. Bez oczywistej przyczyny, jeśli otworzę nowy wiersz polecenia, zmienna ścieżki zostanie ustawiona na część ścieżki zdefiniowaną w „Zmiennych użytkownika”. Brakuje części „Zmienne systemowe” ścieżki. Niektóre, ale nie wszystkie zmienne systemowe są niezdefiniowane. Rejestr wygląda OK, a wszystko wygląda OK w oknie dialogowym Właściwości systemu (za pomocą „c: \ windows \ system32 \ systempropertiesadvanced.exe”). Po ponownym uruchomieniu system działa normalnie. Problem pojawia się co kilka dni. Pełny skan antywirusowy niczego nie znalazł.
Lee
Miałem ten sam problem. Znalazłem kilka różnych rzeczy, które go uruchomiły (uruchamianie niektórych programów, uruchamianie instalatorów itp.), Ale nie ma powodu, by to powodowało (działają dobrze na innych komputerach lub na maszynie wirtualnej). W końcu miałem inne problemy, co wiązało się z koniecznością ponownej instalacji który naprawił wszystko.
Jim McKeeth,
4
moja ścieżka była za długa. Usunąłem duplikaty, usunąłem niepotrzebne wpisy i problem zniknął.
Pavel P

Odpowiedzi:

127

Z mojego bloga

Podsumowując, jeśli zmienna środowiskowa PATH ma więcej niż 2048 znaków, to (i WINDIR) przestaje być widoczna w wielu kontekstach.

Naprawiłem to ręcznie uruchamiając c: \ windows \ system32 \ systempropertiesadvanced.exe i usuwając jeden wpis z mojej ŚCIEŻKI, aby umieścić mnie poniżej 2048 znaków. Nowe okna cmd działają dobrze.

Aktualizacja: To podobne pytanie twierdzi, że 2047 jest wartością maksymalną i rozwija zasady ekspansji

Kruk
źródło
2
Właśnie rozwiązałem problem poprzez ponowne uruchomienie komputera ... To naprawdę głupi limit systemu Windows!
Edwin Yip,
3
Właśnie wpadłem na ten problem. Co za żart. Dzięki
SwimBikeRun
3
Jak wspomniano inni, po naprawieniu PATH, po prostu uruchom ponownie explorer.exe w menedżerze zadań, jeśli nie chcesz restartować. Upewnij się, że NIE uruchamiasz menedżera zadań, klikając pasek zadań prawym przyciskiem myszy! Spowoduje to zainicjowanie menedżera zadań ze ścieżką jacked up (a tym samym nowego procesu explorer.exe). Uruchom go,
naciskając
1
Dziękuję Ci za to. Walczyłem z tym przez ostatni miesiąc, kiedy produkt Sony zwiększył moją ścieżkę o około 200 znaków.
Michael Dorgan
1
To, co zrobiłem, oprócz tego, co zaproponował Raven: zamień wspólne katalogi podstawowe, takie jak c:\program files (86)zmienna ścieżki, na inne zmienne, takie jak na przykład PRGX86wskazanie katalogu plików programu. W ten sposób możesz zapisać dodatkowe postacie.
ovm
23

Ograniczenie 2048 znaków jest prawdziwe. To, co zrobiłem, to podzielenie ścieżki na dwie osobne zmienne i włączenie drugiej zmiennej do zmiennej PATH:

PATH=C:\;%PATHEXTENDED%
PATHEXTENDED=E:\

W ten sposób nie musiałem usuwać żadnych katalogów PATH, ale otrzymałem zmienną PATH o długości poniżej 2048 znaków.

Darth Vader
źródło
2
ok, to dość genialne
kenwarner
1
Bardzo sprytne, ale aplikacje, które dynamicznie dodają wpisy PATH, prawdopodobnie będą działać na w pełni rozwiniętej ścieżce i nadal będą szaleć. Ale przynajmniej ból będzie obejmował ten proces.
Raven
Dziękuję za ten świetny pomysł, ale niestety nie działał on pod Win7: zmienna „extpath” - lub w twoim przypadku „pathextended” - nie została przeanalizowana .....
nieznany6656
2
To rozwiązanie nie działało dla mnie w Win 7. Zawartość 2 zmiennych została połączona, ale wszelkie znaki po 2048-tym (?) Zostały obcięte od powstałej połączonej zmiennej PATH. Więc musiał usunąć wpisy z PATH w końcu, jak na @Raven, aby moje ikony i %windir%itp wrócić.
Snark
12

Rozwiązanie obejścia dla każdego, kto próbuje rozwiązać ten problem, z powodu nadmiernego pathlub z innego powodu: wystarczy ponownie uruchomić Eksploratora. Nowa powłoka odbiera nowe środowisko. To na razie naprawia uszkodzenie, bez konieczności ponownego uruchamiania, nawet jeśli nie udało się jeszcze zidentyfikować i trwale rozwiązać podstawowej przyczyny.

1.

wprowadź opis zdjęcia tutaj

2)

wprowadź opis zdjęcia tutaj

3)

wprowadź opis zdjęcia tutaj

EDYCJA: aktualizacja dla nowszych wersji systemu Windows.

Menedżer zadań wykonuje to teraz w jednym kroku:

wprowadź opis zdjęcia tutaj

Reg Edycja
źródło
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł komentować każdy post .
Michael K
Z szacunkiem nie zgadzam się. Pytanie brzmi Windows 7's PATH and environment variables are corrupted. Moja odpowiedź stanowi sposób na usunięcie tej korupcji. Jest to odpowiednia odpowiedź zarówno sama w sobie, jak i w połączeniu z innymi poprawkami, po których w przeciwnym razie konieczne byłoby ponowne uruchomienie.
Reg Edit
Proponuję edytować odpowiedź Ravens i dodać do niej swoją część. Większość ludzi będzie czytać tylko zaakceptowaną odpowiedź, a jeśli dobrze zrozumiem, twoja odpowiedź jest w większości jej uzupełnieniem.
Michael K
O, rozumiem. Nie, dotyczy każdego wypróbowanego rozwiązania. Zredagowałem moją odpowiedź, aby to wyjaśnić.
Reg Edit
1
było to prawdopodobnie bardziej wartościowe jako komentarz niż odpowiedź. Że zamiast restartu powinien zakończyć zadanie explorer.exe i zrestartować explorer.exe. Twoja odpowiedź dotyczy części jego problemu - tej części „Nie mogę nawet otworzyć okna dialogowego Właściwości systemu, w którym mogę zobaczyć zmienne środowiskowe (ponieważ używa zmiennych powłoki do uruchomienia i nie działa). Krótko mówiąc, restartuję co czas." Zauważ jednak, że skoro ma problem ze ścieżką po ponownym uruchomieniu, nie rozwiązałoby to już jego problemu niż po ponownym uruchomieniu.
barlop
3

powinieneś dostać program do monitorowania kluczy rejestru

zmienne użytkownika

HKCU\Environment

i

zmienne maszynowe

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

możesz złapać moment, w którym zostaną zniszczone i zawęzić to.

czas, ile to zajmie .. po uruchomieniu. jeśli przynajmniej wiesz, kiedy to się stanie, pomoże ci to zawęzić sytuację.

spróbuj także w trybie awaryjnym. zwiększ to związane z procesem i sprawdź przeglądarkę zdarzeń.

barlop
źródło