Anzeige

Am Puls von Microsoft

Anzeige

Installation von Vista SP1 wird wieder rückgängig gemacht - Lösung

beetle78

Herzlich willkommen
Beitrag komplett überarbeitet von Franz

Sollten nach der Installation des Service Pack 1 für Vista massive Probleme mit System,
Programmen oder Treibern bestehen, die eine Neuinstallation des Betriebssystems
in Betracht ziehen, soll das kleine Tutorial hier helfen, anstelle einer kompletten Vista - Neuinstallation
nur die Installation des SP1 rückgängig zu machen.

Das SP1, wie auch andere Updates und Patches, verändert verschiedene
Registry-Einträge, und damit u.U., auch Informationen in der ACL
(Access Control List = Zugriffsteuerung) Wie Benutzer eines Computers haben
Programme und Prozesse auch unterschiedliche Zugriffsberechtigungen.

Fehlen die entsprechenden Informationen in der ACL kann das Programm, der
Dienst oder das System selbst, nicht mehr auf die notwendigen Registrierungseinträge zugreifen
oder anders herum,
die Informationen darüber, welches Programm mit welchem Treiber auf
welchen Registrierungseintrag zugreifen darf werden in der ACL abgelegt.

Es geht also darum, die ACL und betroffene Registrierungseinträge
wiederherzustellen.

Aber zuerst noch einige wichtige Vorbereitungen:

  • 1. Sicherung der Registry (in der Registry -> Datei -> „Exportieren“ oder mit einem
    Registry Tool, z.B., Registry System Wizard )
    2. Wer auf Nummer sicher gehen will,
    kann auch eine Komplettsicherung des Systems durchführen, schaden tut’s nie.
    3. Das Programm „Subinacl.exe“ von der Microsoft-Seite herunterladen: SubInACL.exe
    4. das Programm installieren
    5. den Editor öffnen und
    6. nachfolgenden Code übertragen:

Vista64bit – Benutzer tragen statt der Zeile
cd c:\Program Files\Windows Resource Kits\Tools"
bitte
cd c:\Program Files (x86)\Windows Resource Kits\Tools
ein und achten, wie alle anderen Vista-Benutzer darauf, daß auch der Systempfad übereinstimmt.

Code:
 @echo off
title Resetting ACLs...
cd c:\Program Files\Windows Resource Kits\Tools
echo. 
echo Reset der ACLs...
echo (das wird eine ganze Zeit dauern)
echo. 
echo ==========================================================================
echo. 
echo. 
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=Administratoren=f /grant=system=f
echo. 
echo. 
subinacl /subkeyreg HKEY_CURRENT_USER /grant=Administratoren=f /grant=system=f
echo. 
echo. 
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=Administratoren=f /grant=system=f
echo. 
echo. 
echo System Drive...
subinacl /subdirectories %SystemDrive% /grant=Administratoren=f /grant=system=f
echo. 
echo. 
echo Windows Directory...
subinacl /subdirectories %windir%\*.* /grant=Administratoren=f /grant=system=f
echo. 
echo. 
echo ==========================================================================
echo. 
echo FINISHED.
echo. 
echo Reset beendet. Beliebige Taste drücken . . .
pause >NUL
Anschließend wird die Datei mit dem Namen reset_acl.cmd abgespeichert und durch Doppelklick gestartet.

Der folgende Vorgang wird eine gewisse Zeit in Anspruch nehmen. Ist er beendet,
wird Command Prompt erneut (mit administratorischen Berechtigungen) aufgerufen.
Anschließend muß folgender Befehl (copy&paste) ausgeführt werden

secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose >c:\secedit_output.txt

Das Programm “secedit” setzt nun die komplette Registry in den Urzustand
zurück und erzeugt zudem ein Logfile im Verzeichnis C:\.
Nach einem Reboot muss jetzt die Ereignisanzeige überprüft werden.

Es kann jetzt möglich sein, dass einzelne Dienste nicht mehr korrekt arbeiten.
Sollte einer der Dienste oder Programme nicht mehr funktionieren,
muss im Komponentenverzeichnis der Dienst/Programm manuell mit den entsprechenden Berechtigungen ausgestattet werden.
Am Bsp. des Netzwerkdienstes (netprofm) soll dies hier veranschaulicht werden:

Gehe auf Start -> Ausführen -> "comexp.msc" eingebn -> OK

Hier hangelst du dich am Konsolenstamm durch bis

Komponentendienste\Computer\Arbeitsplatz\DCON-Konfiguration\netprofm

dort über R-Klick -> Eigenschaften\Reiter "Sicherheit" kontrollierst du unter
"Start- und Aktivierungsberechtigungen", ob folgende Benutzer/Gruppen
gelistet sind, die die Berechtigungen "Lokaler Start" und "Lokale Aktivierung" besitzen:

Administratoren
INTERAKTIV
SYSTEM
LOKALER DIENST

Wenn alle entsprechend eingetragen sind, bestätigen und anschließend den Reiter "Identität" aufrufen, und dort kontrollieren, ob als einziges Benutzerkonto SYSTEM aktiviert ist ("(Systemkonto (nur für Dienste)").

Anschließend alles bestätigen und den PC neu starten um die ACL zu aktualisieren.
Danach sollte der Dienst wieder automatisch gestartet werden können.
 
Zuletzt bearbeitet von einem Moderator:
Anzeige
danke schon mal,ich hab genau des problem,aber ich versteh alles bis zum 4. schritt:ab wo soll ich was einfügen,weil da im code noch deutsche sätze stehn. wär mich sehr wichtig wenn man des nochn bisschen genauer beschreiben kann.:) danke schonmal
 
erstelle auf deinem desktop einfach mit der rechten maustaste ein neues *.txt-Dokument
da kopierst du dann den ersten Text rein, speicherst und schliesst es
dann klickst du wieder mit der rechten maustaste, diesmal auf die datei und klickst auf "umbenennen" und nennst es "reset.cmd"
dann zu punkt 4
bei punkt 5 machst du das selbe nur mit einem neuen *.txt-File und kopierst den zweiten Teil rein
naja der rest steht ja alles oben
 
Hi@all

Hat jemand Erfahrung damit? Hab das gleiche Problem und wollt mal fragen ob das klappt mit dieser Lösung.

Grüße Benni
 
@ottohahn,

Du mußt vorher das Programm SubInACL herunterladen und installieren.

@ beetle

ist ja alles schön und nett, herzlichen Dank für die Idee,
aber bitte korrigiere deinen obg. Post hinsichtlich Schreibfehler und gestalte ihn etwas übersichtlicher.
Wenn man ein Kurztutorial schreibt, sollte alles korrekt sein.
So kann kein Leser wissen, ob der Code auch wirklich richtig ist.

Dann, trenne bitte die Command Lines (wähle z.B die Code-Funktion) deutlicher vom übrigen Text,
außerdem heißt es ACL, nicht ALC und hat mit der Ereignisanzeige erstmal nichts zu tun.

Ganz ausgereift ist das Thema leider hier nicht, von daher rate ich allen, eher das Original zu lesen:
Event log error 4201 - ERROR_WMI_INSTANCE_NOT_FOUND - MSDN Forums
 
Leute, lest euch das Original durch. Dort steht alles sauber aufgelistet.
Das obg. Tutorial ist leider nicht ausreichend, deswegen werde ich es auch gleich löschen.

Die Eingriffe, die hier gemacht werden, sind systemweit, d.h., ihr wißt letztlich gar nicht, was damit alles verändert wurde.
Wenn die Kiste anschließend überhaupt nicht mehr funktioniert, ist das Gejammer groß und eine Neuinstallaion fällig.

Also bitte, lest euch in Ruhe erst alles einmal durch, was Sache ist, bevor hier wild drauflos gebatcht wird.

Danke. :)

@ottohahn,

Die Datei, bzw. die Befehle werden nicht mit den notwendigen Berechtigungen (Administrator) ausgeführt.
R-Klick auf die Datei -> "Als Administrator ausführen".


Für den Rest:

Gehe auf Start -> Ausführen -> "comexp.msc" eingeben -> OK

Hier hangelst du dich am Konsolenstamm durch bis

Komponentendienste\Computer\Arbeitsplatz\DCON-Konfiguration\netprofm

dort über R-Klick -> Eigenschaften\Reiter "Sicherheit" kontrollierst du unter
"Start- und Aktivierungsberechtigungen", ob folgende Benutzer/Gruppen
gelistet sind, die die Berechtigungen "Lokaler Start" und "Lokale Aktivierung" besitzen:

Administratoren
INTERAKTIV
SYSTEM
LOKALER DIENST

Wenn alle entsprechend eingetragen sind, bestätigen. Anschließend den Reiter "Identität" aufrufen,
und dort kontrollieren, ob als einziges Benutzerkonto SYSTEM aktiviert ist ("Systemkonto (nur für Dienste)").

Anschließend alles bestätigen und den PC neu starten.

Danach sollten die ACLs erneuert, bzw. die Datei ausführbar sein.
 
Zuletzt bearbeitet:
ich hab des alles so gemacht...ich führ die datei auch immer als admin aus aber die fehlermeldung bleibt die gleiche:( wer er möglich, dass jemand die fertigen datein hochläd, damit ich ausschließen kann, dass es daran liegt?
 
also bei mir kommt immer die gleiche Fehermeldung wie bei "ottohahn". Hab SubInACL installiert und auch die reset.cmd ald admin ausgeführt. Scheint was mit der Pfadangabe nicht zu stimmen. Habs auf beide Arten versucht: Wie hier im Forum und auch so wie im Originalbeitrag gepostet.

Wäre sehr lieb wenn mir einer helfen könnte.

MfG
Benni
 
Geduldet euch bitte einen Moment, das komplette Tutorial ist gleich fertig,
muß nur noch schnell etwas RL bewältigen.
Ca. eine halbe Stunde. :)
 
Sodele,

das Tut habe ich nun überabreitet, die Pfadangaben haben u.a. nicht gepaßt.
Also, bitte den Code neu kopieren.
Auf meinem Testrechner (x64, Core2, 4 GB RAM) läuft das Programm seit ca. 40 Minuten, also stellt euch auf eine etwas längere Bearbeitungszeit ein.

Die aufkommenden Fehlermeldungen würde ich erst einmal ignorieren,
die können auch von verwaisten Einträgen kommen.
 
Zuletzt bearbeitet:
@ Franz

Hab alles gemacht. Sp1 läuft. Eine Kombination aus dem Beitrag von beetle78 und dem Originalbeitrag vom MS-Forum.

Deine Tut. im geänderten Beitrag stimmt natürlich auch!

Eine Kleinigkeit hab ich aber noch gefunden:
Das Logfile konnte bei mir nicht erzeugt werdem, da es den Ordner c:\temp nicht gibt. Also besser nach c:\secedit_output.txt ändern.

Wie gesagt. Sp1 läuft. Hatte vorher die besagten Probleme.

Vielen Dank an Franz, beetle78 und alle anderen!!!

Grüße Benni
 
ihr seit alle göttlich:) DANKE
aber eine frage hab ich noch, wie hät ich des alleine rausfinden sollen?und warum war des so verstellt/fehlerhaft?
 
Bei der Installation eines früheren Updates oder beim Einspielen eines Patches
wurden eine oder mehrere Zugriffsberechtigungen für einen oder
mehrere Prozesse/Programme/Dienste in der ACL verändert.

Die Folge davon kann sein, wie bei eurer SP1-Installation,
daß verschiedene Einträge in der Registrierung nicht mehr verändert werden
können (weil eben die notwendigen Berechtigungen fehlen),
das wiederum hat zur Folge, dass Dienste, Systemprozesse oder Programme
nicht mehr ordnungsgemäß ausgeführt werden können.
Wie sich das auswirkt, habt ihr selbst erfahren.

Es sind nicht alle Berechtigungen verändert worden, sondern nur ein paar,
vielleicht sogar nur eine.
Aber bei dem Umfang, die die Registry hat, würde eine Suche nach den
fehlerhaften ACL - Berechtigungen und Einträgen viel zu aufwändig sein.

Um das geht es letztlich hier: Kleine Ursache, große Wirkung.

Nein, ottohahn, all das muß man wirklich nicht wissen, zumindest nicht als Normaluser. ;)
 
Zuletzt bearbeitet:
Anzeige
Oben