Seit einiger Zeit machen einige Leute beim Abmelden/Herunterfahren wieder vermehrt Bekanntschaft mit dem Event ID 1000, Quelle Userenv, Ursache: Zugriff verweigert.

Oder in klarem Deutsch: DIe Maschine teilt einem mit, dass das Profil beim Herunterfahren nicht entladen werden konnte und die Änderungen im Falle eines servergespeicherten Profils halt ins Nirvana wandern.

MS-Artikel verweisen auf ein Problem mit den Zugriffsrechten oder kreiden die Sache irgend einer 3rd-Party Software (z.B. AV-Scanner) an.

Die Mehrheit der Betroffenen kommt zum Schluss: an der Berechtigung liegts nicht.

Zweite Ursache: Manchmal gibt irgend ein Programm seine Handles auf die Registry nicht frei. Dadurch kann das Benutzerprofil nicht entladen und gespeichert werden. Und MS weiss, dass da auch ein Kind aus eigenem Haus die Finger im Spiel haben kann. Das Resultat ist unabhängig vom schuldigen Programm ein Event 1000 im Log. Die Aussage 'Zugriff verweigert' ist in diesem Falle nicht ganz falsch, aber sehr missverständlich. Tatsächlich wird hier der Zugriff auf die geladenen Profile Hives verweigert, die Windows beim Abmelden auf die Festplatte runterschreiben möchte.

MS hat für diesen Fall einen nachinstallierbaren Service bereitgestellt, den User Profile Hive Cleanup Service, der die Ungereimtheiten mit dem Event 1000 (heisst: nicht berechtigungsbedingt) löst.

Wenn Ihr also den Event 1000, Userenv, habt und einfach sagen könnt: Ich hab verdammt nochmal kein Berechtigungsproblem auf meinem System, dann verpasst der Maschine mal den Cleanup Service.

Den Download dieses Dienstes gibt es hier , in der Version 1.5 vom 12. April 2004. Es gibt ihn nur in englisch, aber er läuft auf allen Sprachversionen von Windows NT bis und mit Windows 2003. Er liegt als MSI-Pack bereit, sollte also auch verteilt werden können.

Der Service läuft unter dem Namen uphclean und überwacht das System auf User, die sich abmelden. Gibt irgend ein Programm die Handles auf die Registry des Users nicht frei, so löst der Service das Problem und verhindert, wie ich festgestellt habe, manchmal mehr als nur einen Event 1000.

Man weiss dank uphclean, welche Software den Handle blockiert hat. Der Service trägt den Sünder ins Event Log ein (siehe Beispiel am Ende des Postings).

In meinem Fall war das der Machine Debugger, der mit Visual Studio .NET 2003 ausgeliefert wird. Dieser produzierte nicht nur den Event 1000. Nach der Installation von VS.NET tauchten neben Event ID 1000 noch sporadisch andere Probleme auf. Manchmal bieb die Maschine einfach auf dem Bild Windows wird heruntergefahren hängen, und in einigen Fällen gab es bei dieser Anzeige dann sogar einen BSOD mit Stop 185.

Diese Probleme sind nun alle Geschichte, seit uphclean auf dem System läuft und dem Machine Debugger beim Abmelden einen Tritt in den Hintern gibt.

So vermerkt uphclean ein von ihm gelöstes Problem im Event Log Application:


The following handles in user profile hive domain\user.name (S-1-5-21-436374069-1682526488-854245398-1115) have been closed because they were preventing the profile from unloading successfully:

mdm.exe (596)
HKCU (0x19c)