Обход «Мастер нового оборудования» / Настройка Windows для автоматической установки драйверов

38889
Synetech

Моя материнская плата, наконец, умерла через большую часть десятилетия, поэтому я купил подержанную систему. Я вставил старый жесткий диск и звуковую карту в новую систему и подключил старую клавиатуру и мышь (остальные компоненты - процессор, оперативная память, mobo, видеокарта - из новой системы).

Я заранее знал, что будет сложно заставить Windows загрузить и установить драйверы для нового оборудования (особенно, поскольку базовые компоненты являются новыми), но я совершенно не могу даже попытаться выполнить работу по установке драйверов для таких вещей, как видеокарта, так как клавиатура и мышь не будут работать (они делают работу, на экране BIOS, в режиме DOS, в Windows 7, в меню загрузки ХР и т.д., но только не в самой Windows XP).

Всякий раз, когда я пытаюсь загрузить XP (в обычном или безопасном режиме), я получаю всплывающие подсказки для всего обнаруженного нового оборудования и мастер установки нового оборудования для процессора (очевидно, он должен устанавливать драйверы для компонентов самого низкого уровня). наверх). К сожалению, я не могу нажать Next, так как клавиатура и мышь еще не будут работать, потому что драйверы материнской платы (для портов PS / 2 или USB) еще не установлены. Я даже попробовал мышь с последовательным интерфейсом, но безрезультатно - опять же, она работает в DOS, 7 и т. Д., Но не в XP, потому что на ней не установлен драйвер последовательного порта.

Я попытался смонтировать ульи ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ и СИСТЕМЫ под Windows 7, чтобы вручную настроить игнорирование «предупреждения о неподписанных драйверах» (используя оба параметра политики подписывания драйверов, на которые я нашел ссылки). Это не сработало; Я все еще получаю волшебника.

Они даже не являются модными, проприетарными, сторонними или неподписанными драйверами. Это драйверы, которые поставляются с Windows - как это обычно бывает с драйверами для ЦП, ОЗУ, контроллера IDE и т. Д. При этом драйверы клавиатуры и мыши являются общими (но, как я уже сказал, они не имеют значения, поскольку драйверы для портов, к которым они подключены, еще не установлены).

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

О, и я попытался удалить все файлы PNF, чтобы они были восстановлены, но это тоже не помогло.

Кто-нибудь знает, как я могу сбросить Windows, чтобы хотя бы попытаться автоматически установить драйверы для нового оборудования, прежде чем предлагать мне в случае сбоя? И наоборот, кто-нибудь знает, как именно отключить автоматическую установку драйверов (и подсказать с помощью мастера)?

Большое спасибо.


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

alt text

alt text


Да, и исключить любые предложения следующего рода, прежде чем они произойдут, используя Диспетчер устройств для отключения, удаления, восстановления и т. Д., О любых устройствах не может быть и речи, потому что если клавиатура и мышь (или любое другое устройство ввода) не ' t установлен / работает, то как именно я буду выполнять какие-либо действия, такие как использование диспетчера устройств?

9

4 ответа на вопрос

10
Synetech

Я наконец получил Windows XP, работающую на моей новой старой системе в пятницу! Woohoo! (Это заняло всего 5 с половиной месяцев.)

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

(Очевидно, что это продвинутый материал для опытных пользователей; хотя даже опытные пользователи могут испортить это довольно плохо, отсюда начальный шаг резервного копирования.)


Чтобы вспомнить проблему, жесткий диск, содержащий существующую установку Windows, помещается в новую систему, и Windows не устанавливает автоматически драйверы для оборудования и предлагает пользователю установить неподписанные драйверы, даже для драйверов, которые должны быть подписаны. Кроме того, пользователь не может принять диалог (и), потому что Windows не установила драйверы для клавиатуры или мыши (или других устройств ввода).


Вот версия tl; rd:

  1. Сделайте резервную копию реестра ульев.
  2. Отключите все программы, драйверы и службы, которые вы можете.
  3. Настройте вещи (например, панель задач), чтобы вы могли видеть все (не скрывайте никакой информации).
  4. Имейте автоматический запуск файла .BAT, чтобы иметь простой способ вносить изменения и выполнять онлайн (в ОС) задачи.
  5. Используйте приложение макросов / сценариев для автоматизации нажатий клавиш и нажатий кнопок, поскольку вы не можете сделать это самостоятельно.
  6. Убедитесь, что все системные файлы присутствуют.
  7. Вручную удалите проблемное и более не существующее оборудование.

  1. :

    • Загрузитесь в (чистую) DOS или другую ОС и создайте резервную копию кустов реестра в другом месте. Это включает в себя %systemroot%\System32\CONFIG\*и%userprofile%\NTUSER.DAT

    • Убедитесь, что настройки диска / раздела в BOOT.INI и SystemBootDeviceв [HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet00 * \ Control] установлены правильно, поскольку ваш системный диск теперь может находиться на другом диске / разделе, чем он был (в моем случае, (r) диск был 0, но теперь был 1 из-за нового диска).

  2. :

    • Смонтируйте соответствующие кусты реестра и отключите все посторонние автозапускаемые программы, особенно все, что вызывает окна и все такое, что закрывает ваш взгляд, поскольку вы не сможете свернуть их или щелкнуть другие окна / диалоговые окна впереди (вы необходимо упростить для устранения проблемы, как эта). Вам не нужно удалять записи автозапуска, вы можете вместо этого отключить их, чтобы они оставались там, когда вы запускаете Windows и хотите снова запустить их автоматически (особенно для записей, которые имеют несколько команд аргументы):

      • Для Runключей вы можете просто добавить #персонажа или что-то в начале команды. Таким образом, Windows не сможет запустить его, так как это недопустимый файл, и будет игнорировать его.

      • Смонтируйте куст SYSTEM и установите для этого startпараметра значение отключено (dword: 4) для любых посторонних драйверов и служб (особенно тех, которые уже отсутствуют).

      • Отключите PageDefrag и т. Д. В BootExecutein… \ Control \ Session Manager, добавив a #в начало команды (но оставьте в autocheckпокое, так как вы захотите проверить / исправить накопители, если в итоге вам придется перезагрузиться с помощью кнопки сброса).

      • Вместо удаления любых ярлыков в Startupпапках, просто переместите их в другое место.  

    • Установка Windows, установка драйверов, независимо от водителя-подписи путем установки программного обеспечения, и NTUSER ульи реестра и настройки \Software\Microsoft\Driver Signingи \Software\Microsoft\Non-Driver Signingв BIN: 00.

  3. :

    • Вы захотите увидеть панель задач и область уведомлений, поэтому включите самый верхний и отключите автоматическое скрытие, установив NTUSER и отредактировав, \Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2чтобы установить 9-й байт так, чтобы бит 0 был выключен, а бит 1 был включен (0x7A покажет максимальную информацию ). Кроме того, отключите любые другие программы консолидации / манипуляции на панели задач, такие как TrayManager PCMag (возможно, вы получили его до того, как начали продавать свои утилиты).
  4. :

    • Смонтируйте улей ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ и добавьте запись автозапуска для запуска .BAT-файла при запуске (без причины я назвал мой C:\t\j.BAT). Теперь вы можете легко заставить Windows делать что-либо, не имея прямого ввода. Конечно, это требует перезагрузки другой ОС, изменения командного файла и повторной загрузки Windows, чтобы внести изменения, но это лучше, чем отсутствие каких-либо действий в Windows. ;-)(Вы можете закомментировать материал вместо того, чтобы просто удалить его.) Добавить команду в конце командного файла для перезагрузки Windows, например shutdown -t 10 -r. Не забывайте об этом, иначе вам придется нажимать кнопку сброса!

    • В вашем пакетном файле (например j.bat) выполните определенные действия, такие как импорт любых файлов .REG (которые вы можете редактировать в автономном режиме, в другой ОС, как вы можете это сделать с помощью своего пакетного файла). Попросите командный файл запустить диспетчер устройств и развернуть окно (с помощью такого инструмента, как Nircmd ), чтобы дать вам возможность просмотреть текущее состояние оборудования. (Попробуйте использовать инструмент командной строки, такой как QRes, чтобы установить максимальное разрешение, которое может сделать ваш видеодрайвер - который может быть универсальным адаптером VGA, например, 1024x768.) Вы также можете перерегистрировать файлы .DLL для исправления. некоторые проблемы, особенно связанные с Центром обновления Windows.

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

  5. :

    • Получите приложение для записи макросов / создания сценариев, такое как HotkeyMaster, WinMacro, MacroMaker, AutoHotkey, AutoIt! и т. д. и сконфигурируйте его так, чтобы он выполнял любые действия клавиатуры или мыши, которые вам нужны (таким образом вы можете «делать» что-то в Windows, фактически не имея доступных устройств ввода). Вы захотите настроить его так, чтобы он определял определенные окна или диалоговые окна по названию и / или классу и / или элементу управления и соответственно выполнял определенные щелчки мыши или нажатия клавиш. Например, вы можете автоматически определить диалоговое окно подтверждения драйвера и нажать кнопку NextилиContinueкнопок. (Убедитесь, что приложение макроса запускается при запуске, а не в файле .BAT, чтобы убедиться, что они запускаются к тому моменту, когда Windows обнаружит оборудование и начнет запрашивать драйверы; альтернативно, пусть они запускаются в начале командный файл с помощью startкоманды, чтобы избежать блокирования командного файла, поскольку они не будут выходить.)
  6. :

    • Убедитесь, что все необходимые системные файлы на месте. Запустить (через командный файл) sfc /scannow. Убедитесь, что ваш диск Windows находится в дисководе, при условии, что в Windows даже установлены драйверы CD / DVD. Вы также можете попробовать вручную скопировать все отсутствующие файлы в автономном режиме. Например, я скопировал все файлы из моей последней резервной копии XP, указав не перезаписывать существующие файлы. Таким образом, все отсутствующие файлы были восстановлены (особенно в следующих каталогах:

      • C: \ Windows
      • C: \ Windows \ INF
      • C: \ Windows \ Кэш драйверов
      • C: \ Windows \ ServicePackFiles
      • C: \ Windows \ System32
      • C: \ Windows \ System32 \ Dllcache
      • C: \ Windows \ System32 \ Drivers

      • (Мне также довелось восстановить следующие каталоги, не связанные с установкой оборудования, незадолго до того, как они наконец снова заработали. Совпадение? Я не знаю.)

      • C: \ Windows \ Assembly
      • C: \ Windows \ Microsoft.NET
      • C: \ Windows \ WinSxS
      • C: \ Windows \ Help
      • C: \ Windows \ System32 \ WBEM

      • (Вы можете удалить или переименовать C: \ Windows \ System32 \ CatRoot *)

  7. :

    • Удалите все файлы .PNF в C: \ Windows \ INF. Windows перестроит их из существующих файлов .INF в следующий раз, когда потребуется установить драйвер (который на данный момент все еще при каждой загрузке). Это похоже на очистку кэша браузера, когда страница отображается некорректно, чтобы обеспечить получение и использование самой последней копии файлов.

    • В крайнем случае, получите и используйте инструмент Microsoft DEVCONдля удаления определенных устройств, чтобы Windows могла попробовать установить оборудование с нуля. Однако сначала вы захотите запустить команду (через ваш пакетный файл), DEVCON findall * > C:\t\devcon.logчтобы вывести список всего вашего оборудования и его соответствующих идентификаторов. Таким образом, вы можете составить правильный и настраиваемый список того, какое оборудование вы хотите удалить. К устройствам, которые необходимо удалить, относятся следующие:

      • "* ACPI *"
      • "USB \ ROOT_HUB *"
      • "SERENUM \ MOUSE *"
      • " VEN_8086 "
      • "HID *"
      • "* TUNMP *"
      • "PCI \ VEN_1102 *"
      • "PCI \ VEN_1033 *"
      • "PCI \ VEN_1011 *"
      • "PCI \ VEN_1186 *"
      • "PCI \ VEN_11AB *"
      • "PCI \ VEN_1274 *"
      • "PCI \ VEN_5333 *"

      • (Это основные устройства, связанные с материнской платой, такие как процессоры, порты, шины, устройства ввода, сетевые карты, жесткие диски и оптические приводы.)


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

К счастью, мне наконец удалось заставить это работать, потому что я не готов просто установить и переустановить. Теперь я могу не только снова использовать Outlook Express (а также загружать и очищать около 5000 писем, скопившихся в моих учетных записях), но я снова могу заняться программированием в своей установленной копии старого доброго VS2003. (Не то чтобы я не привык к Windows 7; на самом деле, какое-то время я чувствовал себя странно в XP, но я снова чувствую себя как дома, как будто я переезжаю в общежитие на год, а потом возвращаюсь в свой дом. спальня дома.)

0
SilverbackNet

Мастер появляется только в том случае, если в пути системного драйвера нет подходящего драйвера. Согласно technet, вам придется изменить HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ DevicePath в автономном режиме, чтобы добавить папку (-и), содержащую информацию о ваших драйверах, чтобы выполнять автоматический поиск до запуска мастера.

Может быть проще переустановить все встроенные драйверы, если это не сработает.

Это выглядело многообещающе, но, к сожалению, настройка уже правильная (`% SystemRoot% \ inf`). На самом деле записи в CurrentVersion \ Setup также хороши (например, DriverCachePath и Installation Sources). Я даже позаботился о том, чтобы все файлы в `INF`,` DriverCache` и `DLLCache` присутствовали и учитывались. Windows * должна * быть в состоянии найти и установить драйверы (по крайней мере, для базовых компонентов, даже если видеокарта или что-то более новое, чем Windows - это не так, поэтому у нее не было драйвера. Я просто не могу получить Windows, чтобы обнаружить и установить драйверы для портов или устройств ввода. Synetech 13 лет назад 0
Может быть вы еще не проверили их ЗАКАЗ? Прочитайте [это] (http://www.remyservices.net/blog/2007/09/28/sysprep-in-depth-part-1-adding-drivers-to-our-image-pc#yui_3_17_2_1_1417360700002_487). Кажется, вы столкнулись с подобной проблемой. Я полагаю, что вы могли бы это исправить, смонтировав улей и изменив порядок записей DevicePath, и заставив Windows сначала найти клавиатуру и мышь. (Обратная связь через 3 года;)) Jet 9 лет назад 0
0
Nemis

Для этой проблемы я добавил Teamviewer при запуске и установил недостающее оборудование (/ w клавиатура и мышь) через него.

Для этого потребуется либо предварительно установить его, прежде чем он понадобится, либо иметь возможность использовать клавиатуру и мышь для его установки. В любом случае, удаленный доступ * может быть * хорошей идеей, но не поможет в такой ситуации. Synetech 13 лет назад 2
@ Synthech, не получается установить его автоматически через скрипт? Pacerier 9 лет назад 0
0
isidroco

Отсюда я поделюсь своим ответом, скрипт правильно отображается на сайте MSFN: http://www.msfn.org/board/topic/49514-disable-found-new-hardware-wizard/?do=findComment&comment=1132792

Я создал скрипт AutoIt3 https://www.autoitscript.com/site/autoit/downloads/, который продолжал бы со всеми окнами мастера нового оборудования, принимающими неподписанные драйверы, отменой приглашений WinXP CD и пропуском нескольких вариантов (подключение к Интернету и т. Д.), чтобы мышь и клавиатура были обнаружены и установлены. Скомпилированный EXE-скрипт autoit должен быть скопирован в папку «Пуск» (в «Меню Пуск») для автоматического выполнения. Строки сценария ДОЛЖНЫ быть адаптированы к локальному языку Windows. И, возможно, некоторые комбинации Alt-LETTER тоже. Мой образец работает на испанском языке WinXP. Надеюсь, что это поможет кому-то еще, после того, как мышь и клавиатура будут работать, скрипт должен быть удален (или перемещен в другую папку):

$asistente= "Asistente para hardware nuevo encontrado" ;"Found New Hardware Wizard" $instalacion= "Instalación de hardware" $archivos= "Archivos necesarios" $cambio= "Cambio de configuración del sistema"  while 1 sleep(200)  if WinExists( $cambio) then WinActivate( $cambio) sleep(200) Send("!n") ; (press Alt-n) endif  if WinExists( $instalacion) then WinActivate( $instalacion) sleep(200) $text=WinGetText( $instalacion) if StringInStr( $text, "El software que está instalando para este hardware") then ;"The software..." Send("!c") endIf ; MsgBox($MB_OK, "Autoit Status", $text & stringinstr( $text, "está"), 2 ) ; sleep(2000) endif  if WinExists($archivos) then WinActivate($archivos) sleep(200) $text=WinGetText( $archivos) if StringInStr( $text, "Se necesita el archivo") then ControlClick( "Archivos necesarios", "", "[ID:2]" ) endIf endif  if WinExists( $asistente) then WinActivate( $asistente) sleep( 200) $text=WinGetText( $asistente)  if StringInStr( $text, "Desea que Windows se conecte a Windows Update") then ;"Can Windows connect to Windows Update to search for software?" ; ControlCommand( $asistente, "", "[ID:8104]", "Check", "") sleep(150) ; ControlClick( $asistente, "", "[ID:12324]") Send("!n") sleep(100) Send("!t") sleep(250) endif  $text=WinGetText( $asistente) if StringInStr( $text, "Este asistente le ayudará a instalar software para:") then ;"This wizard" sleep(150) Send("!t") sleep(250) endif  $text=WinGetText( $asistente) if StringInStr( $text, "No se puede instalar este hardware") then ;"Cannot Install this Hardware" ControlCommand( $asistente, "", "[ID:1030]", "UnCheck", "") sleep(200) ;ControlClick( $asistente, "", "[ID:12325]") Send("") sleep(200) endif  $text=WinGetText( $asistente) if StringInStr( $text, "desea que haga el asistente?") then ;"What do you want the wizard to do?" ControlCommand( $asistente, "", "[ID:1049]", "Check", "") sleep(200) ControlClick( $asistente, "", "[ID:12324]") sleep(200) endif  $text=WinGetText( $asistente) if StringInStr( $text, "Se recomienda que se conecte a Internet para que el asistente") then ControlCommand( $asistente, "", "[ID:1065]", "Check", "") sleep(200) ControlClick( $asistente, "", "[ID:12324]") sleep(200) endif  $text=WinGetText( $asistente) if StringInStr( $text, "Finalizar para cerrar") then ;"Click Finish to close the wizard." ControlClick( $asistente, "", "[ID:12325]") sleep(250) endif endif  wend  
Не просто скопируйте и вставьте свои ответы без правильного форматирования, это очень легко исправить, так что этот ответ выглядит хорошо здесь. cascer1 7 лет назад 0

Похожие вопросы