Неправильный путь c windows system32 windir inf

Windows не может найти windir system32 systempropertiesadvanced.exe может быть проблемной ошибкой, но в сегодняшней статье мы покажем вам, как ее исправить.

Windows не может найти windir system32 systempropertiesadvanced.exe Сообщение об ошибке может появляться в любой версии Windows, и это может вызвать различные проблемы. Тем не менее, есть способ решить эту проблему, и мы покажем вам, как это сделать.

Windows не может найти сообщение windir system32 systempropertiesadvanced.exe может быть проблематичным, и, говоря о проблемах, пользователи сообщили о некоторых похожих проблемах:

  • Windows не может найти windir system32 rundll32.exe, необязательныйfeatures.exe, msdt.exe, slui.exe, mmc.exe. Иногда в каталоге System32 могут отсутствовать другие файлы, но вы должны решить проблему с помощью одного из наших решений.,
  • Расширенные настройки системы Windows 7 не работает — эта проблема может возникать практически в любой версии Widows, но вы должны иметь возможность применять большинство наших решений независимо от используемой версии Windows.
  1. Используйте безопасный режим
  2. Проверьте свой антивирус
  3. Проверьте переменную PATH
  4. Перезапустите проводник Windows
  5. Использовать редактор реестра
  6. Выполните восстановление системы
  7. Выполните обновление на месте

Решение 1 — Используйте безопасный режим

Иногда Windows не может найти windir system32 systempropertiesadvanced.exe Сообщение об ошибке может появляться при попытке установить определенные приложения или просто при попытке выполнить повседневные задачи. Тем не менее, несколько пользователей сообщили, что эта ошибка не появляется в безопасном режиме.

Безопасный режим отлично подходит для устранения неполадок, поскольку он работает с настройками по умолчанию и драйверами, поэтому, если у вас возникла эта проблема, вы можете устранить ее, войдя в безопасный режим. Для этого выполните следующие действия:

  1. Нажмите клавишу Windows + I, чтобы открыть приложение «Настройки». Перейдите в раздел « Обновление и безопасность ».

  2. Выберите Recovery из меню слева. На правой панели кнопка « Перезагрузить сейчас».

  3. Должен появиться список опций. Перейдите к Устранению проблем> Дополнительные параметры> Параметры запуска.
  4. Нажмите кнопку « Перезагрузить», чтобы перезагрузить компьютер.
  5. Теперь вы увидите список вариантов. Нажмите соответствующую клавишу, чтобы выбрать нужную версию безопасного режима.

После входа в безопасный режим проверьте, появляется ли проблема по-прежнему. Если проблема все еще существует, вы можете использовать безопасный режим для ее устранения.

  • ЧИТАЙТЕ ТАКЖЕ: Что делать, если Windows не может найти wuapp.exe

Решение 2 — Проверьте свой антивирус

По словам пользователей, иногда Windows не может найти windir system32 systempropertiesadvanced.exe ошибка может появиться из-за заражения вредоносным ПО. Чтобы убедиться, что ваша система чистая, мы рекомендуем вам выполнить полное сканирование системы.

Убедившись, что ваша система очищена от вредоносных программ, вам необходимо проверить антивирус. Хотя ваш антивирус является критически важным компонентом, иногда он может создавать помехи для Windows, что может привести к этой и многим другим проблемам.

Чтобы решить эту проблему, пользователи предлагают временно отключить определенные антивирусные функции и проверить, помогает ли это. В некоторых случаях вам, возможно, даже придется полностью отключить антивирус. Если это не сработает, следующим шагом будет удаление антивируса. Даже если вы удалите сторонний антивирус, Защитник Windows обеспечит безопасность вашей системы, поэтому вам не о чем беспокоиться.

Если проблема исчезнет после удаления антивируса, вам следует подумать о переходе на другое антивирусное решение. На рынке есть много отличных антивирусов, но если вам нужна максимальная защита, которая не будет мешать вашей системе, Bitdefender может быть идеальным антивирусом для вас.

  • Скачать антивирус Bitdefender

Решение 3 — Проверьте переменную PATH

По словам пользователей, Windows не может найти windir system32 systempropertiesadvanced.exe сообщение может появиться, если ваша переменная среды PATH изменена. Это может происходить по разным причинам, но вы можете вручную исправить эту проблему и изменить переменную PATH самостоятельно. Для этого выполните следующие действия:

  1. Нажмите Windows Key + S и введите дополнительные. Выберите Просмотр расширенных настроек системы из списка результатов. Если это не сработает, просто перейдите в каталог C: WindowsSystem 32 и запустите systempropertiesadvanced.exe.

  2. Когда откроется окно « Свойства системы», нажмите кнопку « Переменные среды».

  3. Теперь дважды щелкните переменную Path, чтобы увидеть ее значение.

  4. Удалите дублированные значения и нажмите ОК, чтобы сохранить изменения.

  5. У вас также есть другая переменная Path для вашей системы, поэтому вы должны также удалить дублированные записи из нее.

По-видимому, эта проблема возникает из-за того, что переменная Path слишком длинная, но, удалив дублированные записи, проблема должна быть решена. Чтобы быть в безопасности, всегда полезно создать точку восстановления системы, прежде чем вносить какие-либо радикальные изменения в системе.

Несколько пользователей сообщили, что SQL Server 2012 вызвал эту проблему, добавив ее записи в переменную Path, но после удаления этих значений проблема была решена.

  • ЧИТАЙТЕ ТАКЖЕ: ИСПРАВЛЕНИЕ: Windows не может найти один из файлов в этой теме

Решение 4. Перезапустите проводник Windows.

Иногда Windows не может найти windir system32 systempropertiesadvanced.exe Ошибка может возникнуть из-за глюков с Windows Explorer. Один из способов временно решить эту проблему — перезапустить Windows Explorer. Вы можете сделать это легко, выполнив следующие действия:

  1. Откройте диспетчер задач. Вы можете сделать это быстро, нажав Ctrl + Shift + Esc.
  2. Когда откроется диспетчер задач, найдите проводник Windows в списке процессов, щелкните его правой кнопкой мыши и выберите « Перезагрузить» из меню.

После перезапуска диспетчера задач проверьте, сохраняется ли проблема. По словам пользователей, это всего лишь временное решение, поэтому весьма вероятно, что проблема появится снова через некоторое время.

Решение 5 — Используйте редактор реестра

Как мы уже упоминали в одном из наших предыдущих решений, причина для Windows не может найти windir system32 systempropertiesadvanced.exe может быть вашей переменной Path. Чтобы решить эту проблему, вам нужно изменить это значение и удалить все ненужные или дублированные значения.

Если вы хотите, вы можете сделать это прямо из редактора реестра, выполнив следующие действия:

  1. Нажмите Windows Key + R и введите regedit. Теперь нажмите Enter или нажмите ОК.

  2. Когда откроется редактор реестра, перейдите к HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment на левой панели.
  3. Щелкните правой кнопкой мыши ключ Environment и выберите Export.

  4. Введите имя для резервной копии, выберите место сохранения и нажмите кнопку « Сохранить». Создав резервную копию, вы можете легко восстановить реестр, если что-то пойдет не так. Для этого просто запустите файл, созданный на этом шаге, и реестр будет восстановлен.

  5. Теперь дважды щелкните переменную Path, чтобы увидеть ее содержимое.

  6. Отредактируйте поле Date value и удалите все дубликаты или ненужные записи. Это может быть проблемой, потому что значение довольно длинное и трудно читаемое, поэтому мы советуем вам быть особенно осторожными при редактировании. Когда вы закончите, нажмите кнопку ОК, чтобы сохранить изменения.

После внесения этих изменений проблема должна быть решена, и все снова начнет работать.

  • ЧИТАЙТЕ ТАКЖЕ: ИСПРАВЛЕНИЕ: Это устройство не может найти достаточно свободных ресурсов для использования (код 12)

Решение 6 — Выполнить восстановление системы

Если эта проблема появилась недавно, вы можете решить ее, просто выполнив Восстановление системы. Если вы не знаете, Восстановление системы позволяет вам отменить любые последние изменения и восстановить вашу систему.

Если вы получаете сообщение W indows не удается найти ошибку windir system32 systempropertiesadvanced.exe, вы можете решить эту проблему, выполнив следующие действия:

  1. Нажмите Windows Key + S и введите восстановление системы. Выберите Создать точку восстановления из списка.

  2. Появится новое окно. Нажмите кнопку Восстановление системы.

  3. В окне « Восстановление системы» нажмите « Далее».

  4. Установите флажок Показать больше точек восстановления, если доступно. Выберите нужную точку восстановления и нажмите « Далее».

  5. Следуйте инструкциям на экране, чтобы завершить процесс.

После того, как вы восстановите свою систему, проверьте, сохраняется ли проблема.

Решение 7. Выполните обновление на месте

Если другие решения не помогли решить проблему, последний вариант — выполнить обновление на месте. По сути, обновление на месте переустановит Windows 10, сохранив все ваши файлы и приложения. Чтобы выполнить обновление на месте, просто сделайте следующее:

  1. Скачайте Media Creation Tool и запустите его.
  2. Когда Media Creation Tool запустится, выберите Upgrade this PC now.
  3. Теперь выберите « Загрузить и установить обновления» (рекомендуется) и нажмите « Далее». Помните, что этот шаг не является обязательным, поэтому вы можете пропустить его, если хотите.
  4. Следуйте инструкциям на экране. Когда вы дойдете до экрана « Готов к установке», выберите « Изменить то, что сохранить».
  5. Обязательно выберите опцию Сохранить личные файлы и приложения, чтобы сохранить все ваши файлы и приложения.
  6. Следуйте инструкциям на экране, чтобы завершить процесс.

После завершения процесса у вас будет установлена ​​свежая версия Windows, и проблема должна быть полностью решена. Если проблема все еще существует, мы рекомендуем выполнить сброс Windows 10, чтобы устранить проблему.

Windows не может найти сообщение windir system32 systempropertiesadvanced.exe может быть проблематичным, но мы надеемся, что вам удалось решить эту проблему, используя решения из этой статьи.

ЧИТАЙТЕ ТАКЖЕ:

  • Исправлено: ошибка «Не удалось найти среду восстановления»
  • Исправлено: ошибка «Не удалось найти этот элемент, он больше не находится в…» в Windows 10
  • Система не может найти указанный диск

DIRID_ABSOLUTE            -1      Реальный путь, указанный после запятой (cpf.test = -1, C:Temp).
DIRID_ABSOLUTE_16BIT  0xffff 16-битный реальный путь, формата 8.3 (для 16-разрядной setupx.dll в MS Windows 95)
DIRID_NULL                      0      Заглушка, пустой путь. Применяется для отладки.
DIRID_SRCPATH               1 Директория, где находится сам INF-скрипт. Полезна для запуска других секций в этом же скрипте посредством RunP*SetupCommands

DIRID_WINDOWS             10    Собственно, сама MS Windows. Типично, но не закон, что для Windows NT 4.0, Windows 2000 — это C:Winnt, для остальных — C:Windows. В командной строке эта директория также также содержится в переменных %Windir% (все MS Windows) и %SystemRoot% (NT 4 и выше)

DIRID_SYSTEM                11    Системная поддиректория MS Windows. Для NT 4, 5 и выше — это %SystemRoot%system32, для Windows 95, 98, ME — это %Windir%SYSTEM.

DIRID_DRIVERS               12    Директория размещения системных драйверов. Для MS Windows NT 4 и выше — это %SystemRoot%system32drivers, для MS Windows 95 — это %Windir%SYSTEMIOSUBSYS, для MS Windows 98, ME — %Windrir%SYSTEMDRIVERS

DIRID_COMMANDS               13 Директория с консольными DOS-утилитами, только для MS Windows 95, 98, ME. Размещение: %Windir%Command. Для MS Windows NT 4 и выше эта переменная неизвестна и файлы, направленные туда, попадут в мусоросборник %SystemRoot%System32unknown

DIRID_INF               17 Типично — %Windir%INF. Обычно этот каталог имеет атрибут «скрытый». В нём хранятся почти все INF скрипты самой системы и их бинарные кэшированные копии, нужные для ускорения построения списка драйверов.

DIRID_HELP                18 Директория %Windir%Help. В ней находятся почти все файлы справок (расширение .chm, .hlp, .cnt, .gid).

DIRID_FONTS               20 Системные шрифты. Размещение %Windir%Fonts. Кстати, простое копирование файлов шрифтов в этот каталог не сделает доступным этот шрифт для ваших приложений. Как правильно установить шрифт из INF-скрипта, смотрите здесь.

DIRID_VIEWERS               21 Директория модулей программы QuickView. Расположение: MS Windows 95, 98, ME — %WinDir%SYSTEMVIEWERS; MS Windows NT 4.0 и выше — %SystemRoot%System32viewers

DIRID_COLOR               23 Директория, содержащая профили цветовых настроек мониторов. Типично — %Windir%system(32)COLOR

DIRID_APPS                24 Неизвестно, но для Windows NT 4.0 и выше, установленной на диск C: — это директория C:. Скорее всего, это аналог системной переменной %SystemDrive%

DIRID_SHARED               25 Та же %SystemRoot% или %WinDir%. Почему не «Program Files» — ума не приложу.

DIRID_BOOT                30 Корневая директория загрузочного диска. Обычно C:

DIRID_COMPBOOT               31 Корневая директория главного диска сжатого загрузочного диска. Только для MS
Windows 95, 98

DIRID_SYSTEM16        50 Системная директория для 16-битных программ (хотя, кажется, на эти правила Microsoft сама плевать хотела, т.к. все 16-битные программы валяются в system32), только для MS Windows NT 4.0 и выше, %SystemRoot%system

DIRID_SPOOL              51 Директория принтерного спула (кэша), только для MS Windows NT 4.0 и выше — %SystemRoot%system32spool

DIRID_SPOOLDRIVERS         52 Директория драйверов принтеров, только для MS Windows NT 4.x и выше — %SystemRoot%system32spooldriversw32x86

DIRID_USERPROFILE               53 Директория с профилем текущего пользователя. В MS Windows NT 4.0 — это %SystemRoot%Profiles%USERNAME%, в MS Windows 2000 и выше — это %SystemDrive%Documents and Settings%USERNAME%. В MS Windows 95, 98, ME — это, скорее всего, сама %WinDir%.

DIRID_LOADER               54 Только для систем NT. Путь к загрузочному каталогу, содержащему файлы ntldr или osloader.exe. В 99% случаев это C:

DIRID_PRINTPROCESSOR  55

Совет от Niks, участника чата @winsiders, столкнувшегося с кривым драйвером USB-модема и невозможностью запустить устройство.

Задача

В диспетчере устройств USB-модем с восклицательным знаком, и никакие пляски с бубном не помогают подсунуть правильный драйвер. Утилита pnputil показывает драйвер в списке, но удалить не может.

pnputil

В результате какого-то сбоя имя INF-файла не соответствует установленному драйверу.

Решение

Задача решается с помощью DISM в два этапа.

Этап 1 — Поиск INF-файла драйвера

Это можно делать в среде восстановления, но в работающей системе сподручнее.

DISM /online /Get-Drivers

Для каждого драйвера выводится два имени — опубликованное (published) и исходное (original), примерно так:

Published Name : oem92.inf
Original File Name : nvmtwu.inf

Теперь надо поискать исходное имя в папке %windir%System32DriverStoreFIleRepository и взять на заметку полный путь к INF-файлу.

Этап 2 — Удаление драйвера в среде восстановления

Если на первом этапе в листинге DISM не нашлось драйвера, надо попытаться получить список драйверов в среде восстановления:

DISM /Image:W: /Get-Drivers

Здесь W — буква раздела с Windows. Определиться с буквами дисков проще всего так.

Удаляется драйвер одной командой:

DISM /Image:W: /Remove-Driver /Driver:<полный путь к inf-файлу>

После удаления драйвера, загрузки в Windows и подключения USB-модема правильный драйвер установился сам, и устройство заработало нормально.

Резюме

Документация DISM по обслуживанию INF здесь, но в ней описано только удаление драйвера по опубликованному имени. Однако если с этим не справилась утилита pnputil, то и DISM не поможет. При этом pnputil не умеет удалять драйверы по пути.

Наконец, DISM может удалять драйверы только в среде восстановления, поэтому решение именно такое.

У меня эта проблема, когда я на устройстве и принтерах, и я пытаюсь загрузить этот конкретный путь.

Я думаю, что мой диск / биос только что капучил. Он как-то забыл, где системные пути похожи на% windir%.

Есть идеи, как решить эту проблему?

Это в продвинутых системных свойствах. Вы можете просто добавить c:windowssystem32 к пути или убедиться, что переменная% windir% установлена так же, как на скриншоте.

У меня была такая же проблема. Вот что я сделал:

Я напрямую открываю файл C:WindowsSystem32SystemPropertiesAdvanced.exe .

  1. Скопировано значение переменной Path в Notepad++
  2. Поиск / замена; с помощью r n (выберите режим расширенного поиска)
  3. Теперь я могу ясно видеть каждый пункт в отдельной строке. Я нашел несколько дубликатов, потому что определенное программное обеспечение переустанавливалось несколько раз. Что я заметил, у меня были повторяющиеся записи, как показано ниже:

    • C:PROGRA ~ 1 MI3EDC ~ 1 100 Tools Binn
    • C:Program Files Microsoft SQL Server 100 Инструменты Binn

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

Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками windows-7 path.

by Milan Stanojevic

Milan has been enthusiastic about technology ever since his childhood days, and this led him to take interest in all PC-related technologies. He’s a PC enthusiast and he… read more


Updated on March 3, 2022

  • Some Windows 10 users reported that they get the Windows can’t find the windir system32 systempropertiesadvanced.exe message while trying to install certain apps.
  • In order to solve this problem, you need to launch Windows in Safe Mode.
  • To be sure that your system is clean, we suggest you to perform a full system scan.
  • A System Restore might help, so check out the steps below for more details.

Windows cannot find windir system32 systempropertiesadvanced.exe

Windows cannot find windir system32 systempropertiesadvanced.exe error message can appear on any version of Windows and it can cause various issues. However, there’s a way to fix this issue, and in this article, we’re going to show you how to do it.

Windows cannot find windir system32 systempropertiesadvanced.exe message can be problematic, and speaking of problems, users reported some similar issues:

  • Windows cannot find windir system32 rundll32.exe, optionalfeatures.exe, msdt.exe, slui.exe, mmc.exe – Sometimes other files can be missing from System32 directory, but you should be able to fix the problem by using one of our solutions.
  • Advanced system settings Windows 7 not working – This issue can appear on almost any version of Widows, but you should be able to apply most of our solutions, regardless of the version of Windows you’re using.

Windows cannot find windir system32 systempropertiesadvanced.exe error, how to fix it?


  1. Use Safe Mode
  2. Check your antivirus
  3. Check the PATH variable
  4. Restart Windows Explorer
  5. Use Registry Editor
  6. Perform a System Restore
  7. Perform an in-place upgrade

Solution 1 – Use Safe Mode

Sometimes Windows cannot find windir system32 systempropertiesadvanced.exe error message can appear while trying to install certain applications or simply while trying to perform everyday tasks. However, several users reported that this error doesn’t appear in Safe Mode.

Safe Mode is great for troubleshooting since it runs with default settings and drivers, so if you keep having this problem, you might be able to troubleshoot it by entering Safe Mode. To do that, follow these steps:

  1. Press Windows Key + I to open the Settings app. Go to the Update & Security section.
    Windows cannot find windir system32 rundll32.exe
  2. Choose Recovery from the menu on the left. In the right pane, the Restart now button.
    Advanced system settings Windows 7 not working
  3. A list of options should appear. Navigate to Troubleshoot > Advanced options > Startup Settings.
  4. Click the Restart button to restart your PC.
  5. You’ll now see a list of options. Press the appropriate key to select the desired version of Safe Mode.

Once you enter Safe Mode, check if the issue still appears. If the problem is still there, you can use Safe Mode to fix it.

  • READ ALSO: What to do if Windows cannot find wuapp.exe

Solution 2 – Check your antivirus

According to users, sometimes Windows cannot find windir system32 systempropertiesadvanced.exe error can appear due to malware infection. That’s why it’s advised to perform a full scan of your system.

After making sure that your system is clean from malware, you need to check your antivirus. Although your antivirus is a crucial component, sometimes it can interfere with Windows, and that can lead to this and many other problems.

To fix this problem, users are suggesting to temporarily disable certain antivirus features and check if that helps. In some cases, you might even have to disable your antivirus entirely. If that doesn’t work, your next step would be to remove your antivirus. Even if you remove your third-party antivirus, Windows Defender will keep your system safe, so there’s no need to worry.

If the issue disappears once you remove your antivirus, you should consider switching to a different antivirus solution. There are many great antiviruses on the market, but if you want maximum protection that won’t interfere with your system, ESET might be the perfect antivirus for you.

⇒ Get ESET Antivirus

Solution 3 – Check the PATH variable

According to users, Windows cannot find windir system32 systempropertiesadvanced.exe message can occur if your PATH environment variable is modified. This can occur for various reasons, but you can manually fix this problem and change the PATH variable yourself. To do that, follow these steps:

  1. Press Windows Key + S and enter advanced. Choose View advanced system settings from the list of results. If that doesn’t work, just go to the C:WindowsSystem 32 directory and run systempropertiesadvanced.exe.
    Advanced system settings Windows 7 not working
  2. When System Properties window opens, click the Environment Variables button.
    Windows cannot find windir system32 msdt.exe
  3. Now double-click the Path variable to see its value.
    Advanced system settings Windows 7 not working
  4. Remove the duplicated values and click OK to save changes.
    Windows cannot find windir system32 slui.exe
  5. You also have another Path variable for your system, so you should remove duplicated entries from it as well.

Apparently, this issue occurs because the Path variable is too long, but by removing the duplicated entries, the issue should be resolved. To be on the safe side, it’s always a good idea to create a System Restore point before making any drastic system changes.

Some PC issues are hard to tackle, especially when it comes to corrupted repositories or missing Windows files. If you are having troubles fixing an error, your system may be partially broken.
We recommend installing Restoro, a tool that will scan your machine and identify what the fault is.
Click here to download and start repairing.

Several users reported that SQL Server 2012 caused this issue to appear by adding its entries to the Path variable, but after removing these values, the issue was resolved.

Solution 4 – Restart Windows Explorer

Sometimes Windows cannot find windir system32 systempropertiesadvanced.exe error can occur due to glitches with Windows Explorer. One way to temporarily fix this problem is to restart Windows Explorer. You can do that easily by following these steps:

  1. Open Task Manager. You can do that quickly by pressing Ctrl + Shift + Esc.
  2. When Task Manager opens, locate Windows Explorer on the process list, right-click it and choose Restart from the menu.
    Advanced system settings Windows 7 not working

After Task Manager restarts, check if the problem is still there. According to users, this is just a temporary solution, so it’s rather likely that the problem will reappear after a while.

Solution 5 – Use Registry Editor

As we already mentioned in one of our previous solutions, the cause for Windows cannot find windir system32 systempropertiesadvanced.exe can be your Path variable. In order to fix this problem, you need to modify this value and remove any unnecessary or duplicated values.

If you want, you can do that right from Registry Editor by following these steps:

  1. Press Windows Key + R and enter regedit. Now press Enter or click OK.
    Windows cannot find windir system32 mmc.exe
  2. When Registry Editor opens, navigate to the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment in the left pane.
  3. Right-click the Environment key and choose Export.
    Advanced system settings Windows 7 not working
  4. Enter the name for your backup, choose a save location and click the Save button. Once you create a backup, you can easily restore your registry if anything goes wrong. To do that, simply run the file you create in this step and the registry will be restored.
    Windows cannot find windir system32 rundll32.exe
  5. Now double-click the Path variable to see its contents.
    Advanced system settings Windows 7 not working
  6. Edit the Value date field and remove any duplicates or unnecessary entries. This can be an issue because the value is quite long and hard to read, so we advise you to be extra careful while editing it. Once you’re done, click the OK button to save changes.
    Windows cannot find windir system32 optionalfeatures.exe

After making these changes, the issue should be resolved and everything will start working again.

Read more about this topic

  • Windows cannot find: Fix this error for good [Full Guide]
  • Fix: Event ID 7023 Error in Windows 10 & 11 [& What Is]
  • LenovoVantageService High CPU Usage: 2 Methods to Fix it

Solution 6 – Perform a System Restore

If this problem started appearing recently, you might be able to solve it simply by performing a System Restore. In case you don’t know, System Restore allows you to revert any recent changes and restore your system.

If you’re getting Windows cannot find windir system32 systempropertiesadvanced.exe error, you might be able to fix the problem by doing the following:

  1. Press Windows Key + S and enter system restore. Choose to Create a restore point from the list.
    Windows cannot find windir system32 msdt.exe
  2. A new window will now appear. Click the System Restore button.
    Advanced system settings Windows 7 not working
  3. In System Restore window click Next.
    Windows cannot find windir system32 slui.exe
  4. Check Show more restore points option, if available. Choose the desired restore point and click Next.
    Advanced system settings Windows 7 not working
  5. Follow the instructions on the screen to finish the process.

Once you restore your system, check if the problem is still there.


Solution 7 – Perform an in-place upgrade

If other solutions didn’t fix your problem, your last option would be to perform an in-place upgrade. Basically, an in-place upgrade will reinstall Windows 10 while keeping all your files and applications. To perform an in-place upgrade, just do the following:

  1. Download Media Creation Tool and run it.
  2. When the Media Creation Tool starts, choose to Upgrade this PC now.
  3. Now select Download and install updates (recommended) and click Next. Keep in mind that this step isn’t mandatory, so you can skip it if you want.
  4. Follow the instructions on the screen. When you reach Ready to install screen, choose Change what to keep option.
  5. Be sure to select Keep personal files and apps option in order to keep all your files and applications.
  6. Follow the instructions on the screen to finish the process.

Once the process is finished, you’ll have a fresh version of Windows installed, and the problem should be completely resolved. If the issue is still there, we suggest performing a Windows 10 reset in order to fix the issue.

Windows cannot find windir system32 systempropertiesadvanced.exe message can be problematic, but we hope that you managed to fix this issue using the solutions from this article.

newsletter icon

Newsletter

by Milan Stanojevic

Milan has been enthusiastic about technology ever since his childhood days, and this led him to take interest in all PC-related technologies. He’s a PC enthusiast and he… read more


Updated on March 3, 2022

  • Some Windows 10 users reported that they get the Windows can’t find the windir system32 systempropertiesadvanced.exe message while trying to install certain apps.
  • In order to solve this problem, you need to launch Windows in Safe Mode.
  • To be sure that your system is clean, we suggest you to perform a full system scan.
  • A System Restore might help, so check out the steps below for more details.

Windows cannot find windir system32 systempropertiesadvanced.exe

Windows cannot find windir system32 systempropertiesadvanced.exe error message can appear on any version of Windows and it can cause various issues. However, there’s a way to fix this issue, and in this article, we’re going to show you how to do it.

Windows cannot find windir system32 systempropertiesadvanced.exe message can be problematic, and speaking of problems, users reported some similar issues:

  • Windows cannot find windir system32 rundll32.exe, optionalfeatures.exe, msdt.exe, slui.exe, mmc.exe – Sometimes other files can be missing from System32 directory, but you should be able to fix the problem by using one of our solutions.
  • Advanced system settings Windows 7 not working – This issue can appear on almost any version of Widows, but you should be able to apply most of our solutions, regardless of the version of Windows you’re using.

Windows cannot find windir system32 systempropertiesadvanced.exe error, how to fix it?


  1. Use Safe Mode
  2. Check your antivirus
  3. Check the PATH variable
  4. Restart Windows Explorer
  5. Use Registry Editor
  6. Perform a System Restore
  7. Perform an in-place upgrade

Solution 1 – Use Safe Mode

Sometimes Windows cannot find windir system32 systempropertiesadvanced.exe error message can appear while trying to install certain applications or simply while trying to perform everyday tasks. However, several users reported that this error doesn’t appear in Safe Mode.

Safe Mode is great for troubleshooting since it runs with default settings and drivers, so if you keep having this problem, you might be able to troubleshoot it by entering Safe Mode. To do that, follow these steps:

  1. Press Windows Key + I to open the Settings app. Go to the Update & Security section.
    Windows cannot find windir system32 rundll32.exe
  2. Choose Recovery from the menu on the left. In the right pane, the Restart now button.
    Advanced system settings Windows 7 not working
  3. A list of options should appear. Navigate to Troubleshoot > Advanced options > Startup Settings.
  4. Click the Restart button to restart your PC.
  5. You’ll now see a list of options. Press the appropriate key to select the desired version of Safe Mode.

Once you enter Safe Mode, check if the issue still appears. If the problem is still there, you can use Safe Mode to fix it.

  • READ ALSO: What to do if Windows cannot find wuapp.exe

Solution 2 – Check your antivirus

According to users, sometimes Windows cannot find windir system32 systempropertiesadvanced.exe error can appear due to malware infection. That’s why it’s advised to perform a full scan of your system.

After making sure that your system is clean from malware, you need to check your antivirus. Although your antivirus is a crucial component, sometimes it can interfere with Windows, and that can lead to this and many other problems.

To fix this problem, users are suggesting to temporarily disable certain antivirus features and check if that helps. In some cases, you might even have to disable your antivirus entirely. If that doesn’t work, your next step would be to remove your antivirus. Even if you remove your third-party antivirus, Windows Defender will keep your system safe, so there’s no need to worry.

If the issue disappears once you remove your antivirus, you should consider switching to a different antivirus solution. There are many great antiviruses on the market, but if you want maximum protection that won’t interfere with your system, ESET might be the perfect antivirus for you.

⇒ Get ESET Antivirus

Solution 3 – Check the PATH variable

According to users, Windows cannot find windir system32 systempropertiesadvanced.exe message can occur if your PATH environment variable is modified. This can occur for various reasons, but you can manually fix this problem and change the PATH variable yourself. To do that, follow these steps:

  1. Press Windows Key + S and enter advanced. Choose View advanced system settings from the list of results. If that doesn’t work, just go to the C:WindowsSystem 32 directory and run systempropertiesadvanced.exe.
    Advanced system settings Windows 7 not working
  2. When System Properties window opens, click the Environment Variables button.
    Windows cannot find windir system32 msdt.exe
  3. Now double-click the Path variable to see its value.
    Advanced system settings Windows 7 not working
  4. Remove the duplicated values and click OK to save changes.
    Windows cannot find windir system32 slui.exe
  5. You also have another Path variable for your system, so you should remove duplicated entries from it as well.

Apparently, this issue occurs because the Path variable is too long, but by removing the duplicated entries, the issue should be resolved. To be on the safe side, it’s always a good idea to create a System Restore point before making any drastic system changes.

Some PC issues are hard to tackle, especially when it comes to corrupted repositories or missing Windows files. If you are having troubles fixing an error, your system may be partially broken.
We recommend installing Restoro, a tool that will scan your machine and identify what the fault is.
Click here to download and start repairing.

Several users reported that SQL Server 2012 caused this issue to appear by adding its entries to the Path variable, but after removing these values, the issue was resolved.

Solution 4 – Restart Windows Explorer

Sometimes Windows cannot find windir system32 systempropertiesadvanced.exe error can occur due to glitches with Windows Explorer. One way to temporarily fix this problem is to restart Windows Explorer. You can do that easily by following these steps:

  1. Open Task Manager. You can do that quickly by pressing Ctrl + Shift + Esc.
  2. When Task Manager opens, locate Windows Explorer on the process list, right-click it and choose Restart from the menu.
    Advanced system settings Windows 7 not working

After Task Manager restarts, check if the problem is still there. According to users, this is just a temporary solution, so it’s rather likely that the problem will reappear after a while.

Solution 5 – Use Registry Editor

As we already mentioned in one of our previous solutions, the cause for Windows cannot find windir system32 systempropertiesadvanced.exe can be your Path variable. In order to fix this problem, you need to modify this value and remove any unnecessary or duplicated values.

If you want, you can do that right from Registry Editor by following these steps:

  1. Press Windows Key + R and enter regedit. Now press Enter or click OK.
    Windows cannot find windir system32 mmc.exe
  2. When Registry Editor opens, navigate to the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment in the left pane.
  3. Right-click the Environment key and choose Export.
    Advanced system settings Windows 7 not working
  4. Enter the name for your backup, choose a save location and click the Save button. Once you create a backup, you can easily restore your registry if anything goes wrong. To do that, simply run the file you create in this step and the registry will be restored.
    Windows cannot find windir system32 rundll32.exe
  5. Now double-click the Path variable to see its contents.
    Advanced system settings Windows 7 not working
  6. Edit the Value date field and remove any duplicates or unnecessary entries. This can be an issue because the value is quite long and hard to read, so we advise you to be extra careful while editing it. Once you’re done, click the OK button to save changes.
    Windows cannot find windir system32 optionalfeatures.exe

After making these changes, the issue should be resolved and everything will start working again.

Read more about this topic

  • Windows cannot find: Fix this error for good [Full Guide]
  • Fix: Event ID 7023 Error in Windows 10 & 11 [& What Is]
  • LenovoVantageService High CPU Usage: 2 Methods to Fix it

Solution 6 – Perform a System Restore

If this problem started appearing recently, you might be able to solve it simply by performing a System Restore. In case you don’t know, System Restore allows you to revert any recent changes and restore your system.

If you’re getting Windows cannot find windir system32 systempropertiesadvanced.exe error, you might be able to fix the problem by doing the following:

  1. Press Windows Key + S and enter system restore. Choose to Create a restore point from the list.
    Windows cannot find windir system32 msdt.exe
  2. A new window will now appear. Click the System Restore button.
    Advanced system settings Windows 7 not working
  3. In System Restore window click Next.
    Windows cannot find windir system32 slui.exe
  4. Check Show more restore points option, if available. Choose the desired restore point and click Next.
    Advanced system settings Windows 7 not working
  5. Follow the instructions on the screen to finish the process.

Once you restore your system, check if the problem is still there.


Solution 7 – Perform an in-place upgrade

If other solutions didn’t fix your problem, your last option would be to perform an in-place upgrade. Basically, an in-place upgrade will reinstall Windows 10 while keeping all your files and applications. To perform an in-place upgrade, just do the following:

  1. Download Media Creation Tool and run it.
  2. When the Media Creation Tool starts, choose to Upgrade this PC now.
  3. Now select Download and install updates (recommended) and click Next. Keep in mind that this step isn’t mandatory, so you can skip it if you want.
  4. Follow the instructions on the screen. When you reach Ready to install screen, choose Change what to keep option.
  5. Be sure to select Keep personal files and apps option in order to keep all your files and applications.
  6. Follow the instructions on the screen to finish the process.

Once the process is finished, you’ll have a fresh version of Windows installed, and the problem should be completely resolved. If the issue is still there, we suggest performing a Windows 10 reset in order to fix the issue.

Windows cannot find windir system32 systempropertiesadvanced.exe message can be problematic, but we hope that you managed to fix this issue using the solutions from this article.

newsletter icon

Newsletter

Очевидно, что у каждого пользователя персонального компьютера, время от времени возникает необходимость подключить к своей станции какое-либо устройство. Причина, по которой это происходит, нас сейчас не сильно то и интересует, это может быть и хорошо знакомый многим апгрейд (в целях увеличения производительности отдельных узлов, и как следствие общей производительности системы), это может быть и просто добавление нового оборудования для расширения функционала существующей конфигурации, как, например, в случае с подключением нового игрового манипулятора, это может быть и потребность в использовании данных с флеш-накопителя. Вне зависимости от того, каким именно образом мы подключаем новое устройство, операционная система Windows вынуждена реагировать на появление нового оборудования, производя определенные манипуляции для обеспечения поддержки нового оборудования на программном уровне. Во многих операционных системах для обеспечения программного взаимодействия с устройствами используются интерфейс между оборудованием и программным слоем под названием драйвер.

Драйвер (Driver) — программное обеспечение, при помощи которого операционная система и работающие в её составе программные модули, получают доступ к аппаратному или логическому устройствам.

Именно поэтому операционная система пытаемся всеми доступными ей методами обеспечить функционирование устройства в своей среде, для этого производится попытка установки для вновь подключаемого устройства соответствующего драйвера, дабы тем самым предоставить функции нового устройства для доступа программам пользовательского режима и коду режима ядра, ведь без этого самого пресловутого драйвера оборудование в системе работать попросту не сможет.
Я не случайно упомянул в определении логические устройства, поскольку существует отдельная категория драйверов, которые не занимаются обслуживанием аппаратного обеспечения, а интегрируются для расширения реализации (расширения, дополнения) функциональных особенностей различных модулей системы. Но кого сейчас удивишь установкой драйверов? Этот процесс настолько уже хорошо знаком всем пользователям ПК по многолетней практике, что некоторые, я уверен, могут делать это с закрытыми глазами :) Но задумывались ли мы о деталях этого процесса, размышляли ли когда-нибудь над алгоритмом установки драйвера? Задавались ли вопросом, какие именно действия выполняет операционная система в момент подключения нового устройства и инсталляции драйверов?

Согласитесь, что с точки зрения пользователя процесс установки драйвера в Windows, в большинстве случаев, выглядит достаточно прозаично. В системном трее появляется привычный анимированный значок мастера установки, и система через некоторое время может выдать отчет об успешном, либо неудачном завершении процедуры инсталляции в системе драйвера нового устройства. Более того, зачастую мастер установки кроме этой самой иконки в трее вовсе не выдает никаких визуальных подтверждений о попытках инсталляции нового устройства, при этом «тихо» добавляя новое оборудование в список устройств и (в случае неудачи) маркируя его специальным значком в диспетчере устройств, предлагая пользователю в ручном режиме продолжить конфигурирование оборудования. Все эти внешние процессы, хорошо уже знакомые как Вам так и мне, в той или ином виде присутствуют во всех версиях операционных систем Windows практически с момента появления этой операционной системы, незначительно отличаясь между собой лишь в деталях. Они стали настолько знакомыми и привычными, что я даже никогда и не задумывался, а что же происходит «по ту сторону экрана», в недрах операционной системы, что скрывается под этой мнимой простотой? Как Вы увидите далее, установка драйвера Windows для физического либо логического устройства скрывает под собой довольно сложные и чрезвычайно интересные процессы. Алгоритм установки драйвера в Windows можно разбить на перечисленные ниже ключевые глобальные задачи:

  • Копирование двоичного файла драйвера в соответствующий каталог в системе;
  • Регистрация драйвера в системе Windows с указанием метода загрузки;
  • Добавление необходимой информации в системный реестр;
  • Копирование/установка связанных вспомогательных компонентов из пакета драйвера;

Помимо основных задач, выполняемых в рамках алгоритма установки драйвера в Windows, неплохо было бы классифицировать и условия, по которым стартует процесс установки драйвера Windows:

  • Пользователь инсталлирует в выключенный компьютер новое устройство. В этом случае, сам процесс обнаружения нового устройства и инсталляции драйвера начинается уже на этапе загрузки операционной системы.
  • Пользователь с правами локального администратора, при помощи оснастки «Диспетчер устройств» инициирует установку либо обновление драйвера для какого-либо уже установленного устройства.
  • Пользователь «на ходу» подключает к работающему компьютер новое устройство. В этом случае речь идет об определенной категории устройств, которые могут подключаться «на лету», таких как устройства с внешним интерфейсом eSata, USB и прч. Ведь Вы же не будете инсталлировать внутреннюю видеокарту, когда питание подано на слоты PCIe? Я лично такого пока еще не вытворял :)
  • Пользователь самостоятельно запускает программу установки комплекта пакета драйвера из-под учетной записи с правами локального администратора. Такой способ может использоваться как для установки драйверов для физических устройств, которые поддерживают стандарт Plug and Play, так и для установки не-PnP (legacy) драйверов, драйверов логических устройств, которые не могут быть автоматически обнаружены системой и которые не могут быть проинсталлированы иначе как в ручном режиме. Характерным примером могут быть антивирусы или виртуальные машины, которые инсталлируют свои драйвера (логических устройств) в систему.
  • Пользователь щелкает правой кнопкой мыши на .inf-файле в директории с драйвером и выбирает пункт Установить из-под учетной записи с правами локального администратора.

Но что представляет из себя сам пакет драйвера? Ведь, как мы неоднократно видели, это целый набор файловом абсолютно различного, на первый взгляд, назначения. Без более углубленного обзора структуры инталляционного пакета установки драйвера нам будет сложно понять и сам алгоритм установки драйвера, поэтому приведем общие составляющие:

  • .inf-файл(ы). Ключевой компонент установочного пакета драйвера — файл, описывающий процесс инсталляции драйвера. inf-файл разделен на секции и состоит из инструкций, указывающих системе на то, как именно устанавливается драйвер: они описывают устанавливаемое устройство, исходное и целевое местонахождение всех компонентов драйвера, различные изменения, которые необходимо внести в реестр при установке драйвера Windows, информацию о зависимостях драйвера и прочее. .inf-файлы связывают физическое устройство с драйвером, контролирующим данное устройство.
  • Двоичный файл(ы) драйвера. Пакет, как минимум, должен содержать .sys— или .dll-файл ядра драйвера. Фактически один-единственный .sys-файл (в крайнем случае) может быть установлен (с оговорками) в ручном режиме через правку реестра.
  • Исполняемые файлы установки. Обычно это всем хорошо уже знакомые утилиты инсталляции, которые имеют имена setup.exe, install.exe и некоторые другие.
  • Исполняемые файлы удаления. Обычно это утилиты деинсталляции, которые имеют имена uninstall.exe.
  • Файл(ы) дополнительных процедур и библиотек. Обычно это вспомогательные библиотеки формата .dll, соинсталляторы.
  • .cat-файл(ы). Файл каталога, подписанный цифровой подписью. Данные файлы содержат цифровые подписи каталогов и играют роль сигнатуры для файлов пакета, с помощью которой пользователь может определить происхождение пакета и проверить целостность файлов пакета драйвера. Требуются в 64-битных версиях Windows, начиная с Vista и более поздних и рекомендуются для всех остальных.
  • Модули управления пользовательского режима. Обычно это различные командные апплеты, работающие в пользовательском режиме, такие как ATI Catalist Control Center, VIA HD Audio Desk, Realtek HD Audio Control Panel и аналогичные.
  • Файлы справок. Куда же без них то?

Термины и определения

В данной статье я приведу описание только одного метода установки, который, в любом случае, описывает практически все этапы алгоритма установки драйвера в Windows, которые применимы и к другим способам. И разговор у нас сейчас пойдет о ситуации, когда пользователь вставляет во внутренний разъем выключенного компьютера новое оборудование, например видеокарту. Но для начала введем некоторые, необходимые нам в процессе изучения алгоритма установки драйвера, определения.
Менеджер (диспетчер) Plug and Play (PnP Manager, PnP Менеджер) — облако кода режима ядра и пользовательского режима, отвечающее за добавление, распознавание, удаление устройств в системе. Блок режима ядра взаимодействует с остальными компонентами системы в процессе загрузки/установки программного обеспечения, необходимого для обслуживания имеющихся в системе устройств. Блок пользовательского режима (%Windir%System32umpnpmgr.dll, запускается в контексте главного системного процесса svchost.exe) отвечает за взаимодействие с пользователем в ситуациях, требующих установки новых драйверов или настройки рабочих параметров в уже инсталлированных. Отвечает за назначение и последующее распределение аппаратных ресурсов, таких как прерывания (IRQ), порты ввода-вывода, каналы прямого доступа к памяти (DMA) и адреса памяти. Имеет функционал определения драйвера, требуемого для поддержки определенного устройства и функционал загрузки/инсталляции данного драйвера. Умеет распознавать новые устройства, реагировать на их подключение и отключение. Является частью кода исполнительной подсистемы Windows.

Перечисление устройств

Целиком стадию загрузки с самого ее начала описывать смысла нет, и мы начнем с только с интересующего нас этапа, на котором модуль Winload(.efi) загружает ядро операционной системы Windows 7 из файла ntoskrnl.exe. Ядро запускает PnP менеджер, являющийся частью исполнительной подсистемы. PnP менеджер стартует процесс перечисления устройств с корневого устройства, драйвера виртуальной шины под названием ROOT (Корень), который олицетворяет собой всю систему и представляет из себя драйвер шины вообще для всех PnP- и не-PnP-устройств, а так же HAL (уровня аппаратных абстракций). HAL на этом этапе функционирует как драйвер шины, который перечисляет устройства, напрямую подключенные к материнской плате. Однако, HAL вместо фактического перечисления полагается на описание оборудования, уже присутствующее в реестре. Цель HAL на данном этапе — обнаружить первичные шины, такие как PCI. Драйвер первичной шины PCI, в свою очередь, перечисляет устройства, подключенные к данной шине, находит другие шины, для которых PnP менеджер тут же загружает драйвера. Эти драйвера шин, в свою очередь, обнаруживают уже устройства на своих шинах. Данный рекурсивный процесс перечисления, загрузки драйверов и последующего перечисления, продолжается пока все устройства в системе не будут обнаружены и сконфигурированы. В процессе перечисления PnP менеджер строит дерево устройств (device tree), которое однозначно описывает отношения между всеми устройствами системы. Узлы этого дерева, именуемые devnodes (сокр. от «узлы устройств»), содержат информацию об объекте устройства, который, в свою очередь, подробно описывает устройство.
Записи всех устройств, которые были обнаружены с момента инсталляции системы, хранятся в кусте реестра HKLMSYSTEMCurrentControlSetEnum. Подключи этого куста описывают устройства в следующем формате:

HKLMSYSTEMCurrentControlSetEnum

                                   Enumerator

                                              DeviceID

                                                       InstanceID

где:

  • Enumerator — наименование драйвера шины. Может принимать значения: ACPI, DISPLAY, HDAUDIO, HID, HDTREE, IDE, PCI, PCIIDE, Root, STORAGE, SW, UMB, USB, USBSTOR и другие;
  • DeviceID — уникальный идентификатор для данного типа устройств;
  • InstanceID — уникальный идентификатор различных экземпляров одного и того же устройства.

Дело в том, что драйвер шины, к которой подключено устройство, запрашивает у устройства различные параметры (идентификатор производителя, устройства, ревизии и прч) и формирует так называемый аппаратный идентификатор (HardwareID), который однозначно описывает устройство и представляет из себя строку параметров, разделенных знаками & и состоящую из следующих частей:

  • Префикс, описывающий шину, к которой подключено устройство.
  • Идентификатор устройства. Состоит из нескольких частей, таких как идентификатор производителя, идентификатор продукта (модели), ревизия устройства.

HardwareID — идентификационная строка, зависящая от параметров устройства (производитель, модель, ревизия, версия и прч), которую Windows использует для сопоставления устройства с .inf-файлом драйвера.

Типичная структура HardwareID:

PCIVEN_10DE&DEV_1341&SUBSYS_2281103C&REV_A2

Помимо HardwareID, устройству назначается параметр(ы) CompatibleID, который имеет схожий формат, однако содержит лишь более общие значения, не содержащие специфичных для какого-либо устройства параметров (некоторые идентификаторы устройства) и необходимый для инициализации более широкого круга совместимых устройств.

Идентификаторы HardwareID и CompatibleID используются кодом исполнительной подсистемы Windows для поиска драйвера устройства.

Обнаружение драйверов

Если на этапе перечисления устройств и загрузки драйверов, функциональный драйвер шины, на которую подключено новое устройство, информирует PnP менеджер об изменениях в подключенных дочерних устройствах. PnP менеджер режима ядра проверяет, сопоставлен ли с устройством драйвер, для этого он запрашивает драйвер шины, на которую подключено новое устройство, и получает идентификаторы HardwareID и, опционально, CompatibleID устройства. PnP менеджер режима ядра специальным событием информирует PnP менеджер пользовательского режима о том, что данное устройство требует инсталляции, передавая ему полученные идентификаторы. PnP менеджер пользовательского режима сначала пробует автоматически установить устройство без вмешательства пользователя. Для этого PnP менеджер пользовательского режима запускает утилиту rundll32.exe для запуска мастера установки драйверов устройств (%Windir%System32Newdev.dll).

Установка нового устройства newdev.exe

Мастер установки драйверов устройств инициирует поиск подходящего для устройства драйвера по информации из всех inf-файлов системы, расположенных в следующих доверенных системных расположениях:

  • Хранилище драйверов;
  • Центр обновления Windows;
  • Системный каталог INF-файлов;

Для вышеописанных целей поиска и установки драйвера используются функции библиотек setupapi.dll (функции поддержки инсталляции) и cfgmgr32.dll (менеджер конфигурации). В процессе поиска используются полученные уже на данный момент идентификаторы HardwareID и (опционально) CompatibleID, значения которых описывают все возможные варианты идентификации оборудования в файле инсталляции драйвера, то есть inf-файле. Значения идентификаторов устанавливаемого устройства сравниваются с теми, что описаны в секциях Models зарегистрированных в системе inf-файлов. Списки идентификаторов упорядочены, поэтому более специфичные описатели оборудования представлены в списках первыми. Если совпадения идентификаторов были найдены в нескольких inf-файлах, более точное совпадение считается предпочтительным по отношению к менее точному совпадению, подписанные inf-файлы предпочитаются неподписанным, и подписанные позднее inf-файлы предпочитаются подписанным ранее. Если совпадение на основе HardwareID не найдено, то используются CompatibleID, в случае наличия, конечно же. Если совпадение не найдено на основе CompatibleID, мастер установки оборудования может вывести приглашение на указание местоположения свежего драйвера оборудования. Давайте более подробно рассмотрим все указанные источники информации о драйверах.

Хранилище драйверов

Мастер установки драйверов пытается обнаружить подходящий inf-файл в системном хранилище драйверов, располагающемся в каталоге %Windir%System32DriverStore, который содержит все без исключения драйвера системы, входящие в состав дистрибутива Windows, полученные через службу «Windows Update», либо инсталлированные в систему пользователем.

Хранилище драйверов — защищенное системное расположение, каталог, предназначающийся для хранения всех пакетов драйверов, которые когда-либо инсталлировались в системе.

Хранилище драйверов было впервые введено в Windows Vista. Перед установкой любого драйвера в систему, сначала специализированный код проверяет цифровую подпись драйвера, затем синтаксис inf-файлов драйвера, затем привилегии текущего пользователя, только после этого помещает все компоненты драйвера в системное хранилище драйверов. А вот затем уже драйвер, находящийся в хранилище драйверов, может быть использован для установки устройств в системе. Поскольку процедура помещения драйвера в хранилище достаточно проработана, хранилище драйверов и является самым доверенным источником информации о драйверах.

Системный каталог INF-файлов

Параллельно система ищет драйвер в системном расположении, описываемом значением параметра DevicePath, находящемся в ветке реестра HKLMSoftwareMicrosoftWindowsCurrentVersion. Обычно параметр имеет значение %SystemRoot%inf, что в большинстве систем эквивалентно местоположению C:Windowsinf.

INF-файл

Хотелось бы сделать небольшое отступление и отдельно поговорить об информационных файлах пакета драйвера. inf-файл является одним из ключевых компонентов комплекта драйверов. В нем хранится последовательность операций по установке и удалению драйвера, описанная специальными директивами, указывающими на расположение файлов функционального драйвера. Файл содержит команды, которые добавляют в реестр информацию, отвечающую за перечисление (Enum) драйвера и его класса (Class), и могут содержать указания для мастера установки оборудования по запуску так называемых основных установщиков (Class Installer, Установщик класса) и дополнительных установщиков (CoInstaller, Cоинсталлятор) для класса устройств и непосредственно устройства. Дополнительно inf-файл определяет тип, производителя, модель устройства, класс драйвера, необходимые файлы и ресурсы.

Соинсталлятор (по структуре обычная DLL) — дополнительный инсталлятор, вызываемый на этапе инсталляции, который выполняет специфичные для подкласса или устройства шаги установки, такие как подготовка инфраструктуры для работы драйвера в системе (например, установка пакета NET.Framework), вывод конфигурационных диалоговых окон, которые позволяют пользователю указать настройки для конкретного устройства.

Немаловажная особенность соинсталляторов заключается в том, что они, в случае необходимости выполняют привязку экземпляров нового устройства к требуемым для работы протоколам. Это, к примеру, может касаться разного рода коммуникационных устройств, которым требуются для работы различные протоколы и транспорты, такие как ndis, pppoe, tcpip, tcpip6, smb, netbt.
В .inf-файле дополнительно описываются операции распаковки, копирования, запуска, переименования файлов, добавления и удаления ключей в реестре и многое другое.
Однако вернемся к главному алгоритму установки драйвера в Windows. В случае, когда установщик драйверов устройств не нашел подходящих драйверов в перечисленных выше локациях, система маркирует устройство как неопознанное.

Неопознанное устройство

При этом пользователю предлагается самостоятельно продолжить установку устройства через апплет Диспетчер устройств. После того как пользователь самостоятельно выбирает устройство и указывает местоположение файлов драйвера, алгоритм установки драйвера продолжает свою работу и следующим этапом у него стартует проверка цифровой подписи драйвера.

Проверка цифровой подписи драйвера

Дело в том, что драйвер как часть кода режима ядра, является достаточно критичным компонентом операционной системы, и любые ошибки, допущенные разработчиком в коде драйвера, легко могут привести к серьезным сбоям (BSOD) в системе. С некоторого времени Microsoft достаточно трепетно относится к качеству кода драйверов, и в связи с этим в операционные системы Windows были введены такие механизмы как цифровая подпись драйвера и системная политика подписи драйверов.

Цифровая подпись драйвера — строка данных переменной длины, которая в определенной мере является гарантом того, что код драйвера был создан надежным источником и не подвергался несанкционированным модификациям.

Следующим шагом часть кода PnP менеджера, работающая в пользовательском режиме, проверяет системную политику подписания драйверов. Если системная политика предписывает коду ядра блокировать или предупреждать об инсталляции неподписанных драйверов, то PnP менеджер парсит inf-файл драйвера на предмет наличия директивы CatalogFile, указывающей на файл каталога (файл с расширением .cat), содержащий цифровую подпись пакета драйвера.

Файл каталога (.cat) — специальный файл, который играет роль цифровой подписи для всего пакета драйвера, потому как отдельно каждый файл, входящий в комплект пакета драйвера, не подписывается. Исключение составляют лишь двоичные файлы драйверов ядра этапа загрузки, но их проверяет отдельный код ядра.

Для тестирования драйверов и их подписания была сформирована лаборатория Microsoft Windows Hardware Quality Lab (WHQL), обстоятельно тестирующая драйвера, поставляемые с дистрибутивами Windows, а так же драйвера от крупных поставщиков оборудования. Для всех остальных разработчиков драйверов предусмотрены процедуры получения возможности самостоятельно подписывать драйвера на платной основе. Когда драйвер проходит все тесты WHQL, он становится «подписанным». Это означает, что для драйвера WHQL формирует хэш, или уникальную сигнатуру, однозначно идентифицирующую файлы драйвера, и затем подписывает ее с применением криптографических алгоритмов при помощи специального закрытого ключа Microsoft, используемого для подписания драйверов. Подписанный хэш помещается в каталоговый файл (.cat-файл), который размещается непосредственно в директории пакета драйвера.
В процессе инсталляции драйвера, PnP менеджер пользовательского режима извлекает сигнатуру драйвера из .cat-файла, расшифровывает сигнатуру используя публичный ключ Microsoft и сравнивает результирующий хэш с хэшем файла инсталлируемого драйвера. Если хэши совпадают, драйвер маркируется как прошедший WHQL тестирование. Если сигнатуру не удается проверить, PnP менеджер действует в соответствии с настройками системной политики подписи драйверов, либо запрещая инсталляцию драйвера, либо все же позволяя инсталлировать драйвер.

Создание резервной копии

Довольно неплохая стратегия Windows создавать точку восстановления перед добавлением в систему драйверов нового устройства. Связано это, в первую очередь, с тем, что драйвер режима ядра, содержащий ошибку, может являться причиной полной неработоспособности системы, и как потом с этой системой быть? Даже не смотря на все подписи и проверки, пользователь должен иметь возможность отката конфигурации в случае, например, когда ему что-то после установки не понравилось.

Инсталляция драйвера

На этом этапе пакет драйвера стороннего разработчика развертывается в системное хранилище драйверов. Затем, система выполняет фактическую инсталляцию драйвера из хранилища драйверов, которая производится посредством утилиты %Windir%System32drvinst.exe. На этом этапе происходят следующие события:

  • inf-файл драйвера копируется в специализированную папку %Windir%/inf. Для драйверов сторонних разработчиков характерно переименование файла в OEMx.inf, где x — порядковый номер inf-файла в директории.
  • Код операционной системы фиксирует факт инсталляции inf-файла в реестре.
  • Создается узел устройства (devnode) в реестре по пути HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnum<Enumerator><device id><instance id>, который содержит подробную информацию об устройстве.
  • Двоичные файлы драйвера копируются в целевую папку %Windir%System32DRIVERS и, возможно, другие целевые папки. Обновляются разделы реестра.
  • Формируется ключ реестра, соответствующий драйверу: HKLMSYSTEMCurrentControlSetServicesимя_драйвера. Формируются параметры ключа.
  • Формируется ключ реестра, отвечающий за логгирование событий драйвера, размещающийся в ветке HKLMSYSTEMCurrentControlSetServicesEventLogSystemимя_драйвера.
  • PnP менеджер вызывает процедуру DriverEntry для каждого установленного только что драйвера. Затем PnP менеджер режима ядра пытается «запустить» драйвер, подгружая его в память и вызывая процедуру AddDevice драйвера для информирования самого драйвера о присутствии устройства, для которого он был загружен.

Расположение информации о драйверах

Помимо описания самого алгоритма установки драйвера в Windows, хотелось бы выделить отдельный раздел и посвятить его описанию возможных мест размещения информации о драйверах в файловой системе и реестре. С практической точки зрения информация эта призвана упростить ручное редактирование в случае возникновения каких-либо фатальных сбоев. Ниже перечислены местоположения, в которых можно заметить следы присутствия информации о драйверах.

Общие журналы драйверов

В системе присутствует некоторое количество журналов, которые могут помочь с различными проблемами относительно драйверов.

  • %Windir%setupact.log — содержит сообщения отладки от инсталлятора драйверов режима ядра, который представляет собой Win32 DLL, сопровождающую процесс установки устройства;
  • %Windir%infsetupapi.app.log — содержит сообщения процесса инсталляции приложений;
  • %Windir%infsetupapi.dev.log — содержит сообщения процесса инсталляции устройств;

Журнал драйвера

Если Вы используете Диспетчер пакетов (Package Manager, pkgmgr) для инсталляции/деинсталляции пакета, который (в свою очередь) инсталлирует, обновляет, либо деинсталлирует драйвер, то у Вас есть возможность включить (с целью отладки) создание специального лог-файла drivers.log, который будет содержать только ошибки, специфичные для конкретного драйвера. Для создания этого журнала, создайте/задайте следующий ключ реестра, и затем запустите pkgmgr снова. После этого, в директории, откуда был запущен pkgmgr, будет создан файл drivers.log.
Ветка: HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionDevice Installer
Ключ: DebugPkgMgr
Тип: DWord
Значение: 1

%Windir%inf

В этом каталоге хранятся всё inf-файлы. Как было уже сказано выше, после установки стороннего драйвера в систему, его inf-файл переименовывается в OEMx.inf, поэтому в директории можно увидеть целую серию подобных файлов. Код операционной системы запоминает факт инсталляции inf-файла в реестре.

%Windir%System32DRIVERS

Это директория в файловой системе Windows, где размещаются непосредственно файлы драйверов. В современных операционных системах, а я говорю сейчас о Windows Vista и более поздних, драйвера в данной директории имеют расширения .sys в подавляющем своем большинстве, реже встречаются dll-файлы, однако общего смысла это не меняет, поскольку, вне зависимости от расширения, все они идентичны по структуре .dll-файлам. В более ранних операционных системах встречались такие форматы как .drv и .vxd.

%Windir%System32DriverStore

Системная коллекция драйверов, которая предназначается для размещения всех без исключения драйверов, которые проходили через Вашу систему. Используется начиная с Windows Vista. Перед установкой любого драйвера в операционную систему, сначала специализированный код проверяет подпись драйвера, затем синтаксис файлов inf-файла драйвера, затем привилегии текущего пользователя, только после этого добавляет все компоненты драйвера в системную коллекцию. И только после этого драйвер может быть использован в системе для инсталляции устройств без какого-либо вмешательства пользователя.

HKLMSYSTEMCurrentControlSetEnum

Куст реестра, содержащий информацию об устройствах, имеющихся в системе. PnP менеджер создает здесь ключ для каждого устройства в формате HKLMSYSTEMCurrentControlSetEnumEnumeratordeviceID. где Enumerator — это описанный выше в статье идентификатор шины, полученный на этапе перечисления устройств, deviceid — идентификатор типа устройств. Ключ содержит следующую информацию: описание устройства, аппаратные идентификаторы (Hardware ID), идентификаторы совместимых устройств (Compatible ID) и требования к ресурсам. Куст зарезервирован для использования исключительно кодом операционной системой, поэтому пользовательским приложениям и драйверам не рекомендуется напрямую взаимодействовать с ним, предлагается использовать документированные системные функции.

HKLMSYSTEMCurrentControlSetControl

Куст реестра, содержащий информацию о разных параметрах конфигурации драйверов на этапе запуска операционной системы. Содержит такие важные ключи как:

  • Class содержит информацию о классах инсталляции устройств, которые используются для группировки устройств, конфигурируемых и устанавливаемых схожим образом. Для каждого класса инсталляции в составе этого ключа имеется ключ, имя которого совпадает с именем GUID соответствующего класса инсталляции.
  • CoDeviceInstallers содержит информацию о соинсталляторах класса
  • DeviceClasses содержит информацию об интерфейсах устройств, зарегистрированных в системе. любой драйвер, который хочет взаимодействовать в системе с программами режима пользователя, должен предоставить интерфейс. Класс интерфейса устройства предоставляет функциональные возможности устройства и его драйвера другим системным компонентам и приложениям режима пользователя.

HKLMSYSTEMCurrentControlSetServices

Куст реестра, который используется для размещения информации обо всех сервисах (драйверах) в системе. Каждый системный драйвер размещает достаточно важную глобальную информацию о себе в подключах вида HKLMSYSTEMCurrentControlSetServices<Имя_драйвера>, которая используется драйвером в процессе инициализации на этапе загрузки системы. Куст активно используется PnP менеджером для передачи параметров при вызове процедуры инициализации драйвера.
В этом кусте размещаются такие элементы:

  • ImagePath — содержит полный путь в двоичному файлу (образу) драйвера. программа инсталляции заполняет это значение на основе данных из inf-файла пакета драйвера;
  • Parameters — хранит индивидуальную информацию драйвера, заполняется на основе данных, размешенных в inf-файле пакета драйвера;
  • Performance — информация для мониторинга производительности устройства, контролируемого драйвером. Указывает имя DLL мониторинга производительности и имена функций, экспортируемых данной DLL. Заполняется на основании данных, полученных из inf-файла;

HKLMSYSTEMCurrentControlSetHardwareProfiles

Куст реестра, который содержит информацию об аппаратных профилях системы и предназначен для поддержки данной технологии. Аппаратный профиль это всего-лишь набор изменений в стандартной аппаратной конфигурации и конфигурации сервисов (original configuration), загружаемых при старте системы. Содержит специфические изменения исходного, основного профиля оборудования, сконфигурированного в двух разделах реестра: HKLMSOFTWARE и HKLMSYSTEM.

Понравилась статья? Поделить с друзьями:
  • Неправильный пароль при входе в windows на ноутбуке windows
  • Неправильный пароль при входе в windows 10 что делать
  • Неправильный пароль при входе в windows 10 хотя ввожу верный пароль
  • Неправильный пароль при входе в windows 10 после обновления
  • Неправильный пароль при входе в windows 10 как войти