Не удается разрешить% 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.