Nie można rozwiązać% windir% / Nie można zmodyfikować% path% lub% path% resetowanych podczas uruchamiania

45

Zobacz aktualizacje 3 i 4 poniżej, jak ewoluował problem


Mój komputer (Windows 7 x64, Lenovo Thinkpad T530) ma problem z rozwiązaniem% windir%. Po uruchomieniu wszystko działa dobrze. W pewnym momencie komputer nagle nie może rozpoznać% windir%.

Okno konsoli

Sprawdzanie okna zmiennych środowiskowych pokazuje, że jest zdefiniowane.

Środowisko Varibales

Sprawdzanie rejestru pokazuje również, że jest on również zdefiniowany. Właściwie usunąłem klucz i wprowadziłem go ponownie bezskutecznie.

Rejestr

Po ponownym uruchomieniu wszystko działa przez chwilę dobrze. Czy ktoś ma jakieś przemyślenia na temat czegoś innego, co mogę sprawdzić?


Aktualizacja 1: Po zastanowieniu się nad tym, odinstalowałem sterownik / program Konica Minolta Pagebox, który został zainstalowany mniej więcej w momencie pojawienia się tego problemu (patrz komentarze poniżej). Problem pojawia się w ciągu około 4-24 godzin (nigdy go nie mierzyłem), więc po tym dokonam aktualizacji.

Aktualizacja 2: Problem nadal występuje. Wróciłem z lunchu i nie można znaleźć% windir%. Zrobiłem test po ponownym uruchomieniu komputera dziś rano i położyłem komputer do uśpienia, a potem go obudziłem. % windir% było nadal definiowane po przebudzeniu.

Aktualizacja 3: Per Daniel w komentarzach pobiegłem setprzed błędem i po nim i porównałem wyniki. Pierwszą rzeczą, którą zauważyłem, jest to, że przy nowym rozruchu mój % path% ma ponad 2000 znaków . Skróciłem go do ~ 375 znaków i zweryfikowałem w nowym oknie cmd. Uruchomiłem ponownie, ponownie sprawdziłem ścieżkę i wróciłem do ponad 2000 znaków (pasowało do tego, co pierwotnie widziałem). Ponownie go skróciłem i ponownie uruchomiłem ponownie i to samo się stało. Usunąłem zmienną ścieżki i utworzyłem nową; to samo się stało. W tym momencie mogę jedynie stwierdzić, że nie mogę trwale zmienić ścieżki LUB ścieżka jest resetowana przez jakiś proces podczas uruchamiania. jakieś pomysły?

Aktualizacja 4: Zedytowałem swoją ścieżkę za pomocą metody rejestru sugerowanej poniżej. Po uruchomieniu przez pewien czas sprawdziłem swoją ścieżkę, która wyrosła z tego, co wpisałem do rejestru; ma teraz kilka nowych wpisów i wiele duplikatów. Jedyne nowe wpisy pochodzą z SQL Server 2012. Poszedłem to zmienić w rejestrze i zauważyłem, że rejestr NIE pasuje do danych wyjściowych echo %path%. Sprawdzanie zmiennych środowiskowych na karcie Właściwości zaawansowane pokazuje trzecią wersję mojej ścieżki.

Registry Path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;

Command Line path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;
C:\Program Files(x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;

Environment Variables path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;

Wygląda na to, że ścieżka wiersza poleceń = ścieżka rejestru + ścieżka zmiennych środowiskowych . Próbowałem ustawić ścieżkę rejestru i ścieżkę zmiennych środowiskowych na to samo i zrestartować komputer. Po ponownym uruchomieniu moja ścieżka jest teraz podwojona, w zasadzie dwie powyższe kopie ścieżki rejestru obok siebie.

Jeszcze raz jakieś myśli?

Aktualizacja 5: po rozmowie z kierownikiem IT mówi, że walczy z podobnym problemem na innym komputerze. Oba komputery mają dyski SSD (wydaje się, że to jedyny wspólny czynnik). To może, ale nie musi być istotne.

Zack
źródło
spróbuj użyć, setaby windirręcznie przypisać wartość, i powtórz echoponownie - sprawdź, czy da to wynik, czy nie. Jeśli tak się stanie, to coś się nie zgadza ze zmiennymi env - jeśli nie, to coś jest nie tak z poleceniem powłoki i / lub echo.
mnmnc
Ustawienie działa, ale nie jestem do końca pewien, czy coś to udowodni, ponieważ mogę uruchomić „set SystemRoot = abcd” dla podobnej, krótkotrwałej zmiennej sesji
Zack
Jeśli mogę zapytać, jak to zauważyłeś? To znaczy, co cię podpowiedziało, że wystąpił problem? (Jest szansa, że ​​to istotne ...)
Shinrai
Kilka tygodni temu na moim komputerze został zainstalowany sterownik skanera sieciowego. Wkrótce potem miałem problemy z brakiem programów Windows. Wyśledziłem to, bo moja ścieżka była zbyt długa, i naprawiłem to. To może, ale nie musi być związane. Od tamtej pory sprawy były dziwaczne. W szczególności ikona głośnika systemu Windows w dolnym rogu okresowo podnosi błąd („Nie znaleziono sterownika wyjściowego”, ale dźwięk nadal działa). Poszedłem ponownie sprawdzić ścieżkę i dostałem błąd podczas próby przejścia do zaawansowanych ustawień systemu („nie mogę znaleźć% windir% \ system32 \ ...”). Wyśledziłem to, by Windir nie rozwiązał problemu.
Zack

Odpowiedzi:

26

Miałem ten sam problem i jako pierwsze znalazłem to pytanie. Jednak prawdziwa przyczyna / rozwiązanie nie jest jeszcze wspomniana w tym pytaniu, ale jest tutaj wspomniana: ścieżka i zmienne środowiskowe systemu Windows 7 są uszkodzone

Podsumowanie rozwiązania: upewnij się, że twoja ścieżka ma <2048 znaków. Sprawdź zarówno zmienne użytkownika, jak i zmienne systemowe.

Pieter-Jan Busschaert
źródło
4

Za pomocą GUI ustaw swoją zmienną % windir% na % SystemRoot% .

Jeśli chodzi o% path%, możesz to rozwiązać za pomocą Edytora rejestru:

  • Uruchom program Regedit.exe
  • Iść do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  • W prawym okienku kliknij dwukrotnie wartość Path (REG_EXPAND_SZ)
  • Zmień wartość w dowolny sposób i uruchom ponownie

wprowadź opis zdjęcia tutaj

użytkownik184745
źródło
Wygląda na to, że to naprawiło. Daję temu cały dzień pracy w poniedziałek, aby się upewnić, i zakładając, że wszystko pójdzie dobrze, oznaczę to jako poprawną odpowiedź po tym. Dzięki.
Zack
1
@Zack Mam dokładnie taki sam problem na lenovo T430, podobnie jak współpracownik. Powyższa odpowiedź nie zadziałała. Czy problem został ostatecznie rozwiązany?
ford prefekt
@inquisitiveIdiot - Nigdy go w pełni nie rozwiązałem. Odinstalowałem niektóre elementy znajdujące się na ścieżce i ręcznie przycinałem ścieżkę w wierszu poleceń. W końcu problem przestał występować.
Zack,
@Zack Właśnie opublikowałem to, co skończyło się działaniem jako odpowiedź na wypadek, gdybyś znowu miał problem
ford prefect
Ten sam problem występuje również w T430.
Lightyear Buzz
2

Miałem ten sam problem w moim Lenovo TS530. Zaczęło się to pojawiać po zainstalowaniu nowych programów, które spowodowały, że moja ścieżka była nawet znacznie dłuższa niż poprzednio i dlatego instalatorzy dodali nowe rzeczy na początku definicji ścieżki . Edytowałem ścieżkę w regedt , przenosząc% SystemRoot% na początek definicji ścieżki.

path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot....

Ponadto edytowałem zmienną środowiskową windir z

windir= C:/Windows

do

windir=C:\Windows

Wydaje się, że to rozwiązało problem. (Możliwe, że wcześniej pomyliłem się z odwrotnym ukośnikiem, próbując naprawić problem. Alternatywnie instalator go zmienił.)

imppu
źródło
Windows raczej wybacza używanie /zamiast \ .
jpaugh
1

Miałem ten sam problem. Został on rozwiązany, kiedy usunięte zmiennej środowiskowej PATH (po wykonaniu kopii zapasowej jego zawartość) w oknie dialogowym następujące.

C:\Windows\System32\SystemPropertiesAdvanced.exe

Później zrekonstruowałem zmienną PATH jeden po drugim. Przeniosłem część zawartości PATH, która nie mieściła się w zmiennych systemowych do zmiennych PATH użytkownika.

Vijay Vepakomma
źródło
1

Jak już wspomniano @ Pieter-Jan Busschaert, najprawdopodobniej jest to spowodowane uszkodzoną lub zbyt długą PATHzmienną środowiskową.

Najłatwiejszym sposobem rozwiązania tego problemu jest pobranie programu Rapid Environment Editor . Pokazuje, co jest nie tak z Twoimi PATHustawieniami i pozwala to naprawić od razu.

Dunken
źródło
Zawsze byłem w stanie naprawić ścieżkę. Problem polegał na tym, że ścieżka spontanicznie rozwijała się poza 2048 znaków, a ja nic nie robiłem (np. Instalując lub odinstalowując program).
Zack,
1

Przekonałem się (konsekwentnie), że tak się stanie, jeśli SQL Server 2012 lub nowsze wersje zostaną zainstalowane na komputerze z systemem Windows 7 (nie jestem pewien, czy problem występuje również w Win8.x lub Win10), ale znalazłem rozwiązanie utwórz również zmienną środowiskową windir w bieżącym kontekście użytkownika, aby ustawić wartość% SystemRoot%. Widzimy to tylko raz, gdy RDP'ing (sesja zdalna) do stacji roboczych. Gdybyśmy zalogowali się do konsoli, w ogóle byśmy się nie spotkali. Nie wiem, czy komponenty SQL 2012 (lub nowsze) zostały zainstalowane na twoim komputerze tuż przed tym, czy nie, ale możesz wypróbować tę rozdzielczość.

Mike Fanning
źródło
0

Nasze biuro pomocy dało mi tę odpowiedź:

  1. Otwórz Ustawienia kontroli konta użytkownika, klikając przycisk Start, a następnie Panel sterowania. W polu wyszukiwania wpisz uac, a następnie kliknij Zmień ustawienia kontroli konta użytkownika.
  2. Wykonaj następujące czynności: • Aby wyłączyć UAC, przesuń suwak do pozycji Nigdy nie powiadamiaj, a następnie kliknij OK. Jeśli zostanie wyświetlony monit o hasło administratora lub potwierdzenie, wpisz hasło lub potwierdź. Musisz ponownie uruchomić komputer, aby UAC mógł zostać wyłączony.

Działa, biorąc pod uwagę dwie różne rzeczy:

1.) Ten problem nie istnieje, ponieważ ten program wymaga% windir do poprawnego działania. Zamiast tego uruchom C: \ Windows \ System32 \ UserAccountControlSettings w wierszu polecenia.

2.) Wolisz nie mieć ostrzeżeń bezpieczeństwa systemu Windows.

ford prefekt
źródło
UAC został już wyłączony w moim przypadku, ale jeśli to działa dla ciebie lub kogokolwiek innego, to świetnie
Zack
0

Miałem ten sam problem po aktualizacji do SSD na moim Lenovo X230. Oprogramowanie, którego użyłem do migracji (Acronis TrueImage), dodało wartość ścieżki, która musiała mnie przekroczyć limit. Rozwiązałem to w następujący sposób:

Otwórz Regedit

Iść do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Zmodyfikuj wartość ścieżki (patrz odpowiedź użytkownika 184745 powyżej).

Wytnij bieżącą wartość i wklej do Notatnika.

Edytowano kilka zduplikowanych wartości, a także ścieżki, które wydawały się mało przydatne. Skróciłem długość ścieżki z 2283 znaków do 1517.

Wkleił nowy ciąg ścieżki do klucza ścieżki.

(Na wszelki wypadek zapisałem zawartość mojego notatnika).

Zrestartowano. Wszystko dobrze.

Robert
źródło
-1

Miałem te same problemy, co powyżej. % windir%. ikony nie są wyświetlane dla niektórych elementów. Każda aplikacja, która korzystała z windir ... Przejrzałem wszystkie poprawki, w tym zimny rozruch, skrócenie ścieżki itp.
Wreszcie odtworzyłem mój profil systemu Windows ... problem zniknął.

PaulG
źródło
4
Witamy w Super User PaulG. Próbowałeś odpowiedzieć na pytanie OP, ale brakuje w nim faktów potwierdzających i może to doprowadzić do usunięcia. Proszę odnieść się do tego, jak i dlaczego niektóre odpowiedzi są usuwane oraz jak napisać dobrą odpowiedź
pun