Windows 7 Treiberrepository + pnputil.exe

Sitze ja gerade im Seminar und fasse mich kurz, nur das Gelernt schnell niederschreiben.

In Windows 7 sind alle verfügbaren Treiber, die auch mit Windows schon mitgebracht werden, in einem großen Repository zusammengefercht. Das sogenannte Treiberrepository nimmt neue Treiber auf und beinhaltet bestehende Treiber.

Pfad:

C:\Windows\System32\DriverStore\FileRepository

Hier liegen alle vorhandenen Treiber in je einem Unterordner. In der Windows 7 Rohinstallation dürften zwischen 500 und 550 Treiber zur Verfügung stehen. Dadurch werden z.B. USB Geräte erkannt, obwohl man noch nie einen USB Treiber installiert hatte.

Wenn man über den Hardwaremanager neue Treiber für ein Gerät installiert dann werden die nötigen Dateien für die Geräteverwaltung dort abgelegt.
Wie macht das der Treiberinstallations-Assistent? Man gibt den Pfad zu der Treiber .inf Datei an und im Hintergrund startet der Assistent das Tool pnputil.exe mit dem Pfad zu der Treiberdatei.

pnputil.exe Usage:

C:\Users\Hannes>pnputil /?
Microsoft-PnP-Dienstprogramm
Syntax:
------
pnputil.exe [-f | -i] [ -? | -a | -d | -e ] 
Beispiele:
pnputil.exe -a a:\usbcam\USBCAM.INF      -> Durch USBCAM.INF angegebenes Paket hinzufügen
pnputil.exe -a c:\drivers\*.inf          -> Alle Pakete aus "c:\drivers\" hinzufügen
pnputil.exe -i -a a:\usbcam\USBCAM.INF   -> Treiberpaket hinzufügen und installieren
pnputil.exe -e                           -> Alle Drittanbieterpakete auflisten
pnputil.exe -d oem0.inf                  -> Paket "oem0.inf" löschen
pnputil.exe -f -d oem0.inf               -> Löschen von Paket "oem0.inf" erzwingen
pnputil.exe -?                           -> Dieser Syntaxbildschirm

Es können also neue Treiber installiert werden mit:

pnputil.exe -a \\server\pfad\driver\Kamera.inf

Bei komplexeren Geräten, die ganze Treiberstrukturen benötigen:

pnputil.exe -a \\server\pfad\canon\ir3035dn\*.inf

So werden mehrere .inf Treiber eines Ordners installiert.

Der Assistent der Geräteverwaltung gibt also den durch „Durchsuchen“ ausgewählten Pfad des Benutzers einfach an dieses Tool weiter. Ihn zu verwenden ist aber wahrscheinlich sicherer, da der Assistent weitere Gegebenheiten prüft, wie z.B. 32bit/64bit Treiber, kompatibel, signiert oder nicht etc.

4 Kommentare

  1. Hallo Herr Schurig,

    guten Tag
    und meine Bewunderung für Ihre repräsentative Web-Site.
    Nicht nur Bewunderung, sondern auch Gratulation hierfür.
    Ich bin ein 72-jähriger Rentner,
    der auf der Suche nach einer Möglichkeit war,
    daß er seine etwas älteren,
    aber noch gut funktionieren HP-Drucker auch unter W7x64
    weiter gebrauchen kann. Da ich nicht so der Windows-Experte
    bin, deshalb versuchte ich herauszufinden,
    wo die Druckertreiber abgelegt werden müsse,
    damit sie gefunden werden. Nun bin wesentlich schlauer,
    denn dank Ihrem Hinweis auf „pnputil-exe“ weiß ich jetzt,
    daß eigentlich der Weg über die Informations-Datei führt,
    denn diese verweist dann auf die eigentliche Treiberdatei.
    Ich habe mehrere Treiber von HP und von MS für meine Drucker
    heruntergeladen, aber ich wüßte nun noch gern,
    wie die jeweiligen inf auszusehen hat oder wie kann ich diese
    überhaupt selbst erstellen.
    Ich habe die üblichen Ordner und Dateien unter:
    „C:/Windows/System32/DriverStore“ gefunden, da sind:
    de=DE
    en=US
    FileRepository
    Temp
    drvindex.datINFCACHE.1 (weiß nicht, ob es wirklich ein Punkt war)
    infpnp.dat
    instor.dat
    infstring.dat

    Wohin müßte die neuen Information mit dem Verweis auf den neuen
    Druckertreiber geschrieben werden. Es ist sicher eine Batchdatei,
    wie ich sie noch von früher aus DOS-Zeiten kenne.
    Rein ablaufmäßig ist mir da alles klar, nur wie machen fällt mir da
    noch schwer. Wenn ich auf meinem Rechner die richtige Info-Datei
    hätte(natürlich auch den richtigen Treiber, welchen ich habe),
    dann wäre es ein Leichtes, ein Gerät oder Drucker hinzu zufügen.
    Mit der Drucker-Hinzufügen-Routine funktioniert USB-Anmeldung
    problemlos, danach sucht die Routine den Drucker(Treiber) und kann ihn nicht finden, weil sie ja im Grunde genommen eine nicht
    vorhanden inf Date sucht. So ich hoffe mich richtig mitgeteilt zu haben. Für eine Antwort bedanke ich mich schon mal im Voraus.

    Mit freundlichem Gruß

    Cornelius Schulze

  2. Hallo Herr Schulze,
    vielen Dank für die nette Einleitung.
    Um welchen HP Drucker geht es denn? Ich gehe davon aus, dass HP für den Drucker keine Windows 7 oder Windows Vista Treiber anbietet, wodurch Sie überhaupt erst gezwungen sind, andere Lösungen zu finden?
    Ich würde vermuten, dass in dem Treiberdownload (dann ist vermutlich Windows XP der aktuellste Treiber) mehrere .inf Dateien enthalten sind – ist bei Treibern ja fast immer der Fall. Ein Druckertreiber unterstützt meist eine ganze Sammlung an Druckermodellen und Variationen, weshalb es meistens mehrere .inf Dateien sind.
    Daher würde ich es dann so machen wie im Beitrag beschrieben:
    CMD als Admin öffnen und dann

    pnputil.exe -a C:pfadzumtreiberordner*.inf

    Dadurch werden alle Treiber aus dem Verzeichnis installiert, wenn möglich.

    Geben Sie gerne Feedback hier oder per Mail, wie es lief.

  3. Hallo Herr Schurig,
    guten Abend und nochmals danke für Ihre nette Antwort.
    Gern führe ich hier aus, was ich so unternommen habe um einen Weg zu den Druckertreibern für W7 und höher zu finden.
    Für mein unstrukturiertes Schreiben und meine Tippfehler möchte ich mich im Voraus bei allen, die hier lesen entschuldigen.
    Ihre Frage nach dem Drucker ist schnell beantwortet.
    Es ist ein HP DeskJet 970 Cxi, ich habe davon mehrere,
    auch wenn es ältere Modelle sind, sie funktionieren ausgezeichnet,
    sie bedrucken auch die Rückseiten. Habe vorher ausschöießlich XP
    benutzt und alles lief wunderbar. Nunhabe ich auf einen Dell E6500
    Windows7 64Bit installiert und ich stoße fast an die Grenzen meines
    Könnens. Das Betriebssystem ist mir Fremd(nicht unangenehm) und
    ich finde mich nicht so gut zurecht wie bei XP. Aber irgendwann muß
    man sich auch trennen, auch wenn etwas Wehmut dabei ist.
    Habe nach langer Sucherei im Web, doch einiges Vielversprechende
    für W7x32, W7x64, 8, 8.1 und 10 gefunden.
    Auf den Seiten von HP gibt es offiziell für ältere Drucker unter W7 und höhere Versionen keine Druckertreiber mehr.
    Wird es auch nicht nicht mehr geben(vielleicht wird auf diese Art der Drucker-Neukauf forciert).
    Allerdings geht da über Umwege vielleicht doch noch was,
    denn habe drei HP-Universal-Print-Driver (UPD) gefunden,
    welche fast alle HP-Drucker, zurückgehend bis 1997,
    noch als Treiber unter W7 oder höher, dienen könne sollen.
    Für die Leser, welche sich mit Druckersprache auskennen,
    ein kleiner Hinweis: pcl5 (2015), pcl6 (2016) und ps (2016)
    Diese Treiberdateien kann ich bei Bedarf zur Verfügung stellen.
    Innerhalb des HP universal Printing Installer gibt es 3 Button und
    2 Kästchen.
    Habe hier den Button „USB mode-Plug and Play“ angeklickt,
    sowie Kästchen“Add’HP UPD PCL6 driver to Windows driverstore“.
    Aber ob da wirklich was angekommen ist, ist hier die Frage.
    Also hierzu dann in einem nachfolgendem Kommentar.
    Weiterhin habe ich für die relevanten Windows-Versionen,
    Microsoft eigene Druckertreiber gefunden, wobei es diese für fast alle Drucker gibt, denn hier braucht man nur die Druckerbezeichnung
    eingeben und auswählen ob für Wx32 oder Wx64, natürlich nicht so.
    Sondern wie folgt:
    Hierzu mußte der MS-IE benutzt werden, weil den Browsern anderer
    Hersteller der Zutritt zu dieser Web-Site von MS verweigert wird.
    Hier nur die Druckerbezeichnung (HP DeskJet 970 Cxi) eingeben und
    schon war ich bei der Auswahl: „Windows7“ was W7x32 bedeutet oder „Windows7, Windows Server 2008 R2“ was Wx64 oder höher
    bedeutet. Also einfacher ging es nicht.
    Da ich kein Geheimnis-Krämer bin, und einige der Leser vielleicht auch einen Druckertreiber runterladen wollen.
    Also hier ist die Microsoft-Website „catalog.update.microsoft.com“
    Ich mache nun erstmal Schluß und warte die Reaktion ab,
    welche diesem Schreiben folgen wird. Wenn ich genug Zeit habe,
    dann berichte ich mal, wie weit ich mit der vorliegenden Treiber-
    Geschichte gekommen bin. Bis dahin,

    Mit freundlichen Grüssen (auch an die Leser-Gemeinschaft)

    Cornelius Schulze

Schreibe einen Kommentar