[English]Gelegentlich stellen Nutzer von Windows Clients und Windows Server eine Häufung von Fehlereinträgen in der Ereignisanzeige fest, die auf ein spezielles Problem hinzuweisen scheinen. In der Ereignisanzeige wird permanent ein Fehler mit der ID 2001 gemeldet. Der Fehlertext besagt, dass "First Counter" in "usbperf\Performance" nicht gelesen werden kann. Das deutet darauf hin, dass der Dienst "usbhub" ein Problem beim Aufruf hat. Nachdem der Fehler mir vor einiger Zeit unter die Augen kam, bereite ich das Thema als Blog-Beitrag auf.
Anzeige
Eine Fundstelle im Internet
Mir ist dieser Windows-Fehler erstmals in einer Facebook-Gruppe zu Windows Server unter die Augen gekommen. Ein Administrator berichtete den Fehler für einen mit VMware virtualisierten Windows Server 2012 R2 und fragt nach Abhilfe.
Lösung für Eventlog Fehler?
bei VMware virtuellen Server 2012R2 mit Fehler ID 2001 usbperf (Der Wert von "First Counter" unter dem Schlüssel "usbperf\Performance" kann nicht gelesen werden. Statuscodes wurden in den Daten zurückgegeben.)
Es gibt kein USB-Controller in den virt. Maschinen (get-childitem -recurse *.ini | Select-String -pattern "usbperf" -context 0 => auch nichts gefunden). Testweise USB-Controller installiert, aber auch keine Verbesserung
lodctr /r und lodctr /d:usbperf inkl. Neustart OHNE Erfolg
jemand eine Idee, wie man das "zumüllen" abgestellt bekommt?
Der Administrator hatte noch den obigen Screenshot eines Eintrags in der Ereignisanzeige gepostet. Als Besonderheit ist in obigem Post die Verwendung einer virtuellen Maschine für die Windows Server-Installation genannt. Sofern die VM unter Hyper-V gehostet wird, steht standardmäßig kein USB-Anschluss zur Verfügung. In obigem Beispiel trifft dieses Scenario auch nicht zu, da VMware zur Virtualisierung verwendet wurde. Daher half auch die Deinstallation des USB-Controllers nicht. Die Ereigniseinträge sind zwar nur ein "kosmetisches Problem", fluten aber die betreffenden Protokolldateien.
Der Fehler tritt häufig auf
Der Fehler tritt unter Windows sehr häufig auf, wie eine Internetsuche zutage förderte (hier ist ein Eintrag aus 2012 zu Windows 7 zu finden), und deutet auf einen Fehler in der Behandlung der Leistungsindikatoren hin. Der oben erwähnte Befehl lodctr lässt sich unter Windows Server ausführen und ermöglicht das Registrieren oder Speichern von Leistungsindikatornamen und Registrierungseinstellungen in einer Datei sowie das Festlegen vertrauenswürdiger Dienste.
Anzeige
- Die Option /r stellt die Zählerregistrierungseinstellungen und den erklärenden Text aus den aktuellen Registrierungseinstellungen und zwischengespeicherten Leistungsdateien in Bezug auf die Registrierung wieder her (siehe auch diesen Microsoft-Beitrag).
- Mit der Option /d:usbperf lässt sich der hinter dem Schalter angegebene Dienst (hier usbperf) deaktivieren. Das System unterlässt dann die Leistungsprüfung der USB-Anschlüsse.
Beide Befehle haben aber im betreffenden Fall nicht weiter geholfen. Der Schalter /d ist im oben verlinkten Microsoft-Dokument nicht mal dokumentiert – aber ich habe in diesen Beitrag und diesen Beitrag, sowie hier Beschreibungen gefunden. Dieser englischsprachige Beitrag listet eine Reihe Ereigniseinträge auf, die durch den Performance-Counter-Dienst auftreten können.
In diesem sehr alten Beitrag zu Windows 7 gibt es den Hinweis, den Dienst "Funktionssuche-Ressourcenveröffentlichung" auf automatisch zu stellen. Auch wird vorgeschlagen, eine Systemdateiprüfung mit sfc /scannow in einer administrativen Eingabeaufforderung durchzuführen. Dies schließt ein beschädigtes Windows als Ursache aus, dürfte aber in den seltensten Fällen weiter helfen.
Registrierungseinträge fehlen
Ich hatte dem betroffenen Administrator den Hinweis gegeben, die Registrierungseinträge zu kontrollieren. Microsoft hat die betreffenden Schlüssel im Beitrag Manually rebuild performance counter library values dokumentiert. Vom Betroffenen kam der Hinweis, dass diese Werte stimmig seien. Ich hatte dann in einer Antwort vorgeschlagen, das Problem durch den Import des betreffenden Schlüssels gemäß diesem Technet-Forenbeitrag zu versuchen. Damit war ich nahe an der Lösung dran. Dort wurde der Schlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\usbhub\Performance
von einer anderen Maschine importiert und der Fehler war weg. Doof war lediglich, dass im Forenbeitrag der falsche Schlüssel genannt wurde. Denn die Rückmeldung des Betroffenen lautete nämlich:
es fehlen die Counter in der CurrentControlSet und nicht in ControlSet001. Dienste neu starten und Ruhe
Der Betroffene hat dann den obigen Screenshots mit seinen Registrierungswerten unter folgendem Schlüssel gepostet:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbhub\Performance
Das ist der Eintrag, der von den betreffenden Diensten im laufenden Betrieb verwendet wird. Der betroffene Administrator hat mir dann noch den Hinweis gegeben, dass man folgende Befehle ausführen solle:
New-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\usbhub\Performance" -name "First Counter" -PropertyType DWORD -value 4564 New-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\usbhub\Performance" -name "Last Counter" -PropertyType DWORD -value 4598 New-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\usbhub\Performance" -name "First Help" -PropertyType DWORD -value 4565 New-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Services\usbhub\Performance" -name "Last Help" -PropertyType DWORD -value 4599 Get-Service -Name "pla" | Restart-Service -Verbose Get-Service -Name "winmgmt" | Restart-Service -Force -Verbose
Vielleicht helfen die obigen Informationen Betroffenen weiter.
Anzeige
Guter Beitrag.
Hinweis: Die genannten Befehle sind in Powershell abzusetzen. :-)