Не удается разрешить% windir% / Невозможно изменить% path% или% path%, сбрасываемые при загрузке


45

См. Обновления 3 и 4 ниже, чтобы узнать, как возникла проблема.


Мой компьютер (Windows 7 x64, Lenovo Thinkpad T530) имеет проблему, решающую% windir%. После загрузки все работает нормально. Через некоторое время компьютер внезапно не может разрешить% windir%.

Консольное окно

Проверка окна переменных среды показывает, что оно определено.

Вариабельность среды

Проверка реестра также показывает, что он также определен. Я фактически удалил ключ и повторно ввел его безрезультатно.

реестр

После перезагрузки все работает некоторое время нормально. У кого-нибудь есть мысли по поводу чего-либо еще, что я могу проверить?


Обновление 1: Подумав об этом, я удалил драйвер / программу Konica Minolta Pagebox, которая была установлена ​​примерно в то время, когда начиналась эта проблема (см. Комментарии ниже). Проблема, кажется, занимает около 4-24 часов (я никогда не рассчитывал это время), поэтому я обновлюсь после этого.

Обновление 2: проблема все еще происходит. Я вернулся с обеда, и% windir% не может быть найден. Этим утром я сделал тест после перезагрузки и уложил компьютер в режим сна, затем проснулся. % windir% был еще определен после пробуждения.

Обновление 3: По словам Даниэля в комментариях, я запускал setдо и после ошибки и сравнивал результаты. Первое, что я заметил, это то, что при новой загрузке мой % path% имеет длину 2000+ символов . Я сократил его до ~ 375 символов и проверил это в новом окне cmd. Я перезагрузил компьютер, снова проверил путь, и он вернулся к более чем 2000+ символам (это соответствовало тому, что я первоначально видел). Я обрезал его снова и перезагрузил еще раз, и произошло то же самое. Я удалил переменную пути и создал новую; случилось то же самое. На этом этапе все, что я могу сделать, это либо я не могу навсегда изменить свой путь, либо путь сбрасывается каким-либо процессом при загрузке. есть идеи?

Обновление 4: я изменил свой путь с помощью метода реестра, предложенного ниже. Я проверил свой путь сегодня после запуска некоторое время, и он вырос из того, что я ввел в реестр; теперь у него есть несколько новых записей и много дубликатов. Единственные новые записи из SQL Server 2012. Я пошел, чтобы изменить это в реестре, и я заметил, что реестр НЕ соответствует выводу echo %path%. Проверка переменных среды на вкладке «Дополнительные свойства» показывает третью версию моего пути.

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\;

Похоже, что путь командной строки = путь реестра + путь переменных среды . Я попытался установить путь к реестру и переменным окружения к тому же самому и перезагрузиться. После перезагрузки мой путь теперь удваивается, в основном две параллельные копии пути реестра выше.

Еще раз, есть мысли?

Обновление 5: после разговора с ИТ-менеджером он говорит, что борется с аналогичной проблемой на другом компьютере. Оба компьютера имеют твердотельные накопители (кажется, это единственный общий фактор). Это может или не может быть уместным.


попробуйте использовать setдля присвоения значения windirвручную и повторите с еще echoраз - посмотрите, даст ли это вам вывод или нет. Если это произойдет, то что-то не так с вашими переменными env - если нет, то что-то не так с вашей командой shell и / или echo.
— mnmnc

Настройка работает, но я не совсем уверен, что это что-то доказывает, так как я могу запустить "set SystemRoot = abcd" для аналогичной кратковременной переменной сеанса
— Zack

Если я могу спросить, как вы это заметили? То есть, что вас предупредило, что возникла проблема? (На случай, если это актуально ...)
— Shinrai

Несколько недель назад на моем компьютере был установлен драйвер сетевого сканера. Вскоре после этого у меня были проблемы с программами Windows, которые не были найдены. Я отследил его до слишком длинного пути и исправил. Это может или не может быть связано. С тех пор все было странно. В частности, значок динамика Windows в нижнем углу периодически вызывает ошибку («Драйвер вывода не найден», но звук все еще работает). Я снова проверил путь и получил ошибку при попытке перейти к расширенным настройкам системы («не удается найти% windir% \ system32 \ ...»). Я отследил это, чтобы windir не разрешился.
— Зак

1
Возможные дубликаты переменных PATH и окружения
— jpaugh

Ответы:


26

У меня была та же проблема, и я нашел этот вопрос первым. Тем не менее, реальная причина / решение еще не упоминается в этом вопросе, но упоминается здесь: переменные PATH и среды Windows 7 повреждены

Краткое изложение решения: убедитесь, что ваш путь <2048 символов. Проверьте как пользовательские переменные, так и системные переменные.


4

С помощью графического интерфейса установите переменную % windir% на % SystemRoot% .

Что касается вашего% path%, вы можете решить это с помощью редактора реестра:

  • Запустите Regedit.exe
  • Перейти к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  • На правой панели дважды щелкните значение Path (REG_EXPAND_SZ)
  • Измените значение, как вам нравится, и перезагрузите

введите описание изображения здесь


Похоже, это исправило это. Я провожу полный рабочий день в понедельник, чтобы убедиться, и, если все пойдет хорошо, я отмечу это как правильный ответ после этого. Благодарю.
— Zack

1
@ Зак У меня точно такая же проблема на Lenovo T430, как и у коллеги. Приведенный выше ответ не сработал. Была ли проблема в конечном итоге решена?
— Форд префект

@inquisitiveIdiot - я никогда полностью не решал это. Я удалил некоторые вещи, которые были в пути, и продолжал сокращать путь вручную в командной строке. В конце концов проблема перестала происходить.
— Зак

@Zack Я только что опубликовал то, что в конечном итоге сработало как ответ, если у вас снова возникла проблема
— брод префект

Имея ту же проблему на T430 также.
— Lightyear Buzz

2

У меня была такая же проблема в моем Lenovo TS530. Это начало происходить после установки новых программ, в результате чего мой путь стал намного длиннее, чем раньше, и поэтому установщики добавили новый материал в начало определения пути . Я отредактировал путь в regedt , переместив% SystemRoot% в начало определения пути.

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

Кроме того, я редактировал ЭКОЛОГИЧЕСКИЙ переменной WinDir из

windir= C:/Windows

в

windir=C:\Windows

Это, кажется, решило проблему. (Возможно, что я сделал ошибку с обратной косой чертой ранее, пытаясь исправить проблему. Или, наоборот, установщик изменил ее.)


Windows довольно проста в использовании /вместо \ .
— jpaugh

1

Я была такая же проблема. Это было решено, когда я удалил переменную среды PATH (после создания резервной копии ее содержимого) в следующем диалоговом окне.

C:\Windows\System32\SystemPropertiesAdvanced.exe

Я реконструировал переменную PATH позже один за другим. Я переместил часть содержимого PATH, которая не вписывалась в системные переменные, в переменные пользователя PATH.


1

Как уже упоминалось @ Pieter-Jan Busschaert, это, скорее всего, из-за поврежденной или слишком длинной PATHпеременной среды.

Самый простой способ исправить это - загрузить Rapid Environment Editor . Он показывает вам, что не так с вашими PATHнастройками и позволяет вам исправить это сразу.


Я всегда мог исправить путь. Проблема заключалась в том, что путь самопроизвольно расширялся за пределы 2048 символов, и я ничего не делал (например, установка или удаление программы).
— Зак

1

Я обнаружил (последовательно), что это также произойдет, если SQL Server 2012 или более поздние версии установлены на компьютере с Windows 7 (не уверен, что проблема также возникает на Win8.x или Win10), но решение, которое я нашел, заключается в также создайте переменную среды windir в текущем пользовательском контексте, чтобы установить значение% SystemRoot%. Единственный раз, когда мы увидим это, когда RDP'ing (удаленный сеанс) на рабочую станцию ​​(ы). Если бы мы вошли в консоль, мы бы не столкнулись с этим вообще. Я не знаю, какие компоненты SQL 2012 (или более поздние версии) были установлены на вашем компьютере непосредственно перед этим или нет, но вы можете попробовать это решение.


0

Наша справочная служба дала мне такой ответ:

  1. Откройте настройки контроля учетных записей, нажав кнопку «Пуск», а затем - «Панель управления». В поле поиска введите uac, а затем нажмите Изменить параметры контроля учетных записей.
  2. Выполните следующие действия: • Чтобы отключить UAC, переместите ползунок в положение «Никогда не уведомлять» и нажмите кнопку «ОК». Если вас попросят ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение. Вам нужно будет перезагрузить компьютер, чтобы отключить UAC.

Это работает с учетом двух разных вещей:

1.) Эта проблема на самом деле не существует, потому что эта программа требует, чтобы% windir работал правильно. Вместо этого запустите C: \ Windows \ System32 \ UserAccountControlSettings в командной строке.

2.) Вы предпочитаете не иметь предупреждения безопасности Windows.


В моем случае UAC уже был отключен, но если это работает для вас или кого-либо еще, это здорово
— Зак

0

У меня была такая же проблема после обновления SSD на моем Lenovo X230. Программное обеспечение, которое я использовал для миграции (Acronis TrueImage), добавило значение пути, которое, должно быть, привело меня к превышению лимита. Я решил это следующим образом:

Открыть Regedit

Перейти к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Измените значение Path (см. Ответ пользователя 184745 выше).

Вырежьте текущее значение и вставьте в блокнот.

Отредактировал несколько повторяющихся значений, а также пути, которые казались мало полезными. Я сократил длину пути с 2283 символов до 1517.

Вставил новую строку пути в ключ Path.

(На всякий случай сохранил содержимое моего блокнота.)

Rebooted. Все хорошо.



-1

У меня были те же проблемы, что и выше. % Windir%. значки не отображаются для некоторых предметов. Любое приложение, которое использовало windir ... Прошло все исправления, включая холодную загрузку, сокращение пути и т. Д.
Наконец воссоздал мой профиль Windows ... проблема исчезла.


4
Добро пожаловать в Супер пользователя PaulG. Хотя вы пытались ответить на вопрос ОП, но в нем отсутствуют подтверждающие факты, это может привести к удалению. Пожалуйста, обратитесь к тому, как и почему некоторые ответы удаляются и как написать хороший ответ
— каламбур
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.