Ignorando o “Assistente para encontrar novo hardware” / Definindo o Windows para instalar drivers automaticamente

9

Minha placa-mãe finalmente morreu depois de quase uma década, então comprei um sistema usado. Coloquei meu disco rígido e placa de som antigos no novo sistema e conectei meu teclado e mouse antigos (o restante dos componentes - CPU, RAM, mobo, placa de vídeo - são do novo sistema).

Eu sabia de antemão que seria um desafio fazer o Windows inicializar e instalar drivers para o novo hardware (principalmente porque os componentes fundamentais são novos), mas sou completamente incapaz de tentar concluir o trabalho de instalação de drivers para coisas como a placa de vídeo porque o teclado eo mouse não irá funcionar (eles fazem trabalho, na tela da BIOS, em modo DOS, no Windows 7, no menu de inicialização do XP, etc., não apenas no próprio Windows XP).

Sempre que tento inicializar o XP (no modo normal ou seguro), recebo um monte de balões para todo o novo hardware detectado e um Assistente para Novo Hardware Encontrado para Processador (obviamente, ele precisa instalar drivers para os componentes de nível mais baixo) em cima). Infelizmente, não consigo clicar em Avançar, pois o teclado e o mouse ainda não funcionam porque os drivers da placa-mãe (para as portas PS / 2 ou USB) ainda não estão instalados. Até tentei um mouse serial, mas sem sucesso - novamente, ele funciona no DOS, 7, etc., mas não no XP porque não possui o driver da porta serial instalado.

Tentei montar as seções do SOFTWARE e do SISTEMA no Windows 7 para definir manualmente o "aviso de drivers não assinados" a ser ignorado (usando as duas configurações de diretiva de assinatura de driver às quais encontrei referências). Isso não funcionou; Eu ainda entendo o mago.

Eles nem são drivers sofisticados, proprietários, de terceiros ou não assinados. São drivers que acompanham o Windows - como costumam ser os drivers de CPU, RAM, controlador IDE etc. E os drivers de teclado e mouse são os genéricos (mas como eu disse, esses são irrelevantes, pois os drivers das portas às quais estão conectados ainda não estão instalados).

Obviamente, em algum momento nos últimos anos, uma configuração foi alterada para fazer o Windows sempre me avisar quando detectar um novo hardware. (Ele também foi configurado para mostrar o Rastreador de eventos de desligamento em desligamentos anormais, então tive que desligá-lo para poder ver a área de trabalho.)

Ah, e tentei excluir todos os arquivos PNF para que eles fossem regenerados, mas isso também não ajudou.

Alguém sabe como eu posso redefinir o Windows para, pelo menos, tentar instalar drivers automaticamente para o novo hardware antes de me avisar se houver falha? Por outro lado, alguém sabe exatamente como se desativa a instalação automática do driver (e avisa com o assistente)?

Muito obrigado.


Só para ficar claro, já que provavelmente aparecerão nas respostas, caso contrário, NÃO estou falando sobre o diálogo abaixo, estou falando sobre o abaixo.

texto alternativo

texto alternativo


Ah, e para evitar sugestões do tipo a seguir antes que elas aconteçam , usando o Gerenciador de dispositivos para desativar, desinstalar, reparar etc. qualquer dispositivo está fora de questão, porque se o teclado e o mouse (ou qualquer outro dispositivo de entrada) não estiverem ' t instalado / funcionando, como exatamente eu executaria alguma ação como usar o Gerenciador de dispositivos?

Synetech
fonte

Respostas:

10

Finalmente consegui o Windows XP funcionando no meu novo sistema antigo na sexta-feira! Woohoo! (Levou apenas 5 meses e meio).

Eu indicaria as etapas específicas necessárias para corrigi-lo, caso outra pessoa encontre um problema semelhante, embora, infelizmente, devido à crescente frustração e impaciência, acabei adotando uma abordagem de terra um pouco queimada e realizei várias etapas ao mesmo tempo. No entanto, eu mantive os arquivos de trabalho que usei e revelei as alterações que fiz, portanto, listarei várias coisas para tentar, ou pelo menos devem ajudar.

(Obviamente, isso é algo avançado para usuários avançados; embora mesmo usuários avançados possam atrapalhar bastante isso, daí a etapa inicial do backup.)


Para recapitular o problema, um disco rígido contendo uma instalação existente do Windows é colocado em um novo sistema, e o Windows não instala automaticamente drivers de hardware e solicita que o usuário instale drivers não assinados, mesmo para os drivers que devem ser assinados. Além disso, o usuário não pode aceitar as caixas de diálogo porque o Windows não instalou os drivers do teclado ou mouse (ou outros dispositivos de entrada).


Aqui está a versão tl; rd:

  1. Faça um backup das seções do registro.
  2. Desative todos os programas, drivers e serviços que puder.
  3. Defina as coisas (como a barra de tarefas) para poder ver tudo (não oculte nenhuma informação).
  4. Tenha um arquivo .BAT executado automaticamente para ter uma maneira fácil de fazer alterações e executar tarefas online (no SO).
  5. Use um aplicativo de macro / script para automatizar pressionamentos de teclas e cliques em botões, pois você não pode fazer isso sozinho.
  6. Verifique se todos os arquivos do sistema estão presentes.
  7. Remova manualmente o hardware problemático e que não está mais presente.

  1. :

    • Inicialize no DOS (puro) ou em outro sistema operacional e faça uma cópia de backup das seções do registro em outro local. Isso inclui %systemroot%\System32\CONFIG\*e%userprofile%\NTUSER.DAT

    • Verifique se as configurações da unidade / partição no BOOT.INI e SystemBootDeviceem [HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet00 * \ Control] estão definidas corretamente, pois a unidade do sistema agora pode estar em uma unidade / partição diferente do que costumava ser (no meu caso, o (r) o disco costumava ser 0, mas agora era 1 por causa da nova unidade).

  2. :

    • Monte as seções de registro apropriadas e desative todos e quaisquer programas de execução automática estranhos, especialmente qualquer coisa que exiba janelas e coisas que obscurecem sua exibição, pois você não poderá minimizá-las ou clicar nas outras janelas / caixas de diálogo à frente (você deve simplificar para solucionar um problema como este). Você não precisa excluir as entradas de execução automática; em vez disso, pode desativá-las, para que elas ainda estejam lá quando o Windows estiver sendo executado e quiser executá-las novamente novamente (especialmente para entradas com muitos comandos argumentos de linha):

      • Para as Runteclas, você pode simplesmente jogar um #caractere ou algo no início do comando. Dessa forma, o Windows não poderá executá-lo, pois não é um arquivo válido e o ignorará.

      • Monte a seção SYSTEM e defina o startparâmetro como desativado (dword: 4) para quaisquer drivers e serviços externos (especialmente aqueles para hardware que não está mais presente).

      • Desative o PageDefrag etc. no BootExecute… \ Control \ Session Manager adicionando um #ao início do comando (embora deixe em branco autocheck, pois você desejará que as unidades sejam verificadas / consertadas se você precisar reiniciar usando o botão de redefinição).

      • Em vez de excluir qualquer atalho nas Startuppastas, basta movê-lo para outro lugar.  

    • Defina o Windows para instalar drivers, independentemente da assinatura do driver, montando as seções e as seções de registro do SOFTWARE e NTUSER \Software\Microsoft\Driver Signinge \Software\Microsoft\Non-Driver Signingem BIN: 00.

  3. :

    • Você deseja ver a barra de tarefas e a área de notificação, então ative a parte superior e desative o ocultar automaticamente montando NTUSER e editando \Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2para definir o 9º byte, para que o bit 0 esteja desativado e o bit 1 ativado (0x7A mostrará a informação máxima ). Além disso, desative outros programas de consolidação / manipulação da barra de tarefas, como o TrayManager da PCMag (talvez você o tenha adquirido antes que eles comecem a vender seus utilitários).
  4. :

    • Monte a seção do SOFTWARE e adicione uma entrada de execução automática para executar um arquivo .BAT na inicialização (sem motivo, chamei de meu C:\t\j.BAT). Agora você pode facilmente fazer o Windows fazer as coisas sem ter nenhuma entrada direta. Concedido, requer uma reinicialização em outro sistema operacional, modificação do arquivo em lotes e inicialização do Windows novamente para fazer uma alteração, mas é melhor do que não ter como fazer nada no Windows. ;-)(Você pode comentar coisas em vez de excluí-las.) Adicione um comando no final do arquivo em lotes para reiniciar o Windows, por exemplo shutdown -t 10 -r. Não se esqueça disso, ou você terá que pressionar o botão de reset!

    • No seu arquivo em lotes (por exemplo j.bat), execute determinadas ações, como a importação de arquivos .REG (que você pode editar offline, em outro SO, da mesma forma que em seu arquivo em lotes). Faça com que o arquivo em lote execute o Gerenciador de Dispositivos e maximize a janela (com uma ferramenta como Nircmd ) para ter a oportunidade de visualizar o estado atual do hardware. (Tente usar uma ferramenta de linha de comando como QRes para definir a resolução ao máximo que seu driver de vídeo - que pode ser o adaptador VGA genérico neste momento - pode fazer, por exemplo, 1024x768.) Você também pode registrar novamente os arquivos .DLL para corrigir alguns problemas, especialmente aqueles relacionados ao Windows Update.

    • Você não deseja que o arquivo em lotes seja executado de maneira rápida e louca; portanto, você deseja obter uma ferramenta de linha de comando que possa pausar por um determinado número de segundos para pausar a execução do script - não, o pausecomando não é bom desde requer pressionar uma tecla para continuar. (Eu usei um programa que escrevi anos atrás, mas há muito disponível na Internet ou use apenas um truque comum .)

  5. :

    • Obtenha um aplicativo de gravador de macro / script como HotkeyMaster , WinMacro , MacroMaker , AutoHotkey , AutoIt! , etc. e configure-o para executar as ações de teclado ou mouse necessárias (dessa forma, você pode "fazer" coisas no Windows sem realmente ter dispositivos de entrada disponíveis). Você deseja configurá-lo para detectar determinadas janelas ou caixas de diálogo por título e / ou classe e / ou controle e executar determinados cliques do mouse ou pressionamentos de teclas de acordo. Por exemplo, você pode detectar automaticamente os diálogos de confirmação do driver e acionar um clique no botão NextouContinuebotões. (Certifique-se de definir o aplicativo de macro para ser executado na inicialização, em vez de no arquivo .BAT, para garantir que eles estejam em execução no momento em que o Windows detectar o hardware e começar a solicitar drivers; como alternativa, execute-os no início do arquivo em lote usando o startcomando para evitar que o arquivo em lote seja bloqueado, pois eles não serão encerrados.)
  6. :

    • Verifique se todos os arquivos de sistema necessários estão no lugar. Execute (através do arquivo em lotes) sfc /scannow. Certifique-se de ter o disco do Windows na unidade - supondo que o Windows tenha os drivers de CD / DVD instalados. Você também pode tentar copiar manualmente os arquivos ausentes enquanto estiver offline. Por exemplo, copiei todos os arquivos do meu último backup do XP, especificando para não substituir os arquivos existentes. Dessa forma, todos os arquivos ausentes foram restaurados (especialmente nos seguintes diretórios:

      • C: \ Windows
      • C: \ Windows \ INF
      • C: \ Windows \ Cache de driver
      • C: \ Windows \ ServicePackFiles
      • C: \ Windows \ System32
      • C: \ Windows \ System32 \ dllcache
      • C: \ Windows \ System32 \ Drivers

      • (Também restaurei os seguintes diretórios relacionados à instalação que não são de hardware, pouco antes de finalmente começar a funcionar novamente. Coincidência? Não sei.)

      • C: \ Windows \ Montagem
      • C: \ Windows \ Microsoft.NET
      • C: \ Windows \ WinSxS
      • C: \ Windows \ Ajuda
      • C: \ Windows \ System32 \ WBEM

      • (Você pode realmente excluir ou renomear C: \ Windows \ System32 \ CatRoot *)

  7. :

    • Exclua todos os arquivos .PNF em C: \ Windows \ INF. O Windows os reconstruirá a partir dos arquivos .INF existentes na próxima vez em que precisar instalar um driver (que neste momento ainda está em cada inicialização). Isso é semelhante a limpar o cache do navegador quando uma página não está sendo exibida corretamente, para garantir que você esteja obtendo e usando a cópia mais atualizada dos arquivos.

    • Como último recurso, obtenha e use a ferramenta Microsoft DEVCONpara remover determinados dispositivos, para que o Windows possa tentar instalar o hardware do zero. Primeiro, no entanto, você deseja executar o comando (por meio do arquivo em lotes) DEVCON findall * > C:\t\devcon.logpara despejar uma lista de todo o seu hardware e seus IDs correspondentes. Dessa forma, você pode compilar uma lista adequada e personalizada do hardware que deseja remover. Os dispositivos a serem removidos incluem o seguinte:

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

      • (Esses são os principais dispositivos relacionados à placa-mãe, como processadores, portas, barramentos, dispositivos de entrada, placas de rede, discos rígidos e unidades ópticas.)


Como você pode ver, é (não surpreendentemente) muito difícil fazer o Windows funcionar novamente se você colocar a unidade do sistema em um novo sistema (leia a placa-mãe) e quiser evitar a reinstalação. Não ter um método de entrada torna muito difícil, mas não impossível . Leva muito tempo, esforço, paciência, ferramentas, atenção aos detalhes e cautela, mas é possível e as recompensas (adiando uma reinstalação completa e, assim, perdendo quem sabe quantos milhares de personalizações feitas ao longo do tempo ) pode valer a pena.

Felizmente, finalmente consegui fazê-lo funcionar porque não estava pronto para instalar e reinstalar. Agora não posso apenas usar o Outlook Express novamente (e baixar e limpar os 5.000 e-mails que estavam empilhados em minhas contas), mas também posso programar novamente em minha cópia instalada do bom e velho VS2003. (Não que eu não estivesse me acostumando com o Windows 7; na verdade, por um tempo, me senti estranha no XP, mas estou me sentindo em casa novamente, como me mudar para um dormitório por um ano e depois voltar para o seu quarto em casa.)

Synetech
fonte
1

Compartilharei minha resposta a partir daqui, o script é exibido corretamente no site da MSFN: http://www.msfn.org/board/topic/49514-disable-found-new-hardware-wizard/?do=findComment&comment=1132792

Criei um script AutoIt3 https://www.autoitscript.com/site/autoit/downloads/ que continuaria com todas as janelas do Assistente para Novo Hardware aceitando drivers não assinados, cancelando prompts de CD do WinXP e ignorando várias opções (conexão à Internet, etc.) , para que o Mouse e o teclado sejam detectados e instalados. O script de autoit compilado EXE deve ser copiado para a pasta "Iniciar" (dentro de "Menu Iniciar") para ser executado automaticamente. As seqüências de caracteres de script devem ser adaptadas ao idioma local do Windows. E provavelmente algumas combinações Alt-LETTER também. Minha amostra funciona em WinXP ESPANHOL. Espero que ajude alguém, depois de ter o mouse e o teclado funcionando, o script deve ser excluído (ou movido para outra pasta):

$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
fonte
Não basta copiar e colar suas respostas sem formatação adequada, pois é muito fácil corrigir sua formatação, para que esta resposta pareça boa aqui.
precisa saber é o seguinte
Desculpe cascer1, eu mesmo fiz esse código, a formatação parece bem para mim, exceto por algum recuo ausente de IFs no final.
precisa saber é
Não me lembro se havia começado a usar o AutoIt (ou o AutoHotkey no meu caso) em 2011, caso contrário, eu definitivamente o teria usado. 👍
Synetech 24/01
0

O assistente só aparece quando nenhum driver correspondente está no caminho do driver do sistema. De acordo com o technet , você precisaria modificar o HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ DevicePath offline para adicionar a (s) pasta (s) que contém informações sobre o driver, a fim de pesquisá-las automaticamente antes de abrir o assistente.

Pode ser mais simples reinstalar com todos os drivers integrados, se isso não funcionar.

SilverbackNet
fonte
Isso parecia promissor, mas infelizmente a configuração já está correta ( %SystemRoot%\inf). De fato, as entradas em CurrentVersion\Setuptambém são boas (como DriverCachePathe Installation Sources). Tenho mesmo a certeza que os arquivos INF, DriverCachee DLLCacheestão todos presentes e contabilizadas. O Windows deve ser capaz de encontrar e instalar drivers (pelo menos para os componentes básicos, mesmo que a placa de vídeo ou o que for mais recente que o Windows - não é - não tenha um driver. Não consigo obter o Windows para detectar e instalar os drivers para as portas ou dispositivos de entrada.
Synetech
Talvez você não tenha verificado a sua encomenda? Leia isto . Parece que você encontrou um problema semelhante. Acredito que você possa corrigi-lo montando a seção e reordenando as entradas do DevicePath e faça o Windows encontrar o teclado e o mouse primeiro. (Feedback após 3 anos;))
Jet
0

Para esse problema, adicionei o Teamviewer na inicialização e instalei o hardware ausente (/ w teclado e mouse) através dele.

Nemis
fonte
2
Isso exigiria a instalação prévia antes da sua necessidade ou a possibilidade de usar o teclado e o mouse para instalá-lo. De qualquer forma, o acesso remoto pode ser uma boa ideia, mas não ajudará em uma situação como essa.
precisa saber é o seguinte
@ Synetech, Não foi possível instalá-lo automaticamente através de um script?
Pacerier