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

9

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

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

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

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

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

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

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

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

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


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

альтернативный текст

альтернативный текст


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

Synetech
источник

Ответы:

10

Я наконец получил 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, но я снова чувствую себя как дома, как будто я переезжаю в общежитие на год, а потом возвращаюсь в свой дом. спальня дома.)

Synetech
источник
1

Отсюда я поделюсь своим ответом, скрипт правильно отображается на сайте 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("{ENTER}")
     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 
isidroco
источник
Не просто скопируйте и вставьте свои ответы без правильного форматирования, это очень легко исправить, так что этот ответ выглядит хорошо здесь.
cascer1
Извините, cascer1, я сделал этот код сам, форматирование выглядит нормально для меня, за исключением некоторого пропущенного отступа IF в конце.
Исидроко
Я не могу вспомнить, начал ли я использовать AutoIt (или AutoHotkey в моем случае) еще в 2011 году, иначе я бы определенно использовал это. Sy
Synetech
0

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

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

SilverbackNet
источник
Это выглядело многообещающе, но, к сожалению, настройка уже правильная ( %SystemRoot%\inf). На самом деле, записи в CurrentVersion\Setupтакже хороши (как DriverCachePathи Installation Sources). Я даже сделал уверен , что файлы в INF, DriverCacheи DLLCacheвсе присутствуют и учтены. Windows должна быть в состоянии найти и установить драйверы (по крайней мере, для основных компонентов, даже если видеокарта или что-то более новое, чем Windows - это не так, поэтому у нее нет драйвера. Я просто не могу получить Windows обнаружить и установить драйверы для портов или устройств ввода
Synetech
Может быть вы еще не проверили их ЗАКАЗ? Прочитайте это . Кажется, вы столкнулись с подобной проблемой. Я полагаю, что вы могли бы это исправить, смонтировав улей и изменив порядок записей в DevicePath, и заставив Windows сначала найти клавиатуру и мышь. (Обратная связь через 3 года;))
Jet
0

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

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