Contourner «Assistant de nouveau matériel détecté» / Configuration de Windows pour installer automatiquement les pilotes


9

Ma carte mère est finalement morte après une bonne partie de la décennie, j'ai donc acheté un système d'occasion. J'ai mis mon ancien disque dur et ma carte son dans le nouveau système, et connecté mon ancien clavier et souris (le reste des composants - CPU, RAM, mobo, carte vidéo - proviennent du nouveau système).

Je savais à l'avance qu'il serait difficile d'amener Windows à démarrer et à installer des pilotes pour le nouveau matériel (en particulier depuis que les composants fondamentaux sont nouveaux), mais je suis complètement incapable d'essayer même de terminer le travail d'installation des pilotes pour des choses comme la carte vidéo parce que le clavier et la souris ne fonctionnera pas (ils font le travail, dans l'écran du BIOS en mode DOS, Windows 7, dans le menu de démarrage de XP, etc., mais pas en lui - même Windows XP).

Chaque fois que j'essaie de démarrer XP (en mode normal ou sans échec), je reçois un tas de ballons pour tout le nouveau matériel détecté et un assistant de nouveau matériel détecté pour le processeur (évidemment, il doit installer des pilotes pour les composants de plus bas niveau en haut). Malheureusement, je ne peux pas cliquer sur Suivant car le clavier et la souris ne fonctionneront pas encore car les pilotes de la carte mère (pour les ports PS / 2 ou USB) ne sont pas encore installés. J'ai même essayé une souris série, mais en vain - encore une fois, elle fonctionne sous DOS, 7, etc., mais pas sous XP car elle n'a pas le pilote du port série installé.

J'ai essayé de monter les ruches LOGICIEL et SYSTÈME sous Windows 7 afin de définir manuellement l '"avertissement des pilotes non signés" à ignorer (en utilisant les deux paramètres de stratégie de signature des pilotes auxquels j'ai trouvé des références). Cela n'a pas fonctionné; Je reçois toujours l'assistant.

Ce ne sont même pas des pilotes fantaisistes, propriétaires, tiers ou non signés. Ce sont des pilotes fournis avec Windows, comme le sont généralement les pilotes pour le CPU, la RAM, le contrôleur IDE, etc. Et les pilotes de clavier et de souris sont génériques (mais comme je l'ai dit, ils ne sont pas pertinents car les pilotes pour les ports auxquels ils sont connectés ne sont pas encore installés).

De toute évidence, à un moment donné au cours des dernières années, un paramètre a été modifié pour que Windows m'informe toujours lorsqu'il détecte un nouveau matériel. (Il a également été configuré pour afficher le suivi des événements d'arrêt lors d'arrêts anormaux, j'ai donc dû le désactiver pour pouvoir même voir le bureau.)

Oh, et j'ai essayé de supprimer tous les fichiers PNF afin qu'ils soient régénérés, mais cela n'a pas aidé non plus.

Est-ce que quelqu'un sait comment je peux réinitialiser Windows pour au moins essayer d'installer automatiquement les pilotes pour le nouveau matériel avant de me demander s'il échoue? À l'inverse, quelqu'un sait-il exactement comment on désactive l'installation automatique du pilote (et invite avec l'assistant)?

Merci beaucoup.


Juste pour être clair car cela apparaîtra probablement dans les réponses sinon, je ne parle pas de la boîte de dialogue ci-dessous, je parle de celle ci-dessous.

texte alternatif

texte alternatif


Oh, et pour éviter toutes les suggestions du type suivant avant qu'elles ne se produisent , utiliser le Gestionnaire de périphériques pour désactiver, désinstaller, réparer, etc. tout périphérique est hors de question car si le clavier et la souris (ou tout autre périphérique d'entrée) ne sont pas '' t installé / fonctionne, alors comment pourrais-je exactement effectuer des actions telles que l'utilisation du Gestionnaire de périphériques?

Réponses:


10

Vendredi, j'ai enfin fait travailler Windows XP sur mon nouvel ancien système! Woohoo! (Cela n'a pris que 5 mois et demi.)

Je dirais les étapes spécifiques nécessaires pour le résoudre au cas où quelqu'un d'autre rencontrerait un problème similaire, mais malheureusement, en raison de la frustration et de l'impatience croissantes, j'ai fini par adopter une approche quelque peu brûlée et j'ai effectué plusieurs étapes à la fois. Cependant, j'ai gardé les fichiers de travail que j'ai utilisés et j'ai déniché les modifications que j'ai apportées, donc je vais énumérer plusieurs choses à essayer qui le feront, ou du moins devraient aider.

(De toute évidence, ce sont des choses avancées pour les utilisateurs avancés; bien que même les utilisateurs avancés puissent gâcher assez mal, d'où l'étape de sauvegarde initiale.)


Pour récapituler le problème, un disque dur contenant une installation existante de Windows est placé dans un nouveau système, et Windows n'installe pas automatiquement les pilotes pour le matériel et invite l'utilisateur à installer les pilotes non signés, même pour les pilotes qui sont censés être signés. En outre, l'utilisateur n'est pas en mesure d'accepter la ou les boîtes de dialogue car Windows n'a pas installé les pilotes du clavier ou de la souris (ou d'autres périphériques d'entrée).


Voici la version tl; rd:

  1. Effectuez une sauvegarde des ruches du Registre.
  2. Désactivez tous les programmes, pilotes et services que vous pouvez.
  3. Réglez les choses (comme la barre des tâches) afin que vous puissiez tout voir (ne cachez aucune information).
  4. Avoir un fichier .BAT à exécution automatique pour avoir un moyen facile d'apporter des modifications et d'effectuer des tâches en ligne (dans le système d'exploitation).
  5. Utilisez une application de macro / script pour automatiser les pressions sur les touches et les clics sur les boutons, car vous ne pouvez pas le faire vous-même.
  6. Assurez-vous que tous les fichiers système sont présents.
  7. Supprimez manuellement le matériel problématique et plus présent.

  1. :

    • Démarrez sous DOS (pur) ou un autre système d'exploitation et effectuez une copie de sauvegarde des ruches de registre vers un autre emplacement. Cela comprend %systemroot%\System32\CONFIG\*et%userprofile%\NTUSER.DAT

    • Assurez-vous que les paramètres de lecteur / partition dans BOOT.INI et SystemBootDevicedans [HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet00 * \ Control] sont correctement définis car votre lecteur système peut maintenant se trouver sur un lecteur / partition différent de celui qu'il était (dans mon cas, le (r) le disque était 0 auparavant, mais il était maintenant 1 à cause du nouveau lecteur).

  2. :

    • Montez les ruches de registre appropriées et désactivez tous les programmes à exécution automatique superflus, en particulier tout ce qui ouvre des fenêtres et des éléments qui obscurcissent votre vue, car vous ne pourrez pas les réduire ou cliquer sur les autres fenêtres / boîtes de dialogue à l'avant (vous doit simplifier pour résoudre un problème comme celui-ci). Vous n'avez pas besoin de supprimer les entrées à exécution automatique, vous pouvez les désactiver à la place, afin qu'elles soient toujours là lorsque vous exécutez Windows et que vous souhaitez les réexécuter automatiquement (en particulier pour les entrées qui ont un tas de commandes) -line arguments):

      • Pour les Runtouches, vous pouvez simplement ajouter un #caractère ou quelque chose au début de la commande. De cette façon, Windows ne pourra pas l'exécuter car ce n'est pas un fichier valide et l'ignorera.

      • Montez la ruche SYSTEM et définissez le startparamètre sur désactivé (dword: 4) pour tous les pilotes et services étrangers (en particulier ceux pour le matériel qui n'est plus présent).

      • Désactivez PageDefrag , etc. dans BootExecutedans… \ Control \ Session Manager en ajoutant un #au début de la commande (mais laissez-le autochecktranquille car vous voudrez que les lecteurs soient vérifiés / corrigés si vous devez redémarrer via le bouton de réinitialisation).

      • Au lieu de supprimer les raccourcis des Startupdossiers, déplacez-les simplement ailleurs.  

    • Configurez Windows pour installer les pilotes indépendamment de la signature du pilote en montant les ruches de registre SOFTWARE et NTUSER et en définissant \Software\Microsoft\Driver Signinget \Software\Microsoft\Non-Driver Signingsur BIN: 00.

  3. :

    • Vous voudrez voir la barre des tâches et la zone de notification, alors activez le plus haut et désactivez le masquage automatique en montant NTUSER et en modifiant \Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2pour définir le 9ème octet de sorte que le bit 0 soit désactivé et le bit 1 activé (0x7A affichera le maximum d'informations ). En outre, désactivez tous les autres programmes de consolidation / manipulation de la barre des tâches tels que TrayManager de PCMag (peut-être l'avez-vous obtenu avant qu'ils ne commencent à vendre leurs utilitaires).
  4. :

    • Montez la ruche du LOGICIEL et ajoutez une entrée à exécution automatique pour exécuter un fichier .BAT au démarrage (sans raison, j'ai appelé le mien C:\t\j.BAT). Maintenant, vous pouvez facilement demander à Windows de faire des choses sans avoir d’entrée directe. Certes, cela nécessite un redémarrage vers un autre système d'exploitation, une modification du fichier de commandes et un redémarrage de Windows pour effectuer un changement, mais c'est mieux que de n'avoir aucun moyen de faire quoi que ce soit dans Windows. ;-)(Vous pouvez commenter des éléments au lieu de simplement les supprimer.) Ajoutez une commande à la fin du fichier de commandes pour redémarrer Windows, par exemple shutdown -t 10 -r. N'oubliez pas ou sinon vous devrez appuyer sur le bouton de réinitialisation!

    • Dans votre fichier de commandes (par exemple j.bat), effectuez certaines actions comme l'importation de fichiers .REG (que vous pouvez modifier hors ligne, dans un autre système d'exploitation comme vous le pouvez avec votre fichier de commandes). Demandez au fichier de commandes d'exécuter le Gestionnaire de périphériques et agrandissez la fenêtre (avec un outil tel que Nircmd ) pour vous donner la possibilité de visualiser l'état actuel du matériel. (Essayez d'utiliser un outil en ligne de commande comme QRes pour régler la résolution au maximum que votre pilote vidéo (qui peut être l'adaptateur générique VGA à ce stade) peut le faire, par exemple 1024x768.) Vous pouvez également réenregistrer les fichiers .DLL à corriger certains problèmes, en particulier ceux liés à Windows Update.

    • Vous ne voulez pas que le fichier batch s'exécute rapidement et de manière folle, vous voudrez donc obtenir un outil de ligne de commande qui peut faire une pause pendant un nombre donné de secondes afin de suspendre l'exécution du script - non, la pausecommande n'est pas bonne puisque il faut appuyer sur une touche pour continuer. (J'ai utilisé un programme que j'ai écrit il y a des années, mais il y en a beaucoup disponibles sur Internet, ou utilisez simplement un hack commun .)

  5. :

    • Obtenez une macro-enregistreur / application de script comme HotkeyMaster , WinMacro , MacroMaker , AutoHotkey , AutoIt! , etc. et configurez-le pour effectuer les actions de clavier ou de souris dont vous avez besoin (de cette façon, vous pouvez «faire» des choses dans Windows sans avoir réellement de périphériques d'entrée disponibles). Vous voudrez le configurer pour détecter certaines fenêtres ou boîtes de dialogue par titre et / ou classe et / ou contrôle et effectuer certains clics de souris ou pressions de touches en conséquence. Par exemple, vous pouvez le faire détecter automatiquement les boîtes de dialogue de confirmation du pilote et déclencher un clic sur le NextouContinueboutons. (Assurez-vous de définir l'application macro pour qu'elle s'exécute au démarrage plutôt que dans le fichier .BAT pour vous assurer qu'elles s'exécutent au moment où Windows détecte le matériel et commence à demander des pilotes; sinon, faites-les s'exécuter au début de la fichier batch en utilisant la startcommande pour éviter que le fichier batch ne soit bloqué sur eux car ils ne se fermeront pas.)
  6. :

    • Assurez-vous que tous les fichiers système requis sont en place. Exécutez (via le fichier batch) sfc /scannow. Assurez-vous d'avoir votre disque Windows dans le lecteur, en supposant que Windows dispose même des pilotes de CD / DVD installés. Vous pouvez également essayer de copier manuellement les fichiers manquants en mode hors connexion. Par exemple, j'ai copié tous les fichiers de ma dernière sauvegarde de XP, en spécifiant de ne pas écraser les fichiers existants. De cette façon, tous les fichiers manquants ont été restaurés (en particulier dans les répertoires suivants:

      • C: \ Windows
      • C: \ Windows \ INF
      • C: \ Windows \ Cache du pilote
      • C: \ Windows \ ServicePackFiles
      • C: \ Windows \ System32
      • C: \ Windows \ System32 \ dllcache
      • C: \ Windows \ System32 \ Drivers

      • (Il m'est également arrivé de restaurer les répertoires suivants non liés à l'installation matérielle peu de temps avant qu'il ne recommence à fonctionner. Coïncidence? Je ne sais pas.)

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

      • (Vous souhaiterez peut-être supprimer ou renommer C: \ Windows \ System32 \ CatRoot *)

  7. :

    • Supprimez tous les fichiers .PNF dans C: \ Windows \ INF. Windows les reconstruira à partir des fichiers .INF existants la prochaine fois qu'il devra installer un pilote (qui à ce stade est toujours à chaque démarrage). Cela revient à vider le cache du navigateur lorsqu'une page ne s'affiche pas correctement, afin de garantir que vous obtenez et utilisez la copie la plus récente des fichiers.

    • En dernier recours, procurez - vous et utilisez l'outil Microsoft DEVCONpour supprimer certains appareils afin que Windows puisse essayer d'installer le matériel à partir de zéro. Cependant, vous devez d'abord exécuter la commande (via votre fichier de commandes) DEVCON findall * > C:\t\devcon.logpour afficher une liste de tout votre matériel et de leurs ID correspondants. De cette façon, vous pouvez compiler une liste appropriée et personnalisée du matériel que vous souhaitez supprimer. Les appareils à supprimer sont les suivants:

      • "* ACPI *"
      • "HUB USB RACINE*"
      • "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 *"

      • (Il s'agit des principaux périphériques liés à la carte mère tels que les processeurs, les ports, les bus, les périphériques d'entrée, les cartes réseau, les disques durs et les lecteurs optiques.)


Comme vous pouvez le voir, il est (sans surprise) une énorme douleur pour faire fonctionner Windows à nouveau si vous plongez votre lecteur système dans un nouveau système (lire la carte mère) et que vous voulez éviter d'avoir à réinstaller. Le fait de n'avoir aucune méthode de saisie rend la tâche très difficile, mais pas impossible . Il faut beaucoup de temps, d' efforts, de patience, d' outils, d' attention aux détails, et la prudence, mais il est possible, et les récompenses (mettre hors d' une réinstallation complète et de perdre ainsi on ne sait combien de milliers de personnalisations effectuées au fil du temps ) peut en valoir la peine.

Heureusement, j'ai finalement réussi à le faire fonctionner parce que je ne suis pas prêt à installer et à réinstaller. Maintenant, je peux non seulement utiliser Outlook Express à nouveau (et télécharger et purger les quelque 5 000 e-mails qui s'étaient accumulés dans mes comptes), mais je peux à nouveau programmer un peu dans ma copie installée du bon vieux VS2003. (Non pas que je ne m'habitue pas à Windows 7; en fait, pendant un petit moment, je me suis senti bizarre de retour sous XP, mais je me sens à nouveau chez moi, comme emménager dans un dortoir pendant un an, puis revenir dans votre chambre à la maison.)


1

Je vais partager ma réponse d'ici, le script est correctement affiché sur le site MSFN: http://www.msfn.org/board/topic/49514-disable-found-new-hardware-wizard/?do=findComment&comment=1132792

J'ai créé un script AutoIt3 https://www.autoitscript.com/site/autoit/downloads/ qui continuerait avec toutes les fenêtres de l'Assistant Nouveau matériel acceptant les pilotes non signés, annulant les invites du CD WinXP et ignorant plusieurs options (connexion à Internet, etc.) , afin que la souris et le clavier soient détectés et installés. Le script d'auto compilation EXE doit être copié dans le dossier "Démarrer" (dans "Menu Démarrer") pour être exécuté automatiquement. Les chaînes de script DOIVENT être adaptées au langage Windows local. Et probablement aussi quelques combinaisons Alt-LETTER. Mon échantillon fonctionne en ESPAGNOL WinXP. J'espère que cela aide quelqu'un d'autre, après avoir fait fonctionner la souris et le clavier, le script doit être supprimé (ou déplacé vers un autre dossier):

$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 

Ne copiez pas simplement vos réponses sans mise en forme appropriée, il est très facile de corriger votre mise en forme afin que cette réponse soit bonne ici.
cascer1

Désolé cascer1, j'ai fait ce code moi-même, le formatage me convient, sauf pour une indentation manquante des FI à la fin.
isidroco

Je ne me souviens pas si j'avais commencé à utiliser AutoIt (ou AutoHotkey dans mon cas) en 2011, sinon j'aurais certainement utilisé cela. 👍
Synetech

0

L'assistant n'apparaît que si aucun pilote correspondant ne se trouve dans le chemin du pilote système. Selon le technet , vous devrez modifier HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ DevicePath hors ligne pour ajouter le ou les dossiers contenant vos informations de pilote afin de les rechercher automatiquement avant d'ouvrir l'assistant.

Il peut être plus simple de réinstaller avec tous les pilotes intégrés si cela ne fonctionne pas.


Cela semblait prometteur, mais malheureusement le réglage est déjà correct ( %SystemRoot%\inf). En fait, les entrées dans CurrentVersion\Setupsont également bonnes (comme DriverCachePathet Installation Sources). J'ai même fait en sorte que les fichiers INF, DriverCacheet DLLCachesont tous présents et pris en compte. Windows devrait être en mesure de trouver et d'installer des pilotes (au moins pour les composants de base, même si la carte vidéo ou quoi que ce soit était plus récent que Windows - ce n'est pas le cas - donc il n'avait pas de pilote. Je n'arrive pas à obtenir Windows pour détecter et installer les pilotes pour les ports ou les périphériques d'entrée
Synetech

Peut-être que vous n'avez pas vérifié leur COMMANDE? Lisez ceci . Il semble que vous ayez rencontré un problème similaire. Je pense que vous pouvez le corriger en montant la ruche et en réorganisant les entrées DevicePath, et faites en sorte que Windows recherche d'abord le clavier et la souris. (Feedback après 3 ans;))
Jet

0

Pour ce problème, j'ai ajouté Teamviewer au démarrage et installé le matériel manquant (/ w clavier et souris).


2
Cela nécessiterait soit de l'avoir préalablement installé avant d'en avoir besoin, soit de pouvoir utiliser le clavier et la souris pour pouvoir l'installer. Quoi qu'il en soit, l'accès à distance pourrait être une bonne idée, mais n'aidera pas dans une situation comme celle-ci.
Synetech

@Synetech, Impossible de l'installer automatiquement via un script de travail?
Pacerier
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.