Совет от Niks, участника чата @winsiders, столкнувшегося с кривым драйвером USB-модема и невозможностью запустить устройство.
Задача
В диспетчере устройств USB-модем с восклицательным знаком, и никакие пляски с бубном не помогают подсунуть правильный драйвер. Утилита pnputil показывает драйвер в списке, но удалить не может.
В результате какого-то сбоя имя INF-файла не соответствует установленному драйверу.
Решение
Задача решается с помощью DISM в два этапа.
Этап 1 — Поиск INF-файла драйвера
Это можно делать в среде восстановления, но в работающей системе сподручнее.
DISM /online /Get-Drivers
Для каждого драйвера выводится два имени — опубликованное (published) и исходное (original), примерно так:
Published Name : oem92.inf Original File Name : nvmtwu.inf
Теперь надо поискать исходное имя в папке %windir%\System32\DriverStore\FIleRepository и взять на заметку полный путь к 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 может удалять драйверы только в среде восстановления, поэтому решение именно такое.
Александр Сергеев
Вадим, ваша статья только что помогла починить мне компьютер!
Установил драйвер на NVMe контроллер и win10 перестала загружаться, даже в безопасном режиме, восстановление почему-то не работало (выдавало ошибку 0х80070003, хотя я сделал точку прямо перед установкой этого драйвера).
В итоге удалил из msdart и все сразу заработало!
Странно, что в листинге:
я этого драйвера не нашел, но примерно знал название и нашел его вручную в system32.
Vadim Sterkin
Александр, рад что помогло. Точки в последнее время огорчают чаще чем радуют…
Александр Сергеев
Я так понял, что 0х80070003 связано с тем, что не удается найти файл или папку.
Так и не понял, чем распарсить лог SystemRestore, который лежит в \Windows\Logs\SystemRestore
В интернете пишут, что стандартная Event Viewer читает, но у меня полезной инфы оно не показывало
Angelin Dobrodnov
Что за контроллер такой?
Vadim Sterkin
Вопрос в целесообразности. Можно потратить много времени на курение логов SR, но это не решит проблему с откатом. Поэтому точечное решение проблемы в данном случае оптимально.
Angelin Dobrodnov
Интересно, как подсунул неправильный драйвер и какие именно пляски?
Считаю, что в реестре поковырялись, отсюда и проблемы.
Vadim Sterkin
Когда вам приносят ноутбук и просят завести USB-модем, история вопроса вам никак не поможет — проблему надо решать в текущей постановке.
Как там плясал с бубном Niks, я не знаю, но прозреваю, что он попробовал многое (если не все) из того, что мы с вами вдвоем могли бы ему предложить :)
Ника Гурджумелидзе
Драйвер был «подсунут» штатной программой установки с USB модема. При удалении драйвер она решила оставить, а повторно установить ПО не представлялось возможным — оно лежало на самом USB модеме, а он не работал по причине, описанной выше. То есть, ты удаляешь штатный софт, а повторно его установить не можешь. Допускаю, что это проблема совместимости (модем года 2011, как никак), но проблема от этого никуда не денется, нужно решение.
И нет, ковыряния в реестре без причины или ради «оптимизации» это не моё.
Nikolay
Никогда не сталкивался с подобным. Но буду на будущее знать.
Отличный блог.
оф…
В шапке блога пишет мол подписывайся на канал в телеграмм. При попытке перейти браузер пишет мол неизвестный тип адреса.
Телеграмм насколько мне известно заблокирован в России мобыть из-за этого?
Хотя глянул на адрес действительно какой-то странный.
tg://resolve?domain=sterkin_ru
Vadim Sterkin
Ссылка работает для тех, у кого установлен клиент Telegram. Если не установлен, вам она не нужна.