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.


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:



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


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


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.


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.


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ść.


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.


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.



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


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