Auf die Gefahr hin, dass Erik wieder in den Kommentaren sinngemäß schreibt, dass ich mich gefälligst nicht so haben soll, mein heutiger Rant. Ich schreibe ihn primär, damit andere nicht ihre wertvolle Lebenszeit opfern müssen, um zu meinen Erkenntnissen zu kommen.
Alles fing relativ harmlos mit der zufälligen Feststellung an, dass ein bestimmtes Windows Update (Windows 7 – KB2655992) seit Juli nicht installiert werden konnte. Dabei handelt es sich dummerweise um einen Patch, der wirklich sicherheitskritisch zu sein scheint.
Als zugehörige Fehlermeldung wird Code 80070570 angezeigt und direkt daneben ein Link mit dem Titel “Hilfe zu diesem Fehler” angeboten. Also alles kein Problem, oder? Nunja, hinter dem Link hat Microsoft eine Fehlerliste von sage und schreibe ganzen acht Fehlernummern hinterlegt und 80070570 war natürlich nicht darunter.
Also Google… Die Ergebnisse im deutschsprachigen Raum kann man erwartungsgemäß getrost in die Tonne kloppen (so in die Richtung “Speicherriegel defekt”, “Graphikkarte nicht schnell genug”, “LOL”, usw.). Auf englisch findet man aber mit etwas Filtern immerhin ein paar sinnvolle Hinweise.
Zunächst den Vorschlag, dass Update direkt von Microsoft herunterzuladen und auszuführen. Gesagt, getan und … die Meldung bekommen, dass das Update nicht für mein System bestimmt sei (wie sich später herausstellt, anscheinend die Default-Fehlermeldung).
Dann der Vorschlag, ein Reparatur-Update von Microsoft herunterzuladen, dass den Update-Mechanismus reinitialisiert (die Datenbank der installierten Updates neu aufbaut). Klingt ziemlich gut, aber leider ist auch dieses Reparatur-Update nach den Starten laut eigener Aussage für mein System nicht geeignet.
Also tiefer rein. Es gibt ein Kommandozeilenwerkzeug, mit dem man die Windows-Systemdateien überprüfen und bei Bedarf semi-automatisch reparieren kann:
sfc.exe /scannow
Im Prinzip ein guter Ansatz, allerdings stürzt das Programm mit der aussagekräftigen Fehlermeldung “Der Windows-Ressourcenschutz konnte den angeforderten Vorgang nicht ausführen” ab. Ok, eine Ebene weniger tief, kann man sfc auch erstmal nur scannen lassen:
sfc.exe /verifyonly
Hier brauchte er zwar eine Weile, aber lief immerhin durch und hinterließ ein grottig lesbares Logfile (und auch aus diesem Grund sollte man unter Windows immer einen vim installiert haben). Aha: mehrere, durchaus bekannte Windows-Systemdateien sind nicht lesbar (access denied): csrss.exe, lsass.exe, services.exe, smss.exe und winlogon.exe.
Nach diesen Dateien und dem Problem zu googlen ist sinnlos. Man findet nur endlos viele Seiten, wo Leute sie für Viren halten und verzweifelt versuchen, sie zu löschen (ja, es gibt ein paar Viren, die einige dieser Dateien austauschen, aber auf den genannten Seiten geht es eigentlich immer um die Originaldateien…). Um dennoch ganz sicher zu sein, kurz meine Versionen der Dateien bei virustotal.com geprüft – es sind die originalen.
Hmm, aber dennoch nicht lesbar – warum eigentlich? Ok, Rechte angucken. Die Dateien gehören “TrustedInstaller”, der alle Rechte hat, aber auch “System” und “Administratoren” können zumindest lesend und ausführend darauf zugreifen. Ersteres sollte allerdings schon ausreichen, da sowohl Windows Update als auch sfc als “TrustedInstaller” ausgeführt werden – und nu?
Ok, härtestes Geschütz: Process Monitor von Sysinternals und gucken, was da eigentlich genau beim sfc-Aufruf passiert. Auf jeden Fall viel – sehr sehr viel. Eine Viertelstunde Logfiltern später kristallisiert sich langsam eine bedeutende Frage heraus: was zum *** macht denn eigentlich der Virenscanner da?
Kurze Rückblende: ich hatte vor mehreren Monaten McAfee installiert, allerdings bewusst nur in der On-Demand-Variante, da die On-Access-Variante gerne mal mit bestimmten Programmen (gerne auch aus dem Windows-System-Umfeld) kollidierte (experimentell bestätigt).
Nun musste ich entsetzt feststellen, dass sich diverse McAfee-Prozesse rund um meine sfc-Anfrage tummeln, deren Dateien auch noch aus so romantisch benannten Unterverzeichnissen wie “Desktop Protection” stammen.
Also McAfee-Dienste (es sind drei) beenden – zwei lassen sich; einer weigert sich, zu sterben. McAfee-Prozesse im Process Explorer töten – geht nicht (darf der Administrator unter Windows eigentlich irgendetwas?). Also, letztes Mittel, McAfee deinstallieren und … das geht sogar wirklich.
Mit zitternden Händen erneut das Windows Update laufen lassen: läuft. Natürlich auch nochmal sfc (mit scannow) laufen lassen: “Der Windows-Ressourcenschutz hat keine Integritätsverletzungen gefunden.”
Wir fassen zusammen: wenn man McAfee installiert und extra das On-Access-Modul nicht installiert, bekommt man dennoch den umfassenden Systemressourcenschutz, der die Systemressourcen professionell vor dem System schützt – tolle Leistung. Microsoft kann ich nur den etwas schwächeren Vorwurf machen, dass deren Fehlermeldung Schrott sind (“irreführend” erscheint mir irgendwie zu schwach).
Dafür bin ich wie immer bei solchen Problemen Mark Russinovich und Bryce Cogswell für Sysinternals dankbar.
Was bei mir jetzt allerdings im Nachhinein ein sehr ungutes Gefühl hinterlässt, ist das Wissen, dass einer der unreflektierten Standardhinweise in so ziemlich jedem Dummy-Computerbuch oder äquivalenten Zeitschriften ist, “unbedingt” und “einfach” einen Virenscanner zu installieren. Benutzen die Leute, die solche Tips geben, eigentlich selbst welche?