Ominięcie „Kreatora znajdowania nowego sprzętu” / Ustawienie automatycznego instalowania sterowników przez system Windows


9

Moja płyta główna w końcu zmarła po przeszło dekadzie, więc kupiłem używany system. Włożyłem stary dysk twardy i kartę dźwiękową do nowego systemu i podłączyłem starą klawiaturę i mysz (pozostałe komponenty - CPU, RAM, mobo, karta graficzna - pochodzą z nowego systemu).

Wiedziałem wcześniej, że wyzwaniem będzie uruchomienie systemu Windows i zainstalowanie sterowników dla nowego sprzętu (zwłaszcza, że ​​podstawowe komponenty są nowe), ale nie jestem w stanie nawet podjąć próby instalacji sterowników dla takich rzeczy, jak karta wideo, ponieważ klawiatura i mysz nie działa (oni zrobić pracę, na ekranie systemu BIOS w trybie DOS, Windows 7, XP w menu startowym na itp, nie tylko w systemie Windows XP samego).

Ilekroć próbuję uruchomić XP (w trybie normalnym lub awaryjnym), pojawia się kilka balonów wyskakujących dla całego wykrytego nowego sprzętu oraz Kreator znajdowania nowego sprzętu dla procesora (oczywiście musi on zainstalować sterowniki dla komponentów najniższego poziomu) na górze). Niestety nie mogę kliknąć Dalej, ponieważ klawiatura i mysz jeszcze nie działają, ponieważ sterowniki płyty głównej (dla portów PS / 2 lub USB) nie są jeszcze zainstalowane. Próbowałem nawet myszy szeregowej, ale bezskutecznie - znowu działa w DOS, 7 itd., Ale nie w XP, ponieważ nie ma zainstalowanego sterownika portu szeregowego.

Próbowałem zamontować ule SOFTWARE i SYSTEM w systemie Windows 7, aby ręcznie ustawić „ostrzeżenie o niepodpisanych sterownikach”, aby ignorowało (używając obu ustawień zasad podpisywania sterowników, do których odnalazłem odniesienia). To nie działało; Nadal mam czarodzieja.

Nie są nawet fantazyjnymi, zastrzeżonymi, zewnętrznymi lub niepodpisanymi sterownikami. Są to sterowniki dostarczane z systemem Windows - takie jak sterowniki procesora, pamięci RAM, kontrolera IDE itp. A sterowniki klawiatury i myszy są w tym przypadku ogólne (ale jak powiedziałem, nie mają one znaczenia, ponieważ sterowniki portów, do których są podłączone, nie są jeszcze zainstalowane).

Oczywiście w pewnym momencie w ciągu ostatnich kilku lat zmieniono ustawienie, aby system Windows zawsze wyświetlał mi monit o wykrycie nowego sprzętu. (Został również skonfigurowany do wyświetlania Śledzenia zdarzeń zamykania podczas nienormalnych wyłączeń, więc musiałem to wyłączyć, aby móc zobaczyć pulpit).

Aha, i próbowałem usunąć wszystkie pliki PNF, aby je zregenerować, ale to też nie pomogło.

Czy ktoś wie, jak mogę zresetować system Windows, aby przynajmniej spróbować automatycznie zainstalować sterowniki nowego sprzętu przed wyświetleniem monitu o awarię? Z drugiej strony, czy ktoś wie, jak dokładnie wyłączyć automatyczną instalację sterowników (i poprosić kreatora)?

Wielkie dzięki.


Żeby było jasne, ponieważ w przeciwnym razie prawdopodobnie pojawią się w odpowiedziach, NIE mówię o poniższym oknie dialogowym, mówię o poniższym.

alternatywny tekst

alternatywny tekst


Aha, i aby zasugerować następujące sugestie, zanim się pojawią , używając Menedżera urządzeń do wyłączania, odinstalowywania, naprawy itp. Dowolne urządzenia nie wchodzą w rachubę, ponieważ jeśli klawiatura i mysz (lub inne urządzenie wejściowe) nie są t zainstalowany / działający, to jak dokładnie miałbym wykonywać jakieś czynności, takie jak korzystanie z Menedżera urządzeń?

Odpowiedzi:


10

W końcu w piątek Windows XP działał na moim starym systemie! Łał! (Zajęło to tylko 5 i pół miesiąca.)

Podałbym konkretne kroki niezbędne do rozwiązania tego problemu, na wypadek, gdyby ktoś napotkał podobny problem, jednak niestety, z powodu rosnącej frustracji i niecierpliwości, ostatecznie podjąłem podejście nieco wypalone i wykonałem wiele kroków naraz. Zachowałem jednak działające pliki, których użyłem, i wypatrzyłem wprowadzone przeze mnie zmiany, więc wymienię kilka rzeczy, które warto wypróbować, a przynajmniej powinny pomóc.

(Oczywiście jest to zaawansowany materiał dla zaawansowanych użytkowników; chociaż nawet zaawansowani użytkownicy mogą zepsuć to bardzo źle, stąd początkowy krok tworzenia kopii zapasowej).


Podsumowując ten problem, dysk-dysk zawierający istniejącą instalację systemu Windows jest wprowadzane do nowego systemu, a system Windows nie automatycznie zainstalować sterowniki dla sprzętu i pyta użytkownika, aby zainstalować niepodpisane sterowniki, nawet dla kierowców, które rzekomo mają być podpisane. Ponadto użytkownik nie może zaakceptować okien dialogowych, ponieważ system Windows nie zainstalował sterowników klawiatury lub myszy (lub innych urządzeń wejściowych).


Oto wersja tl; rd:

  1. Wykonaj kopię zapasową uli rejestru.
  2. Wyłącz każdy program, sterownik i usługę, które możesz.
  3. Ustaw rzeczy (takie jak pasek zadań), aby wszystko było widoczne (nie ukrywaj żadnych informacji).
  4. Automatycznie uruchom plik .BAT, aby łatwo wprowadzać zmiany i wykonywać zadania online (w systemie operacyjnym).
  5. Użyj aplikacji makr / skryptów, aby zautomatyzować naciskanie klawiszy i klikanie przycisków, ponieważ nie możesz tego zrobić samodzielnie.
  6. Upewnij się, że wszystkie pliki systemowe są obecne.
  7. Ręcznie usuń problematyczny i nieobecny sprzęt.

  1. :

    • Uruchom (czysty) DOS lub inny system operacyjny i zrób kopię zapasową gałęzi rejestru w innej lokalizacji. Obejmuje to %systemroot%\System32\CONFIG\*i%userprofile%\NTUSER.DAT

    • Upewnij się, że ustawienia dysku / partycji w BOOT.INI i SystemBootDevice[HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet00 * \ Control] są ustawione poprawnie, ponieważ dysk systemowy może być teraz na innym dysku / partycji niż kiedyś (w moim przypadku (r) dysk był kiedyś 0, ale teraz był 1 z powodu nowego napędu).

  2. :

    • Zamontuj odpowiednie gałęzie rejestru i wyłącz wszystkie dodatkowe programy uruchamiane automatycznie, w szczególności wszystko, co wyrzuca okna i inne rzeczy zasłaniające widok, ponieważ nie będziesz w stanie ich zminimalizować ani kliknąć innych okien / okien dialogowych z przodu (możesz należy uprościć, aby rozwiązać taki problem). Nie musisz usuwać wpisów uruchamianych automatycznie, możesz je zamiast tego wyłączyć, aby były nadal dostępne, gdy uruchomisz system Windows i chcesz je ponownie uruchomić automatycznie (szczególnie w przypadku wpisów zawierających kilka poleceń -liniczne argumenty):

      • W przypadku Runklawiszy możesz po prostu wrzucić #znak lub coś na początku polecenia. W ten sposób system Windows nie będzie mógł go uruchomić, ponieważ nie jest to prawidłowy plik i zignoruje go.

      • Zamontuj gałęzię SYSTEM i ustaw startparametr na wyłączony (dword: 4) dla wszelkich obcych sterowników i usług (szczególnie dla sprzętu, którego już nie ma).

      • Wyłącz PageDefrag itp. W BootExecute… \ Control \ Session Manager, dodając a #na początku polecenia (choć zostaw to w autocheckspokoju, ponieważ będziesz chciał sprawdzić / naprawić dyski, jeśli w końcu będziesz musiał ponownie uruchomić komputer za pomocą przycisku resetowania).

      • Zamiast usuwać skróty z Startupfolderów, po prostu przenieś je gdzie indziej.  

    • Ustaw system Windows, aby instalował sterowniki bez względu na podpisywanie sterowników, instalując gałęzie i ustawienia rejestru SOFTWARE i NTUSER \Software\Microsoft\Driver Signingoraz \Software\Microsoft\Non-Driver Signingna BIN: 00.

  3. :

    • Będziesz chciał zobaczyć pasek zadań i obszar powiadomień, więc włącz najwyższe i wyłącz automatyczne ukrywanie, montując NTUSER i edytując, \Software\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2aby ustawić 9 bajt tak, aby bit 0 był wyłączony, a bit 1 włączony (0x7A wyświetli maksymalną informację ). Wyłącz także wszelkie inne programy do konsolidacji / manipulacji na pasku zadań, takie jak TrayManager PCMag (być może masz go, zanim zaczął sprzedawać swoje narzędzia).
  4. :

    • Zamontuj gałąź SOFTWARE i dodaj pozycję automatycznego uruchamiania, aby podczas uruchamiania uruchamiać plik .BAT (bez powodu nazwałem mój C:\t\j.BAT). Teraz możesz łatwo zmusić system Windows do robienia rzeczy bez bezpośredniego wkładu. To prawda, że ​​wymaga ponownego uruchomienia w innym systemie operacyjnym, modyfikacji pliku wsadowego i ponownego uruchomienia systemu Windows, aby dokonać zmiany, ale jest to lepsze niż brak możliwości robienia czegokolwiek w systemie Windows. ;-)(Możesz komentować rzeczy zamiast po prostu je usuwać.) Dodaj polecenie na końcu pliku wsadowego, aby ponownie uruchomić system Windows, np shutdown -t 10 -r. Nie zapominaj o tym, bo w końcu będziesz musiał nacisnąć przycisk resetowania!

    • W pliku wsadowym (np. j.bat) Wykonaj określone czynności, takie jak importowanie dowolnych plików .REG (które możesz edytować offline, w innym systemie operacyjnym, tak jak możesz to zrobić z plikiem wsadowym). Poproś, aby plik wsadowy uruchomił Menedżera urządzeń i zmaksymalizował okno (za pomocą narzędzia takiego jak Nircmd ), abyś mógł zobaczyć aktualny stan sprzętu. (Spróbuj użyć narzędzia wiersza polecenia, takiego jak QRes, aby ustawić maksymalną rozdzielczość sterownika wideo - który w tym momencie może być zwykłym adapterem VGA - np. 1024x768.) Możesz także ponownie zarejestrować pliki .DLL, aby naprawić niektóre problemy, szczególnie te związane z Windows Update.

    • Nie chcesz, aby plik wsadowy działał szybko i szaleńczo, więc chcesz uzyskać narzędzie wiersza polecenia, które może wstrzymywać się na określoną liczbę sekund w celu wstrzymania wykonywania skryptu - nie, pausepolecenie nie jest dobre, ponieważ Aby kontynuować, należy nacisnąć klawisz. (Korzystałem z programu, który napisałem lata temu, ale jest wiele dostępnych w Internecie lub po prostu zwykłego hacka .)

  5. :

    • Otrzymuj aplikację rejestrator makr / skryptów jak HotkeyMaster , WinMacro , MacroMaker , AutoHotkey , AutoIt! itp. i skonfiguruj go tak, aby wykonywał dowolne czynności klawiatury lub myszy (w ten sposób możesz „robić” rzeczy w systemie Windows bez posiadania żadnych urządzeń wejściowych). Będziesz chciał skonfigurować go tak, aby wykrywał niektóre okna lub okna dialogowe według tytułu i / lub klasy i / lub kontrolował oraz odpowiednio wykonywał określone kliknięcia myszy lub naciśnięcia klawiszy. Na przykład możesz ustawić automatyczne wykrywanie okien dialogowych potwierdzenia sterownika i wywoływać kliknięcie przycisku NextlubContinueguziki. (Pamiętaj, aby ustawić aplikację makr tak, aby uruchamiała się podczas uruchamiania zamiast w pliku .BAT, aby upewnić się, że działają one do czasu wykrycia sprzętu przez system Windows i uruchomienia monitowania o sterowniki; alternatywnie należy je uruchomić na początku plik wsadowy za pomocą startpolecenia, aby uniknąć zablokowania pliku wsadowego na nich, ponieważ nie zostaną one zamknięte).
  6. :

    • Upewnij się, że wszystkie wymagane pliki systemowe są na miejscu. Uruchom (za pomocą pliku wsadowego) sfc /scannow. Upewnij się, że masz dysk Windows w napędzie - zakładając, że Windows ma nawet zainstalowane sterowniki CD / DVD. Możesz także spróbować ręcznie skopiować brakujące pliki w trybie offline. Na przykład skopiowałem wszystkie pliki z mojej ostatniej kopii zapasowej XP, zaznaczając, aby nie zastępować istniejących plików. W ten sposób przywrócono wszystkie brakujące pliki (szczególnie w następujących katalogach:

      • C: \ Windows
      • C: \ Windows \ INF
      • C: \ Windows \ Pamięć podręczna sterowników
      • C: \ Windows \ ServicePackFiles
      • C: \ Windows \ System32
      • C: \ Windows \ System32 \ dllcache
      • C: \ Windows \ System32 \ Drivers

      • (Zdarzyło mi się również przywrócić następujące katalogi niezwiązane ze sprzętową instalacją niedługo, zanim w końcu znowu zaczął działać. Przypadek?

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

      • (Możesz faktycznie chcieć usunąć lub zmienić nazwę C: \ Windows \ System32 \ CatRoot *)

  7. :

    • Usuń wszystkie pliki .PNF z C: \ Windows \ INF. System Windows odbuduje je z istniejących plików .INF przy następnej instalacji sterownika (który w tym momencie jest nadal przy każdym rozruchu). Jest to podobne do czyszczenia pamięci podręcznej przeglądarki, gdy strona nie wyświetla się poprawnie, aby mieć pewność, że otrzymujesz i używasz najbardziej aktualnej kopii plików.

    • W ostateczności pobierz i użyj narzędzia Microsoft DEVCONdo usunięcia niektórych urządzeń, aby system Windows mógł spróbować zainstalować sprzęt od zera. Najpierw jednak należy uruchomić polecenie (za pomocą pliku wsadowego), DEVCON findall * > C:\t\devcon.logaby zrzucić listę całego sprzętu i odpowiadających im identyfikatorów. W ten sposób możesz skompilować odpowiednią i niestandardową listę sprzętu, który chcesz usunąć. Ważnymi urządzeniami do usunięcia są:

      • „* ACPI *”
      • "GŁÓWNY HUB USB*"
      • „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 *”

      • (Są to główne urządzenia związane z płytą główną, takie jak procesory, porty, magistrale, urządzenia wejściowe, karty sieciowe, dyski twarde i napędy optyczne).


Jak widać, (co nie jest zaskakujące) ogromnym problemem jest ponowne uruchomienie systemu Windows, jeśli umieścisz dysk systemowy w nowym systemie (czytaj płytę główną) i chcesz uniknąć ponownej instalacji. Brak metody wprowadzania danych sprawia, że ​​jest to bardzo trudne, ale nie niemożliwe . Zajmuje dużo czasu, wysiłku, cierpliwości, narzędzi, dbałości o szczegóły i ostrożności, ale jest to możliwe i korzyści (odkładając całkowitą ponowną instalację, a tym samym tracąc, kto wie, ile tysięcy dostosowań dokonanych w czasie ) może być tego warte.

Na szczęście w końcu udało mi się go uruchomić, ponieważ nie jestem gotowy, aby po prostu uruchomić i ponownie zainstalować. Teraz mogę nie tylko ponownie używać programu Outlook Express (i pobierać i usuwać około 5000 wiadomości e-mail, które zgromadziły się na moich kontach), ale mogę także ponownie programować w zainstalowanej kopii starego dobrego VS2003. (Nie dlatego, że nie przyzwyczaiłem się do systemu Windows 7; w rzeczywistości przez jakiś czas czułem się dziwnie w XP, ale znów czuję się jak w domu, jak na rok przenosi się do akademika, a potem wraca do twojego sypialnia w domu.)


1

Podzielę się stąd odpowiedzią, skrypt jest poprawnie wyświetlany w witrynie MSFN: http://www.msfn.org/board/topic/49514-disable-found-new-hardware-wizard/?do=findComment&comment=1132792

Zrobiłem skrypt AutoIt3 https://www.autoitscript.com/site/autoit/downloads/, który będzie kontynuował pracę z wszystkimi oknami Kreatora nowego sprzętu akceptującymi niepodpisane sterowniki, anulowaniem monitów CD WinXP i pomijaniem wielu opcji (połączenie z Internetem itp.) , aby wykryć i zainstalować mysz i klawiaturę. Skompilowany plik EXE automatycznego skryptu powinien zostać skopiowany do folderu „Start” (w „Menu Start”), aby został automatycznie wykonany. Ciągi skryptów MUSZĄ być dostosowane do lokalnego języka Windows. I prawdopodobnie także niektóre kombinacje Alt-LITTER. Moja próbka działa w HISZPAŃSKIM WinXP. Mam nadzieję, że pomoże to komuś innemu, po uruchomieniu myszy i klawiatury skrypt musi zostać usunięty (lub przeniesiony do innego folderu):

$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 

Nie wystarczy kopiować i wklejać odpowiedzi bez odpowiedniego formatowania, bardzo łatwo jest poprawić formatowanie, więc ta odpowiedź wygląda dobrze tutaj.
cascer1

Przepraszam cascer1, sam stworzyłem ten kod, formatowanie wygląda dla mnie dobrze, z wyjątkiem niektórych brakujących wcięć IF na końcu.
isidroco

Nie pamiętam, czy zacząłem używać AutoIt (lub AutoHotkey w moim przypadku) w 2011 roku, inaczej na pewno bym tego użył. 👍
Synetech

0

Kreator wyskakuje tylko wtedy, gdy w ścieżce sterownika systemowego nie ma zgodnego sterownika. Według technet , musisz zmodyfikować HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ DevicePath offline, aby dodać foldery zawierające informacje o sterowniku, aby automatycznie je przeszukiwać przed pojawieniem się kreatora.

Ponowna instalacja ze wszystkimi sterownikami może być prostsza, jeśli to nie działa.


Wyglądało to obiecująco, ale niestety ustawienie jest już poprawne ( %SystemRoot%\inf). W rzeczywistości wpisy w CurrentVersion\Setupsą również dobre (jak DriverCachePathi Installation Sources). Mam nawet upewnić się, że pliki w INF, DriverCachei DLLCachesą obecne i rozliczane. Windows powinien być w stanie znaleźć i zainstalować sterowniki (przynajmniej dla podstawowych składników, nawet jeśli karta wideo lub cokolwiek były nowsze niż Windows - to nie jest - więc nie miał sterownika. Po prostu nie mogę uzyskać Windowsa do wykrywania i instalowania sterowników portów lub urządzeń wejściowych
Synetech

Może nie sprawdziłeś ich ZAMÓWIENIA? Przeczytaj to . Wygląda na to, że napotkałeś podobny problem. Wierzę, że można to naprawić, montując gałąź i zmieniając kolejność wpisów DevicePath, i sprawiając, że Windows najpierw znajdzie klawiaturę i mysz. (Informacje zwrotne po 3 latach;))
Jet

0

W przypadku tego problemu dodałem Teamviewer przy starcie i zainstalowałem brakujący sprzęt (/ w klawiaturę i mysz).


2
Wymagałoby to wcześniejszego zainstalowania go przed użyciem lub użycia klawiatury i myszy, aby móc go zainstalować. Tak czy inaczej zdalny dostęp może być dobrym pomysłem, ale nie pomoże w takiej sytuacji.
Synetech,

@ Synetech, Nie możesz zainstalować go automatycznie za pomocą skryptu?
Pacerier 18.04.15
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.