IT-Automatisierung: Windows-Treiber über Kommandozeile oder GUI-Skriptsprachen installieren

(Last Updated On: 14. Juli 2015)

Bei einer automatisierten Neuinstallation eines Systems müssen als allererstes die Treiber installiert werden. Wenn Sie sich eine Antwortdatei für die automatische Windows-Installation erstellen möchten oder mehrere Windows-Clients über die Windows Deployment Services installieren wollen, müssen Sie sich zwangsläufig mit dieser Thematik auseinandersetzen.

Bei Komplettsytemen haben Sie ab und zu das Glück, dass Sie diese Treiber über ein zentrales Verwaltungstool des Herstellers installieren können, etwa über Dell Digital Delivery oder eine entsprechend andere Lösung. Hier würde es theoretisch genügen, die Treiberverwaltung des Herstellers zu skripten, um die Treiber vollständig einzuspielen.

Custom-Systeme jedoch ist es notwendig, sich die aktuellen Treiber automatisiert runterzuladen. Wie sie automatisiert aktuelle Versionen von Treibern oder Software herunterladen, habe ich Ihnen in meinem Post über Browserskripte gezeigt.

die meisten Treiber kommen heutzutage nicht mehr als .inf-Datei, wie es früher zu zeiten der 90er noch war, sondern als setup.exe oder .msi-Datei, die neben der eigentlichen .inf-Datei auch zusätzliche Software installiert (anmerkung: kann auch eine .sys-Datei sein). Von dort an haben Sie die Wahl: Entweder Sie skripten wie bereits an anderer Stelle schonmal gezeigt die setup.exe, welche den Treiber installiert, oder sie holen sich nur den eigentlichen Treiber aus dem Setup. Wenn Sie den Treiber automatisiert über die Windows Deployment Services installieren wollen, müssen Sie ihn extrahieren. Deswegen zeige ich Ihnen als erstes, wie Sie vielleicht an die .inf-Datei herankommen.

Wenn Sie Glück haben, liegen die .inf-Dateien nicht irggendwo versteckt in einer .exe, .msi oder .cab-Datei, sondern in einem Ordner. Nehmen wir an Sie laden sich einen Treiber runter, der in einer .zip- oder .rar-Datei eingepackt ist. im Hauptordner befindet sich eine setup.exe und mehrere Unterordner. Suchen Sie nach einem Unterordner namens drivers, inf oder so, oder suchen Sie allgemein nach Dateien mit der endung .inf. Bedenken Sie, dass Sie möglicherweise mehrere .inf-Dateien brauchen., Wenn sie sich nämlcih beispielsweise einen Treiber für ein Mainboard heruntergeladen haben, dann haben Sie eine .inf-Datei für denm PIC bus mit eibnem Nam,en wie amdkmpfd.inf, eine für den Chipsatz, eine für den eingebauten Sound- und eine für den eingebuaten Grafikchip usw. Desweiteren sind die .inf-Dateien bei einem Multi-OS-paket nach Betriebssystem sortiert. Es gibt also eine .inf-Datei für XP, eine für Vista, eine für Windows 7, eine für Windows 8 usw.

Wenn Sie Pech haben, liegt die .inf-Datei in der .exe oder .msi-Datei DRIN. als erstes sollten Sie versuchen, die .exe Datei in .exe.rar und .exe.zip umzubenennen und dann mit WinRar zu öffnen. Hilft das nicht, können Sie veruschen, die .exe Datie mit dem Tool UniversalExtractor oder mit 7Zip zu öffnen.

Die Treiberdateien könnten auch in einer .cab-Datei drin sein. Manche .cab-Dateien kann man mit WinRar öffnen, aber längst nicht alle. Sie können außerdem verushcen, die .cab-Datei mit der Expand.exe zu extrahieren.

DAnn können Sie noch probieren, die setup.exe auszuführen. Wenn Sie nach einem Ordner gefragt werden, in den die temporären Dateien während de rinstallation extrahiert werden sollen, können Sie in diesem temporären Ordner nochmla nach den .inf-Dateien suchen. Eventuell wurden diese nämlich für die installation entpackt.

Wenn die setup.exe selbst Sie nicht nach eienm Ordner fragt, kann es sein, dass die setup.exe stillschwiegend die Dateien extrahiert. Hierbi müssne Sie in Ordnern wie C:\Temp, C:\Windows\Temp, C:\<Hersteller>\, C:\Users\<IhrUsername>\Temp o. Ä. nachsehen, ob kurz vor der Installation, also wenn Sie im Installationsfenster auf Weiter Weiter klicken bis zum Fenster, bevor Sie den treiber letztendlich installieren, ob dort die .inf-Dateien eingelagert wurden.

Haben Sie auch hier die Dateien nicht gefunden, können Sie den Treiber installieren und schauen, ob ein Dateisystem-Überwachungstool wie

 

  • DirectoryMonitor
  • TheFolderspy
  • FileMon
  • Track Folder changes
  • Watch 4 Folder
  • FolderchangesView (empfohlen)
  • windows Explroer Tracker
  • Spy-The-Spy
  • SpyMe Tools
  • Disk Pulse
  • file Alert monito

Ihnen die hinzugekommenen Dateien ausspucken kann. Lassen Sie dazu die Ordner C:\Windows\INF und C:\Windows\systeme32\drivers überwachen. Sie können auch während der installation in einen dieser Ordner gehen und ständig F5 drücken um zu sehen, ob neue Dateien hinzufügen, und durch wechselndes Drücken von Strg+A, Strg+C und Strg+V Kopien der Dateien erzeugen, bevor die SEtuproutine sie löschen kann. Eventuell bekommen Sie dadurch ihre .inf-Datei heraus.

 

Hilft all das nichts, können Sie als nächstes versuchen, den Treiber auf einem System zu suchen, in dem der Treiber bereits installiert ist. die .inf-Datei ist ja schließlich auf dem System angewendet worden. Suchen Sie als allererstes unter C:\Windows\INF und dann unter C:\Windows\system32\drivers.  Sie werden hier natürlich viele INF-Dateien finden. Um zu wissen, welche Sie brauchen, suchen Sie im Windows-Geräte Manager (Start / ausführen / devmgmt.msc) nach dem Gerät, dessen Treiber sie haben wollen, rechtsklicken darauf und Wählen Eigenschaften. Im Reiter Treiber klicken Sie auf Details und sehen nun eine Liste mit Trieberdateien für dieses Gerät. Die wichtiggsten sind Treiber sind die mit der endung .sys oder diejenigen, die Sich im system32\drivers-Ordner befinden. Dateien, die es mehrfach gibt, sind in der Regel nutzlos: hierbei handelt es sich um meistens um generische Treiber, die von vielen Geräten benutzt werden. Um sicher zu gehen, dass es die richtigen .inf- und .sys-Dateien sind, öffnen Sie diese mit dem Notepad. Am Anfang und am ende von .inf und .sys-Dateien schreiben die Aturoen immer kommentare rein. Unten kommen meist verschiedene Sprachfetzen die später im installationsfenster der setup.exe auftauchen würden.

Jedenfalls: sobald Sie die richtige .inf-Datei gefunden haben, müssen Sie diese öffnen. In der .inf-Datei stehen eventuell die anderen Treiberdateien drin, die Sie brauchen. Ansonsten ist es gut, die Treiberdateien mitzunehmen, die im selben Ordner stekcen wie ide .inf-Datei oder in Unterordnern.

Wenn Sie nun alle wichtigen Dateien haben, können Sie den Treiber automatisiert über die Kommandozeile installieren lassen. Das foglende Kommando führt die Sektionen Defaultinstall und Defualtinstall.services in der INF-Datei aus

rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 <Pfad zur .inf-Datei>

Jetzt, da Sie die .inf-Hölle kennengelernt haben, haben Sie sich möglciherweise überlegt, einfach nur die Setuproutine mit einem .gui-Programm zu skripten. Das problem was wir bie der Treiberaktualisierung haben ist, dass Sie, wenn Sie mehrere Treiber aktualisieren wollen, nach jeder Trieberinstallation einen Neustart durchführen sollten. DAs erschwert die Sache nochmal zusätzlich, da Ihr Updateskript:

  • nach einem Neustart wieder gestartet werden muss
  • wissen muss, welche Treiber es  bereits installiert hat und welche noch nicht aktualisiert sind

Das AutoIt Skript können Sie im Autostart-Ordner von Windows ablegen, so dass sichergestellt ist, dass es beim Systemneustart erneut ausgefürht ist. Dann müssen Sei mit einer If-Else-Verwzeigung sicherstellen, dass nur Treiber installiert werden, die bisher noch nicht installiert wurden.Als Bedingung hierfür macht es Sinn, dass Sie mit AutoIt oder über die Kommandozeile eine Datei schreiben lassen, die mitzählt, wie viele Treiber derzeit installiert wurden. Mit AutoIt schreiben Sie eine Datei folgendermaßen

FileWrite("<Pfad zur Datei>","<Text">)

Sie können aber auch über die Kommandozeile schreiben lassen.

echo "<text>" > <Pfad zur Datei>

Ihr AutoIt Skript muss dann bei jedem Ausführen diese Datei einlesen. Das geht mider Funktion FileRead

FileRead("<Pfda zur Datei>")

Nun können Sie einer Variablen dem Wert aus der Datei zuweisen und dadurch mitzählen, wie viele Treiber bereits installiert wurden. Damit das sinn macht, müssen Sie natürlich vorher gezählt haben, wie viele treiber überhaupt insgesamt installiert werden müssen. Sie dürfen auch nicht vergessen, vor jedem Neustart nach einer Treiberinstallation den zähler der bereits installierten Treiber in der Zählerdatei hochzuzählen.

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.