Freigeben über


Problembehandlung bei der Installation der Treibersignatur

Die Installation eines vom Release signierten Treibers entspricht der Beschreibung unter Installieren, Deinstallieren und Laden des Test-Signed-Treiberpakets in der Testsignatur, mit Ausnahme von zwei zusätzlichen Schritten, die bei der Installation mit einer der dort beschriebenen Methoden erforderlich sind.

Wenn der Signierer des Treiberpakets noch nicht auf dem zu vertrauenswürdigen System eingerichtet wurde, wird möglicherweise das folgende Dialogfeld Windows-Sicherheit angezeigt.

Screenshot des Dialogfelds

Wenn Sie das Kontrollkästchen aktivieren, wird dieses Dialogfeld nicht mehr auf dem Computer angezeigt, wenn der Treiber erneut installiert wird oder wenn der Treiber aus irgendeinem Grund entfernt wird.

Hinweis Das System überprüft anhand des SPC, der zum Signieren des Katalogs verwendet wurde, ob die Herausgeberinformationen korrekt sind. Wenn die Vertrauensebene des Herausgebers unbekannt ist – wie für Contoso.com wahr – zeigt das System das Dialogfeld an. Damit die Installation fortgesetzt werden kann, muss der Benutzer Installieren auswählen. Weitere Informationen zur Vertrauensstellung und Treiberinstallation finden Sie unter Bewährte Methoden für die Codesignatur.

Ein nicht signierter Treiber zeigt das folgende Dialogfeld an, das es einem Benutzer ermöglicht, einen nicht signierten Treiber zu installieren (dies funktioniert möglicherweise nicht in x64-Version von Windows).

Screenshot des Dialogfelds

Vergewissern Sie sich, dass der Release-Signed-Treiber ordnungsgemäß funktioniert.

Verwenden Sie Geräte-Manager, um die Treibereigenschaften anzuzeigen (weiter oben für den testsignierten Treiber beschrieben). Im Folgenden sehen Sie den Screenshot, der zeigt, ob der Treiber funktioniert.

Screenshot: Toastergerät im Geräte-Manager

Problembehandlung bei Release-Signed Treibern

Im Folgenden finden Sie mehrere gängige Möglichkeiten, Probleme beim Laden von signierten oder testsignierten Treibern zu beheben:

  • Verwenden Sie Geräte-Manager, um zu überprüfen, ob der Treiber geladen und signiert ist, wie unter Überprüfen, ob der Test-Signed Treiber ordnungsgemäß funktioniert, bei der Testsignatur beschrieben.
  • Öffnen Sie die Datei setupapi.dev.log, die nach der Treiberinstallation im Verzeichnis %windir%\inf erstellt wurde. Lesen Sie den Abschnitt zum Festlegen des Registrierungseintrags und zum Umbenennen der Datei setupapi.dev.log vor der Installation des Treibers.
  • Überprüfen Sie das Windows-Sicherheitsüberwachungsprotokoll und die Codeintegritätsereignisprotokolle.

Analysieren der Datei Setupapi.dev.log

Wie bereits erläutert, werden alle Treiberinstallationsinformationen an die Datei setupapi.dev.log im Verzeichnis %windir%\inf protokolliert (angefügt). Wenn die Datei beim Testen der Treiberpaketinstallation umbenannt wird, bevor ein Treiber installiert wird, wird eine neue Protokolldatei generiert. Eine neue Protokolldatei ist einfacher, nach wichtigen Protokollen aus einer neuen Treiberinstallation zu suchen. Die Protokolldatei sollte jedoch nicht im Rahmen eines Produktionsszenarios umbenannt werden. Die Protokolldatei kann in jeder Beliebigen Textbearbeitungssoftware geöffnet werden.

Die linke meiste Spalte kann ein einzelnes Ausrufezeichen "!" haben. oder mehrere Ausrufezeichen "!!!". Das einzelne Ausrufezeichen ist eine Warnmeldung, aber das dreifache Ausrufezeichen weist auf einen Fehler hin.

Das folgende einzelne Ausrufezeichen wird angezeigt, wenn Sie eine Treiberpaketversion installieren, die mit einem von der Zertifizierungsstelle bereitgestellten SPC-Zertifikat signiert ist. Dies sind Warnungen, dass die Cat-Datei noch nicht überprüft wurde.

!    sig:                Verifying file against specific (valid) catalog failed! (0x800b0109)
!    sig:                Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
     sig:                Success: File is signed in Authenticode(tm) catalog.
     sig:                Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.

Wenn Sie die Schaltfläche "Installieren" in dem Dialogfeld auswählen, das angezeigt wird, wenn der Signierer auf diesem Computer noch nicht vertrauenswürdig ist, wird das protokoll unten angezeigt, was in den meisten Fällen bedeutet, dass der Treiber installiert und geladen wird. Der Geräte-Manager meldet keine Fehler oder ein gelbes Ausrufezeichen für den Treiber.

!    sto:           Driver package signer is unknown but user trusts the signer.

Wenn auch das folgende Fehlerprotokoll in der Protokolldatei angezeigt wird, wird der Treiber möglicherweise nicht geladen.

Die Datei setupapi.dev.log hat auch den folgenden Fehler gemeldet:

!!!  dvi:                          Device not started: Device has problem: 0x34: CM_PROB_UNSIGNED_DRIVER.

Beachten Sie, dass 0x34 Code 52 ist.

Überprüfen Sie zur Problembehandlung die Protokolldatei, und suchen Sie nach Ausrufezeichen neben einer Treiberbinärdatei. Führen Sie den signtool verify Befehl für die Cat-Datei und andere eingebettete signierte Binärdateien aus.

In der Regel reichen die Protokolldateiinformationen aus, um das Problem zu beheben. Wenn bei den obigen Überprüfungen die Grundursache nicht gefunden werden kann, überprüfen Sie das Windows-Sicherheitsüberwachungsprotokoll und die Codeintegritätsereignisprotokolle, die im nächsten Abschnitt beschrieben werden.

Verwenden des Windows-Sicherheit Überwachungsprotokolls

Wenn der Treiber nicht geladen werden konnte, weil ihm eine gültige Signatur fehlt, wird er als Überwachungsfehlerereignis aufgezeichnet. Überwachungsfehlerereignisse werden im Windows-Sicherheitsprotokoll aufgezeichnet, was angibt, dass die Codeintegrität den Imagehash der Treiberdatei nicht überprüfen konnte. Die Protokolleinträge enthalten den vollständigen Pfadnamen der Treiberdatei. Die Sicherheitsprotokollüberwachungsereignisse werden nur generiert, wenn die lokale Sicherheitsüberwachungsrichtlinie die Protokollierung von Systemfehlerereignissen ermöglicht.

Hinweis Das Sicherheitsüberwachungsprotokoll muss explizit aktiviert sein. Weitere Informationen finden Sie unter Anhang 3: Aktivieren der Codeintegritätsereignisprotokollierung und Systemüberwachung.

So überprüfen Sie das Sicherheitsprotokoll:

  1. Öffnen Sie ein Befehlsfenster mit erhöhten Rechten.
  2. Führen Sie zum Starten von Windows Ereignisanzeige Eventvwr.exe aus. Ereignisanzeige können auch über die Anwendung Systemsteuerung Computerverwaltung gestartet werden.
  3. Öffnen Sie das Windows-Sicherheitsüberwachungsprotokoll.
  4. Überprüfen Sie das Protokoll auf Systemintegritätsereignisse mit der Ereignis-ID 5038.
  5. Wählen Und halten Sie den Protokolleintrag gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie Ereigniseigenschaften aus, um das Dialogfeld Ereigniseigenschaften anzuzeigen, das eine detaillierte Beschreibung des Ereignisses enthält.

Der folgende Screenshot zeigt das Dialogfeld Ereigniseigenschaften für ein Sicherheitsüberwachungsprotokollereignis, das durch eine nicht signierte Toaster.sys Datei verursacht wurde.

Screenshot des Dialogfelds

Verwenden des Betriebsereignisprotokolls für Codeintegritätsereignisse

Wenn der Treiber nicht geladen werden konnte, weil er nicht signiert wurde oder einen Fehler bei der Imageüberprüfung generiert hat, zeichnet code integrity die Ereignisse im Betriebsereignisprotokoll Codeintegrität auf. Betriebsereignisse der Codeintegrität sind immer aktiviert.

Die Codeintegritätsereignisse können mit Ereignisanzeige angezeigt werden.

So untersuchen Sie das Codeintegritätsbetriebsprotokoll

  1. Öffnen Sie ein Befehlsfenster mit erhöhten Rechten.
  2. Führen Sie zum Starten von Windows Ereignisanzeige Eventvwr.exe aus. Ereignisanzeige können auch über die Anwendung Computerverwaltung Systemsteuerung gestartet werden.
  3. Öffnen Sie das Windows-Codeintegritätsprotokoll.
  4. Wählen Sie einen Protokolleintrag aus, halten Sie sie gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie Ereigniseigenschaften aus, um das Dialogfeld Ereigniseigenschaften anzuzeigen, das eine detaillierte Beschreibung des Ereignisses enthält.

Der folgende Screenshot zeigt das Dialogfeld Ereigniseigenschaften für ein Codeintegritäts-Betriebsprotokollereignis, das durch eine nicht signierte Toaster.sys-Datei verursacht wurde.

Screenshot mit der Ereignisanzeige.

Verwenden der Informationsereignisse im ausführlichen Codeintegritätsprotokoll

Die ausführliche Ansicht des Codeintegritätsinformationsprotokolls verfolgt Ereignisse für alle Überprüfungen im Kernelmodus nach. Diese Ereignisse zeigen eine erfolgreiche Imageüberprüfung aller Treiber, die auf das System geladen werden.

So aktivieren Sie die ausführliche Ansicht Codeintegrität:

  1. Starten Sie wie im vorherigen Beispiel Ereignisanzeige.
  2. Wählen Sie den Knoten Codeintegrität aus, um ihm den Fokus zu geben.
  3. Wählen Sie Codeintegrität aus, und halten Sie sie gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie im Kontextmenü das Element Ansicht aus.
  4. Wählen Sie Analyse- und Debugprotokolle anzeigen aus. Dadurch wird eine Unterstruktur mit zwei zusätzlichen Knoten erstellt: Operational und Ausführlich.
  5. Wählen Sie den Knoten Ausführlich aus, und halten Sie sie gedrückt (oder klicken Sie mit der rechten Maustaste darauf), und wählen Sie im Kontextmenü die Option Eigenschaften aus.
  6. Wählen Sie auf der Registerkarte Allgemein die Option Protokollierung aktivieren aus, um den ausführlichen Protokollierungsmodus zu aktivieren.
  7. Starten Sie das System neu, um alle Kernelmodus-Binärdateien neu zu laden.
  8. Öffnen Sie nach dem Neustart das MMC Computer Management-Snap-In, und zeigen Sie das ausführliche Ereignisprotokoll Codeintegrität an.

Einige weitere bekannte Probleme mit der Treibersignatur werden in Anhang 4: Probleme bei der Treibersignatur beschrieben.