Erste Schritte mit der Ereignissammlung für Setup und Start
Übersicht
„Ereignissammlung für Setup und Start“ ist ein neues Feature in Windows Server 2016, mit dem Sie einen Sammlungscomputer angeben. Dieser erfasst eine Vielzahl von wichtigen Ereignissen, die auf anderen Computern auftreten, wenn sie starten oder den Installationsvorgang durchlaufen. Die erfassten Ereignisse können Sie später mit der Ereignisanzeige, Message Analyzer, Wevtutil oder Windows PowerShell-Cmdlets analysieren.
Bisher konnten diese Ereignisse nicht überwacht werden, da die für ihre Erfassung erforderliche Infrastruktur erst vorhanden ist, wenn bereits ein Computer eingerichtet ist. Zu den Arten von Setup- und Startereignissen, die Sie überwachen können, gehören:
Laden von Kernelmodulen und Treibern
Enumeration von Geräten und Initialisierung ihrer Treiber (einschließlich Geräte wie CPU-Typ)
Überprüfen und Einbinden von Dateisystemen
Starten ausführbarer Dateien
Starten und Abschließen von Systemupdates
Die Punkte, an denen das System für die Anmeldung verfügbar wird und die Verbindung mit einem Domänencontroller herstellt, beim Abschluss des Dienststarts und in Bezug auf die Verfügbarkeit von Netzwerkfreigaben
Auf dem Sammlungscomputer muss Windows Server 2016 ausgeführt werden (er kann sich entweder im Modus „Server mit Desktopdarstellung“ oder im Modus „Server Core“ befinden). Auf dem Zielcomputer muss entweder Windows 10 oder Windows Server 2016 ausgeführt werden. Sie können diesen Dienst auch auf einem virtuellen Computer ausführen, der auf einem Computer gehostet wird, auf dem Windows Server 2016 nicht ausgeführt wird. Die folgenden Kombinationen von virtualisierten Sammlungs- und Zielcomputern funktionieren bekanntermaßen:
Virtualisierungshost | Sammlungs-VM | Virtueller Zielcomputer |
---|---|---|
Windows 8.1 | ja | ja |
Windows 10 | Ja | ja |
Windows Server 2016 | ja | ja |
Windows Server 2012 R2 | ja | nein |
Installieren des Sammlungsdiensts
Ab Windows Server 2016 ist der Ereignissammlungsdienst als optionales Feature verfügbar. In diesem Release können Sie ihn mithilfe von DISM.exe mit diesem Befehl an einer Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten installieren:
dism /online /enable-feature /featurename:SetupAndBootEventCollection
Mit diesem Befehl wird ein Dienst mit dem Namen BootEventCollector erstellt und mit einer leeren Konfigurationsdatei gestartet.
Vergewissern Sie sich, dass die Installation erfolgreich war. Überprüfen Sie dafür get-service -displayname *boot*
. Die „Ereignissammlung für Start“ sollte ausgeführt werden. Sie wird unter dem Netzwerkdienstkonto ausgeführt und erstellt eine leere Konfigurationsdatei (Active.xml) in %SystemDrive%\ProgramData\Microsoft\BootEventCollector\Config.
Sie können den Dienst „Ereignissammlung für Setup und Start“ auch mit dem Assistenten zum Hinzufügen von Rollen und Features im Server-Manager installieren.
Konfiguration
Sie müssen zwei Elemente konfigurieren, um Setup- und Startereignisse zu sammeln.
Aktivieren Sie auf den Zielcomputern, auf denen die Ereignisse gesendet werden (d. h. den Computern, deren Setup und Start Sie überwachen möchten), den KDNET/EVENT-NET-Transport und die Weiterleitung von Ereignissen.
Geben Sie auf dem Sammlungscomputer an, von welchen Computern Ereignisse akzeptiert und wo diese gespeichert werden sollen.
Hinweis
Sie können einen Computer nicht so konfigurieren, dass die Startereignisse an ihn selbst gesendet werden. Wenn Sie jedoch zwei Computer überwachen möchten, können Sie sie so konfigurieren, dass die Ereignisse an den jeweils anderen Computer gesendet werden.
Konfigurieren eines Zielcomputers
Auf jedem Zielcomputer aktivieren Sie zunächst den KDNET/EVENT-NET-Transport, dann das Senden von ETW-Ereignissen über den Transport und starten anschließend den Zielcomputer neu. EVENT-NET ist ein In-Kernel-Transportprotokoll, das mit KDNET (dem Kerneldebuggerprotokoll) vergleichbar ist. EVENT-NET überträgt nur Ereignisse und lässt keinen Debuggerzugriff zu. Diese beiden Protokolle schließen sich gegenseitig aus. Sie können jeweils nur eines davon aktivieren.
Sie können den Ereignistransport per Remotezugriff (mit Windows PowerShell) oder lokal aktivieren.
So aktivieren Sie den Ereignistransport per Remotezugriff
Wenn Sie Windows PowerShell Remoting bereits auf dem Zielcomputer eingerichtet haben, fahren Sie mit Schritt 3 fort. Wenn nicht, öffnen Sie eine Eingabeaufforderung auf dem Zielcomputer, und führen Sie den folgenden Befehl aus:
winrm quickconfig
Antworten Sie auf die Eingabeaufforderungen, und starten Sie dann den Zielcomputer neu. Wenn sich die Zielcomputer nicht in derselben Domäne wie der Sammlungscomputer befinden, müssen Sie sie möglicherweise als vertrauenswürdige Hosts definieren. Gehen Sie dazu folgendermaßen vor:
Führen Sie einen der folgenden Befehle auf dem Sammlungscomputer aus:
In einer Windows PowerShell Eingabeaufforderung:
Set-Item -Force WSMan:\localhost\Client\TrustedHosts <target1>,<target2>,...
, gefolgt vonSet-Item -Force WSMan:\localhost\Client\AllowUnencrypted true
, wobei <target1> usw. die Namen oder IP-Adressen der Zielcomputer sind.Oder in einer Eingabeaufforderung: winrm set winrm/config/client @{TrustedHosts=<target1>,<target2>,...;AllowUnencrypted=true}
Wichtig
Dadurch wird eine unverschlüsselte Kommunikation eingerichtet. Führen Sie dieses Verfahren also nicht außerhalb einer Lab-Umgebung durch.
Testen Sie die Remoteverbindung, indem Sie zum Sammlungscomputer wechseln und einen der folgenden Windows PowerShell-Befehle ausführen:
Wenn sich der Zielcomputer in derselben Domäne wie der Sammlungscomputer befindet, müssen Sie
New-PSSession -Computer <target> | Remove-PSSession
ausführen.Wenn sich der Zielcomputer nicht in derselben Domäne befindet, müssen Sie
New-PSSession -Computer <target> -Credential Administrator | Remove-PSSession
ausführen. Hier werden Sie zur Eingabe von Anmeldeinformationen aufgefordert.Wenn der Befehl nichts zurückgibt, war das Remoting erfolgreich.
Öffnen Sie eine Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten auf dem Zielcomputer, und führen Sie den folgenden Befehl aus:
Enable-SbecBcd -ComputerName <target_name> -CollectorIP <ip> -CollectorPort <port> -Key <a.b.c.d>
Hier ist <target_name> der Name des Zielcomputers und <ip> die IP-Adresse des Sammlungscomputers. <port> ist die Portnummer, an der die Sammlung ausgeführt wird. Der Schlüssel <a.b.c.d> ist ein erforderlicher Verschlüsselungsschlüssel für die Kommunikation, der vier alphanumerische und durch Punkte getrennte Zeichenfolgen umfasst. Derselbe Schlüssel wird auf dem Sammlungscomputer verwendet. Wenn Sie keinen Schlüssel eingeben, generiert das System einen zufälligen Schlüssel. Sie benötigen diesen Schlüssel für den Sammlungscomputer, also notieren Sie ihn sich.
Wenn Sie bereits einen Sammlungscomputer eingerichtet haben, aktualisieren Sie die Konfigurationsdatei auf dem Sammlungscomputer mit den Informationen für den neuen Zielcomputer. Weitere Informationen finden Sie im Abschnitt „Konfigurieren des Sammlungscomputers“.
So aktivieren Sie den lokalen Ereignistransport auf dem Zielcomputer
Starten Sie eine Eingabeaufforderung mit erhöhten Rechten, und führen Sie dann die folgenden Befehle aus:
bcdedit /event yes
bcdedit /eventsettings net hostip:1.2.3.4 port:50000 key:a.b.c.d
Hier ist 1.2.3.4 ein Beispiel. Ersetzen Sie dieses Beispiel durch die IP-Adresse des Sammlungscomputers. Ersetzen Sie außerdem 50000 durch die Portnummer, an der die Sammlung ausgeführt wird, und a.b.c.d durch den für die Kommunikation erforderlichen Verschlüsselungsschlüssel. Derselbe Schlüssel wird auf dem Sammlungscomputer verwendet. Wenn Sie keinen Schlüssel eingeben, generiert das System einen zufälligen Schlüssel. Sie benötigen diesen Schlüssel für den Sammlungscomputer, also notieren Sie ihn sich.
Wenn Sie bereits einen Sammlungscomputer eingerichtet haben, aktualisieren Sie die Konfigurationsdatei auf dem Sammlungscomputer mit den Informationen für den neuen Zielcomputer. Weitere Informationen finden Sie im Abschnitt „Konfigurieren des Sammlungscomputers“.
Da nun der Ereignistransport selbst aktiviert ist, muss das System ETW-Ereignisse über diesen Transport senden können. Nehmen Sie dazu die entsprechenden Einstellungen vor.
So aktivieren Sie das Senden von ETW-Ereignissen über den Transport per Remotezugriff
Öffnen Sie eine Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten auf dem Sammlungscomputer.
Führen Sie
Enable-SbecAutologger -ComputerName <target_name>
aus, wobei <target_name> der Name des Zielcomputers ist.
Wenn Sie Windows PowerShell Remoting nicht einrichten können, haben Sie jederzeit die Möglichkeit, das Senden von Ereignissen direkt auf dem Zielcomputer zu aktivieren.
So aktivieren Sie das lokale Senden von ETW-Ereignissen über den Transport
Starten Sie Regedit.exe auf dem Zielcomputer, und suchen Sie nach dem folgenden Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\AutoLogger. Unter diesem Schlüssel werden verschiedene Protokollsitzungen als Unterschlüssel aufgeführt. Setupplattform, NT Kernel-Protokollierung und Microsoft-Windows-Setup sind mögliche Optionen für die Verwendung mit der Ereignissammlung für Setup und Start, empfohlen wird aber EventLog-System. Diese Schlüssel finden Sie unter Konfigurieren und Starten einer AutoLogger-Sitzung.
Ändern Sie im Schlüssel des EventLog-Systems den Wert für LogFileMode von 0x10000180 in 0x10080180. Weitere Informationen zu den Details dieser Einstellungen finden Sie unter Konstanten im Protokollierungsmodus.
Optional können Sie auch die Weiterleitung von Fehlerüberprüfungsdaten an den Sammlungscomputer aktivieren. Suchen Sie hierzu den Registrierungsschlüssel „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager“, und erstellen Sie den Schlüssel Debug-Ausdruckfilter mit dem Wert 0x1.
Starten Sie den Zielcomputer erneut.
Auswählen des Netzwerkadapters
Wenn der Zielcomputer über mehrere Netzwerkadapter verfügt, wählt der KDNET-Treiber den ersten unterstützten Adapter aus. Mit den folgenden Schritten können Sie einen bestimmten Netzwerkadapter angeben, der zum Weiterleiten von Setupereignissen verwendet werden soll:
So legen Sie einen Netzwerkadapter fest
Öffnen Sie den Geräte-Manager auf dem Zielcomputer, erweitern Sie Netzwerkadapter, suchen Sie den gewünschten Netzwerkadapter, und klicken Sie mit der rechten Maustaste darauf.
Klicken Sie im daraufhin geöffneten Menü auf Eigenschaften und dann auf die Registerkarte Details. Erweitern Sie das Menü im Feld Eigenschaft, scrollen Sie, um die Option Standortinformationen zu suchen (die Liste ist wahrscheinlich nicht in alphabetischer Reihenfolge geordnet), und klicken Sie dann darauf. Der Wert ist eine Zeichenfolge in der Form PCI-Bus X, Gerät Y, Funktion Z. Notieren Sie sich X.Y.Z. Dies sind die Busparameter, die Sie für den folgenden Befehl benötigen.
Führen Sie einen der folgenden Befehle aus:
An einer Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten:
Enable-SbecBcd -ComputerName <target_name> -CollectorIP <ip> -CollectorPort <port> -Key <a.b.c.d> -BusParams <X.Y.Z>
An einer Eingabeaufforderung mit erhöhten Rechten: bcdedit /eventsettings net hostip:aaa port:50000 key:bbb busparams:X.Y.Z
Überprüfen der Konfiguration des Zielcomputers
Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten, und führen Sie bcdedit /enum aus, um die Einstellungen auf dem Zielcomputer zu überprüfen. Wenn dies abgeschlossen ist, führen Sie bcdedit /eventsettings aus. Sie können die folgenden Werte überprüfen:
Schlüssel
Debugtype = NET
Hostip = <IP-Adresse der Sammlung>
Port = <Portnummer, die Sie für die Verwendung der Sammlung angegeben haben>
DHCP = ja
Überprüfen Sie außerdem, ob Sie bcdedit /event aktiviert haben, da /debug und /event sich gegenseitig ausschließen. Sie können nur die eine oder die andere Option ausführen. Ebenso können Sie /eventsettings nicht mit /debug oder /dbgsettings mit /event kombinieren.
Beachten Sie auch, dass die Ereignissammlung nicht funktioniert, wenn Sie sie auf einen seriellen Port festlegen.
Konfigurieren des Sammlungscomputers
Der Sammlungsdienst empfängt die Ereignisse und speichert sie in ETL-Dateien. Diese ETL-Dateien können dann von anderen Tools wie Ereignisanzeige, Nachrichtenanalyse, Wevtutil und Windows PowerShell-Cmdlets gelesen werden.
Da Sie den Namen des Zielcomputers nicht im ETW-Format angeben können, müssen die Ereignisse für jeden Zielcomputer in einer separaten Datei gespeichert werden. Die Anzeigetools zeigen möglicherweise einen Computernamen an. Dies ist jedoch der Name des Computers, auf dem das Tool ausgeführt wird.
Genauer: Jedem Zielcomputer wird ein Ring mit ETL-Dateien zugewiesen. Jeder Dateiname enthält einen Index von 000 bis zu einem von Ihnen konfigurierten Maximalwert (bis zu 999). Wenn die Datei die maximal konfigurierte Größe erreicht, wechselt sie zum Schreiben von Ereignissen in die nächste Datei. Nach der höchstmöglichen Datei wechselt sie zurück zum Dateiindex 000. Auf diese Weise werden die Dateien automatisch wiederverwendet, wodurch der Speicherplatz begrenzt wird. Sie können auch zusätzliche externe Aufbewahrungsrichtlinien festlegen, um die Datenträgernutzung weiter einzuschränken. Beispielsweise können Sie Dateien löschen, die älter als eine festgelegte Anzahl von Tagen sind.
Die gesammelten ETL-Dateien werden in der Regel im Verzeichnis c:\ProgramData\Microsoft\BootEventCollector\Etl gespeichert (das möglicherweise über zusätzliche Unterverzeichnisse verfügt). Sie finden die neueste Protokolldatei, indem Sie sie nach dem Zeitpunkt der letzten Änderung sortieren. Es gibt auch ein Statusprotokoll (in der Regel unter c:\ProgramData\Microsoft\BootEventCollector\Logs), das aufzeichnet, wann die Sammlung in eine neue Datei schreibt.
Außerdem gibt es ein Sammlungsprotokoll, das Informationen zur Sammlung selbst aufzeichnet. Sie können dieses Protokoll im ETW-Format (in dem Ereignisse an den Windows-Protokolldienst gemeldet werden; dies ist die Standardeinstellung) oder in einer Datei (normalerweise unter c:\ProgramData\Microsoft\BootEventCollector\Logs) speichern. Verwenden Sie eine Datei, wenn Sie ausführliche Modi aktivieren möchten, die viele Daten erzeugen. Sie können auch festlegen, dass das Protokoll in eine Standardausgabe geschrieben wird, indem Sie die Sammlung über die Befehlszeile ausführen.
Erstellen der Sammlungskonfigurationsdatei
Wenn Sie den Dienst aktivieren, werden drei XML-Konfigurationsdateien erstellt und in c:\ProgramData\Microsoft\BootEventCollector\Config gespeichert:
Active.xml: Diese Datei enthält die aktuell aktive Konfiguration des Sammlungsdiensts. Direkt nach der Installation hat diese Datei den gleichen Inhalt wie Empty.xml. Wenn Sie eine neue Sammlungskonfiguration festlegen, speichern Sie sie in dieser Datei.
Empty.xml: Diese Datei enthält die erforderlichen Mindestkonfigurationselemente mit festgelegten Standardwerten. Sie aktiviert keine Sammlungen. Der Sammlungsdienst kann nur im Leerlaufmodus gestartet werden.
Example.xml: Diese Datei enthält Beispiele und Erläuterungen der möglichen Konfigurationselemente.
Auswählen eines Dateigrößenlimits
Eine der Entscheidungen, die Sie treffen müssen, ist das Festlegen eines Dateigrößenlimits. Welches Dateigrößenlimit am besten geeignet ist, hängt von der erwarteten Ereignismenge und dem verfügbaren Speicherplatz ab. Kleinere Dateien sind unter dem Gesichtspunkt der Bereinigung alter Daten eine komfortablere Wahl. Jede Datei trägt jedoch den Mehraufwand eines 64-KB-Headers mit sich. Es kann also unpraktisch sein, viele Dateien lesen zu müssen, um den kombinierten Verlauf zu erhalten. Die absolute Mindestdateigröße beträgt 256 KB. Eine sinnvolles, praktisches Dateigrößenlimit sollte über 1 MB liegen. 10 MB ist wahrscheinlich ein guter typischer Wert. Ein höheres Limit kann sinnvoll sein, wenn Sie viele Ereignisse erwarten.
Es gibt mehrere Details, die Sie in Bezug auf die Konfigurationsdatei beachten sollten:
Die Adresse des Zielcomputers. Sie können die IPv4-Adresse, eine MAC-Adresse oder eine SMBIOS-GUID verwenden. Beachten Sie bei der Auswahl der zu verwendenden Adresse folgende Faktoren:
Die IPv4-Adresse funktioniert am besten mit der statischen Zuweisung der IP-Adressen. Aber auch statische IP-Adressen müssen über DHCP verfügbar sein.
Eine MAC-Adresse oder SMBIOS-GUID ist praktisch, wenn sie im Voraus bekannt ist, aber die IP-Adressen dynamisch zugewiesen werden.
IPv6-Adressen werden vom EVENT-NET-Protokoll nicht unterstützt.
Sie können mehrere Möglichkeiten zum Identifizieren des Computers angeben. Wenn beispielsweise die physische Hardware in Kürze ausgetauscht wird, können Sie sowohl die alte als auch die neue MAC-Adresse eingeben. Beides wird akzeptiert.
Der Verschlüsselungsschlüssel, der für die Kommunikation mit dem Sammlungscomputer verwendet wird.
Name des Zielcomputers. Sie können die IP-Adresse, den Hostnamen oder einen beliebigen anderen Namen als Computernamen verwenden.
Der Name der zu verwendenden ETL-Datei und die Ringgrößenkonfiguration dafür
So erstellen Sie die Konfigurationsdatei
Öffnen Sie eine Windows PowerShell-Eingabeaufforderung mit erhöhten Rechten, und ändern Sie die Verzeichnisse in „%SystemDrive%\ProgramData\Microsoft\BootEventCollector\Config“.
Geben Sie
notepad .\newconfig.xml
ein, und drücken Sie die Eingabetaste.Kopieren Sie diese Beispielkonfiguration in das Windows-Editor-Fenster:
<collector configVersionMajor=1 statuslog=c:\ProgramData\Microsoft\BootEventCollector\Logs\statuslog.xml> <common> <collectorport value=50000/> <forwarder type=etl> <set name=file value=c:\ProgramData\Microsoft\BootEventCollector\Etl\{computer}\{computer}_{#3}.etl/> <set name=size value=10mb/> <set name=nfiles value=10/> <set name=toxml value=none/> </forwarder> <target> <ipv4 value=192.168.1.1/> <key value=a.b.c.d/> <computer value=computer1/> </target> <target> <ipv4 value=192.168.1.2/> <key value=d1.e2.f3.g4/> <computer value=computer2/> </target> </common> </collector>
Hinweis
Der Stammknoten lautet <collector>. Seine Attribute geben die Version der Konfigurationsdateisyntax und den Namen der Statusprotokolldatei an.
Das Element <common> gruppiert mehrere Ziele und gibt die allgemeinen Konfigurationselemente dafür an. Dies ähnelt der Angabe der allgemeinen Berechtigungen für mehrere Benutzer mithilfe einer Benutzergruppe.
Das Element <collectorport> definiert die UDP-Portnummer, an der die Sammlung auf eingehende Daten lauscht. Dies ist derselbe Port, der im Zielkonfigurationsschritt für Bcdedit angegeben wurde. Die Sammlung unterstützt nur einen Port, und alle Ziele müssen eine Verbindung mit demselben Port herstellen.
Das Element <forwarder> gibt an, wie ETW-Ereignisse, die von den Zielcomputern empfangen werden, weitergeleitet werden. Es gibt nur einen Weiterleitungstyp, der sie in die ETL-Dateien schreibt. Die Parameter geben das Dateinamenmuster, das Größenlimit für jede Datei im Ring und die Größe des Rings für jeden Computer an. Die Einstellung „toxml“ gibt an, dass die ETW-Ereignisse so wie sie empfangen wurden und ohne Konvertierung in XML in binärer Form geschrieben werden. Im Abschnitt zur XML-Ereigniskonvertierung finden Sie Informationen dazu, wie Sie entscheiden können, ob die Ereignisse an XML übertragen werden sollen oder nicht. Das Dateinamenmuster enthält die folgenden Ersetzungen: {computer} für den Computernamen und {#3} für den Index der Datei im Ring.
In dieser Beispieldatei werden zwei Zielcomputer mit dem Element <target> definiert. Jede Definition gibt die IP-Adresse mit <ipv4> an. Sie können aber auch die MAC-Adresse (z. B
<mac value=11:22:33:44:55:66/>
oder<mac value=11-22-33-44-55-66/>
) oder die SMBIOS-GUID (z. B.<guid value={269076F9-4B77-46E1-B03B-CA5003775B88}/>
) verwenden, um den Zielcomputer zu identifizieren. Notieren Sie sich außerdem den Verschlüsselungsschlüssel (entspricht dem Schlüssel, der mit Bcdedit auf dem Zielcomputer angegeben oder generiert wurde) und den Computernamen.Geben Sie die Details für jeden Zielcomputer als separates <target>-Element in der Konfigurationsdatei ein, speichern Sie dann Newconfig.xml, und schließen Sie den Windows-Editor.
Wenden Sie die neue Konfiguration mit
$result = (Get-Content .\newconfig.xml | Set-SbecActiveConfig); $result
an. Als Ausgabe sollte das Feld „Erfolg“ = „true“ zurückgeben. Lesen Sie den Abschnitt „Problembehandlung“ in diesem Thema, wenn Sie ein anderes Ergebnis erhalten.
Sie können die aktuell aktive Konfiguration jederzeit mit (Get-SbecActiveConfig).text
überprüfen.
Sie können mit $result = (Get-Content .\newconfig.xml | Check-SbecConfig); $result
eine Gültigkeitsüberprüfung für die Konfigurationsdatei durchführen.
Obwohl der Dienst durch den Windows PowerShell-Befehl zum Anwenden einer neuen Konfiguration automatisch aktualisiert wird, ohne dass Sie ihn neu starten müssen, können Sie den Dienst dennoch auch immer selbst mit einem der folgenden Befehle neu starten:
Mit Windows PowerShell:
Restart-Service BootEventCollector
An einer gewöhnlichen Eingabeaufforderung: sc stop BootEventCollector; sc start BootEventCollector
Konfigurieren von Nano Server als Zielcomputer
Die minimalistische Schnittstelle von Nano Server kann in einigen Fällen die Diagnose von Problemen erschweren. Sie können Ihr Nano Server-Image so konfigurieren, dass es automatisch Teil der Ereignissammlung für Setup und Start ist und Diagnosedaten ohne weiteres Eingreifen an einen Sammlungscomputer sendet. Gehen Sie hierzu folgendermaßen vor:
So konfigurieren Sie Nano Server als Zielcomputer
Erstellen Sie Ihr Nano Server-Basisimage. Weitere Informationen finden Sie unter Erste Schritte mit Nano Server.
Richten Sie wie im Abschnitt „Konfigurieren des Sammlungscomputers“ in diesem Thema beschrieben einen Sammlungscomputer ein.
Fügen Sie AutoLogger-Registrierungsschlüssel hinzu, um das Senden von Diagnosemeldungen zu ermöglichen. Hierzu binden Sie die in Schritt 1 erstellte Nano Server-VHD ein, laden die Registrierungsstruktur, und fügen dann bestimmte Registrierungsschlüssel hinzu. In diesem Beispiel befindet sich das Nano Server-Image in C:\NanoServer. Ihr Pfad kann sich davon unterscheiden, daher sollten Sie die Schritte entsprechend anpassen.
Kopieren Sie den Ordner ..\Windows\System32\WindowsPowerShell\v1.0\Modules\BootEventCollector auf dem Sammlungscomputer, und fügen Sie ihn in das Verzeichnis ..\Windows\System32\WindowsPowerShell\v1.0\Modules auf dem Computer ein, den Sie zum Ändern der Nano Server-VHD verwenden.
Starten Sie eine Windows PowerShell-Konsole mit erhöhten Berechtigungen, und führen Sie
Import-Module BootEventCollector
aus.Aktualisieren Sie die Registrierung der Nano Server-VHD, um AutoLoggers zu aktivieren. Führen Sie hierzu
Enable-SbecAutoLogger -Path C:\NanoServer\Workloads\IncludingWorkloads.vhd
aus. Dadurch wird eine einfache Liste der typischsten Setup- und Startereignisse hinzugefügt. Sie können andere unter Steuern von Ereignisablaufverfolgungssitzungen ermitteln.
Aktualisieren Sie die BCD-Einstellungen im Nano Server-Image, um das Ereignisflag zu aktivieren, und legen Sie den Sammlungscomputer fest, um sicherzustellen, dass Diagnoseereignisse an den richtigen Server gesendet werden. Notieren Sie sich die IPv4-Adresse, den TCP-Port und den Verschlüsselungsschlüssel des Sammlungscomputers, die bzw. den Sie in der Active.XML-Datei der Sammlung konfiguriert haben (an anderer Stelle in diesem Thema beschrieben). Verwenden Sie den folgenden Befehl in einer Windows PowerShell-Konsole mit erhöhten Berechtigungen:
Enable-SbecBcd -Path C:\NanoServer\Workloads\IncludingWorkloads.vhd -CollectorIp 192.168.100.1 -CollectorPort 50000 -Key a.b.c.d
.Aktualisieren Sie den Sammlungscomputer so, dass er vom Nano Server-Computer gesendete Ereignisse empfängt. Fügen Sie dazu entweder den IPv4-Adressbereich, die spezifische IPv4-Adresse oder die MAC-Adresse des Nano Server zur Active.XML-Datei auf dem Sammlungscomputer hinzu (siehe Abschnitt „Konfigurieren des Sammlungscomputers“ in diesem Thema).
Starten des Ereignissammlungsdiensts
Sobald eine gültige Konfigurationsdatei auf dem Sammlungscomputer gespeichert und ein Zielcomputer konfiguriert ist, wird die Verbindung mit der Sammlung nach dem Neustart des Zielcomputers hergestellt und Ereignisse werden gesammelt.
Das Protokoll für den Sammlungsdienst selbst (der sich von den vom Dienst erfassten Setup- und Startdaten unterscheidet) finden Sie unter „Microsoft-Windows-BootEvent-Collector/Admin“. Verwenden Sie die Ereignisanzeige, wenn Sie eine grafische Benutzeroberfläche für die Ereignisse wünschen. Erstellen Sie eine neue Ansicht, erweitern Sie Anwendungs- und Dienstprotokolle, dann Microsoft und dann Windows. Wechseln Sie zu BootEvent-Collector, erweitern Sie diesen Eintrag, und gehen Sie zu Admin.
Mit Windows PowerShell:
Get-WinEvent -LogName Microsoft-Windows-BootEvent-Collector/Admin
An einer gewöhnlichen Eingabeaufforderung: wevtutil qe Microsoft-Windows-BootEvent-Collector/Admin
Problembehandlung
Problembehandlung bei der Installation des Features
Fehler | Fehlerbeschreibung | Symptom | Mögliches Problem |
---|---|---|---|
Dism.exe | 87 | Die Option „feature-name“ wird in diesem Kontext nicht erkannt. | Dies kann passieren, wenn Sie den Featurenamen falsch geschrieben haben. Vergewissern Sie sich, dass Sie ihn richtig geschrieben haben, und versuchen Sie es erneut. Vergewissern Sie sich, dass dieses Feature in der verwendeten Betriebssystemversion verfügbar ist. Führen Sie in Windows PowerShell dism /online /get-features | ?{$_ -match boot} aus. Wenn keine Übereinstimmung zurückgegeben wird, führen Sie wahrscheinlich eine Version aus, die dieses Feature nicht unterstützt. |
Dism.exe | 0x800f080c | Das Feature <name> ist unbekannt. |
Wie oben |
Problembehandlung bei der Sammlung
Protokollierung: Die Sammlung protokolliert ihre eigenen Ereignisse als ETW-Anbieter „Microsoft-Windows-BootEvent-Collector“. Dies ist der erste Ort, an dem Sie nach Problemen mit der Sammlung suchen sollten. Sie finden die Ereignisse in der Ereignisanzeige unter „Anwendungs- und Dienstprotokolle“ > „Microsoft“ > „Windows“ > „BootEvent-Collector“ > „Admin“. Alternativ können Sie sie mit einem der folgenden Befehle in einem Befehlsfenster lesen:
An einer gewöhnlichen Eingabeaufforderung: wevtutil qe Microsoft-Windows-BootEvent-Collector/Admin
An einer Windows PowerShell Eingabeaufforderung: Get-WinEvent -LogName Microsoft-Windows-BootEvent-Collector/Admin
(Sie können -Oldest
anfügen, um die Liste in chronologischer Reihenfolge zurückzugeben, wobei die ältesten Ereignisse zuerst aufgeführt sind)
Sie können die Detailebene in den Protokollen anpassen und als „Fehler“, „Warnung“, „Informationen“ (Standard), „Ausführlich“ und „Debug“ festlegen. Detailliertere Ebenen als „Informationen“ sind nützlich für die Diagnose von Problemen mit Zielcomputern, die keine Verbindung herstellen können. Dadurch könnte aber eine große Menge an Daten generiert werden, verwenden Sie sie also mit Bedacht.
Sie legen die minimale Protokollebene im Element <collector> der Konfigurationsdatei fest. Beispiel: <collector configVersionMajor=1 minlog=verbose>.
Die ausführliche Ebene protokolliert einen Datensatz für jedes empfangene Paket direkt bei der Verarbeitung. Die Debugebene fügt weitere Verarbeitungsdetails hinzu und sichert auch den Inhalt aller empfangenen ETW-Pakete.
Auf Debugebene kann es hilfreich sein, das Protokoll in eine Datei zu schreiben, anstatt es im üblichen Protokollierungssystem anzuzeigen. Fügen Sie dazu ein zusätzliches Element im Element <collector> der Konfigurationsdatei hinzu:
<collector configVersionMajor=1 minlog=debug log=c:\ProgramData\Microsoft\BootEventCollector\Logs\log.txt>
Ein empfohlener Ansatz für die Problembehandlung bei der Sammlung:
Vergewissern Sie sich zunächst, dass die Sammlung die Verbindung vom Ziel empfangen hat (die Datei wird nur erstellt, wenn das Ziel mit dem Senden der Nachrichten beginnt). Verwenden Sie dabei:
Get-SbecForwarding
Wenn zurückgegeben wird, dass eine Verbindung von diesem Ziel besteht, liegt das Problem möglicherweise in den Einstellungen für die automatische Protokollierung vor. Wenn nichts zurückgegeben wird, liegt das Problem bei der KDNET-Verbindung, mit der begonnen werden soll. Um KDNET-Verbindungsprobleme zu diagnostizieren, sollten Sie versuchen, die Verbindung von beiden Enden (d. h. von der Sammlung und dem Ziel) zu überprüfen.
Wenn Sie die erweiterte Diagnose aus der Sammlung anzeigen möchten, müssen Sie dem Element <collector> der Konfigurationsdatei Folgendes hinzufügen: <collector ... minlog=verbose>. Dadurch werden Nachrichten zu jedem empfangenen Paket aktiviert.
Überprüfen Sie, ob Pakete überhaupt empfangen werden. Optional können Sie das Protokoll im ausführlichen Modus direkt in eine Datei schreiben und nicht über ETW. Fügen Sie zu diesem Zweck dem Element <collector> der Konfigurationsdatei Folgendes hinzu: <collector ... minlog=verbose log=c:\ProgramData\Microsoft\BootEventCollector\Logs\log.txt>.
Überprüfen Sie die Ereignisprotokolle auf Meldungen zu den empfangenen Paketen. Überprüfen Sie, ob Pakete überhaupt empfangen werden. Wenn die Pakete empfangen werden, aber falsch sind, sollten Sie die Details der Ereignismeldungen überprüfen.
Auf Zielseite schreibt KDNET einige Diagnoseinformationen in die Registrierung. Suchen Sie in HKLM\SYSTEM\CurrentControlSet\Services\kdnet nach Nachrichten. „KdInitStatus (DWORD)“ lautet bei Erfolg = 0 und zeigt einen Fehlercode für den Fehler „KdInitErrorString“ = Erklärung des Fehlers an (enthält auch Informationsmeldungen, wenn kein Fehler ermittelt wird).
Führen Sie Ipconfig.exe auf dem Ziel aus, und überprüfen Sie den gemeldeten Gerätenamen. Wenn KDNET korrekt geladen wurde, sollte der Gerätename beispielsweise „kdnic“ anstelle des Kartennamens des ursprünglichen Anbieters lauten.
Überprüfen Sie, ob DHCP für das Ziel konfiguriert ist. Für KDNET ist unbedingt DHCP erforderlich.
Vergewissern Sie sich, dass sich die Sammlung im selben Netzwerk wie das Ziel befindet. Falls nicht, müssen Sie überprüfen, ob das Routing korrekt konfiguriert ist, insbesondere die Standardgatewayeinstellung für DHCP.
Verbindungsstatus
Sie können die aktuelle Liste der eingerichteten Verbindungen und Informationen dazu, wohin die Daten weitergeleitet werden, mit Get-SbecForwarding
überprüfen.
Mit Get-SbecHistory
können sie auch den aktuellen Verlauf der Statusänderungen in Verbindungen abrufen.
Problembehandlung beim Festlegen einer neuen Konfiguration
Wenn Sie die Konfiguration mit dem Windows PowerShell-Befehl $result = (Get-Content .\newconfig.xml | Set-SbecActiveConfig); $result
angewendet haben, enthält die Variable $result
Informationen zur Bereitstellung. Sie können diese Variable abfragen, um unterschiedliche Informationen daraus zu erhalten:
Rufen Sie mit $result.ErrorString
Informationen über Fehler ab. Wenn hier Fehler gemeldet werden, wurde die neue Konfiguration nicht angewendet, und die alte Konfiguration bleibt unverändert.
Rufen Sie mit $result.WarningString
Warnungen ab.
Rufen Sie Informationen zu den Details der Konfiguration mit $result.InfoString
ab.
Sie können das vollständige Ergebnis mit $result | fl *
abrufen.
Wenn Sie das Ergebnis nicht in einer Variablen speichern möchten, können Sie alternativ Get-Content .\newconfig.xml | Set-SbecActiveConfig | fl *
verwenden.
Problembehandlung bei Zielcomputern
Fehler | Fehlerbeschreibung | Mögliches Problem |
---|---|---|
Bereitstellungszielcomputer | Das Ziel stellt keine Verbindung mit der Sammlung her. | Der Zielcomputer wurde nach der Konfiguration nicht neu gestartet. Starten Sie den Zielcomputer erneut. Der Zielcomputer verfügt über falsche BCD-Einstellungen. Überprüfen Sie die Einstellungen im Abschnitt „Überprüfen der Zielcomputereinstellungen“. Korrigieren Sie sie nach Bedarf, und starten Sie dann den Zielcomputer neu. Der KDNET/EVENT-NET-Treiber konnte keine Verbindung mit einem Netzwerkadapter herstellen oder hat eine Verbindung mit dem falschen Netzwerkadapter hergestellt. Führen Sie Weitere Informationen: „Ein empfohlener Ansatz für die Problembehandlung bei der Sammlung“ oben, insbesondere die Schritte 5 bis 8. |
Collector | Nach der Migration des virtuellen Computers, auf dem meine Sammlung gehostet wird, werden keine Ereignisse mehr angezeigt. | Stellen Sie sicher, dass sich die IP-Adresse des Sammlungscomputers nicht geändert hat. Falls dies der Fall ist, lesen Sie sich die Anleitung unter „So aktivieren Sie das Senden von ETW-Ereignissen über den Transport per Remotezugriff“ durch. |
Collector | Die ETL-Dateien werden nicht erstellt. | Get-SbecForwarding zeigt an, dass das Ziel eine Verbindung ohne Fehler aufweist, die ETL-Dateien jedoch nicht erstellt wurden.Der Zielcomputer hat wahrscheinlich noch keine Daten gesendet. ETL-Dateien werden nur erstellt, wenn Daten empfangen werden. |
Collector | In der ETL-Datei wird ein Ereignis nicht angezeigt. | Der Zielcomputer hat ein Ereignis gesendet, das Ereignis ist aber nicht vorhanden, wenn die ETL-Datei mit der Ereignisanzeige der Nachrichtenanalyse gelesen wird. Das Ereignis kann sich noch im Puffer befinden. Ereignisse werden erst in die ETL-Datei geschrieben, wenn ein vollständiger Puffer von 64 KB gesammelt wurde oder ein Timeout von etwa 10 bis 15 Sekunden ohne neue Ereignisse aufgetreten ist. Warten Sie entweder, bis das Timeout abläuft, oder leeren Sie die Puffer mit Save-SbecInstance .Das Ereignismanifest ist auf dem Sammlungscomputer oder auf dem Computer, auf dem die Ereignisanzeige oder Nachrichtenanalyse ausgeführt wird, nicht verfügbar. In diesem Fall kann die Sammlung das Ereignis möglicherweise nicht verarbeiten (überprüfen Sie das Sammlungsprotokoll), oder die Anzeige kann es möglicherweise nicht anzeigen. Empfehlung: Installieren Sie alle Manifeste und Updates auf dem Sammlungscomputer, bevor sie auf den Zielcomputern installiert werden. |