Windows cannot find the local profile – using temporary profile

Hallo, Bernd hier. Diese Woche war bei mir die Woche der Profile. Keine Ahnung warum, aber ab und an häufen sich Themen ohne ersichtlichen Grund. Diesmal: Warum werde ich in Vista und Windows 7 manchmal mit einem temporären Profil angemeldet während XP einfach mein servergespeichertes Profil nutzt? Etwas zum Hintergrund:

Allgemein bekannt sein dürfte, dass das Profil eines Benutzers eine Sammlung von Dateien, Einstellungen und Registrierungsdateien – zusammengefasst in einem Profilordner - ist. Sagen wir mal, diesem hier:

C:\Users\BENUTZER\ [in Windows Vista bzw. Windows 7]
C:\Documents and Settings\BENUTZER\ [in Windows XP]

Weniger bekannt ist, dass jeder Rechner, auf dem ein Benutzer sich anmeldet, auch eine Information über die gerade auf seiner Festplatte befindlichen Profilkopien speichert. Ein Registrierungsschlüssel mit der SID des Benutzers

HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-4259982270-434397305-3615631142-1121\

enthält neben einigen weiteren Informationen eben auch den Pfad zum lokalen Profilordner. Dieser Schlüssel wird gelöscht, sobald über das UI oder via Gruppenrichtlinie die lokale Kopie eines Profils gelöscht wird.

Bei der Anmeldung eines Benutzers wird nun in diesem Registryschlüssel nach der SID des Nutzers gesucht – und, wenn vorhanden, seine lokale Profilkopie über den dort gespeicherten Pfad gesucht. Diese wird dann mit der servergespeicherten Kopie abgeglichen – Ergebnis: der Nutzer hat die aktuellsten Daten in seiner Session, seinem Profil zur Verfügung.

Beide Teile der (lokalen) Profilkopie gehören untrennbar zusammen – fehlt eine, haben wir eine inkonsistente Situation, die seit Windows Vista anders aufgelöst wird, als noch in Windows XP.

Wenn unter Windows XP der Ordner gelöscht, der Registryschlüssel aber auf dem System belassen wurde, ging XP davon aus, dass nur noch der Ordner lokal angelegt und der Inhalt der servergspeicherten Version kopiert werden musste. Damit waren dann auch beide Teile der lokalen Kopie wieder vorhanden. Dies funktionierte auch in den meisten der Fälle – wer allerdings schon einmal Profilordner im Format

C:\Users\BENUTZER.0001
C:\Users\BENUTZER.0002
C:\Users\BENUTZER.0003

auf seinen Systemen vorgefunden hat, weiß, dass diese Strategie zur automatischen Problemlösung nicht immer aufgegangen ist. Hier war der orignale Ordner nicht gelöscht worden, sondern auf ihn konnte zum Anmeldezeitpunkt nicht zugegriffen werden. Zugriffsverletzungen, geänderte Berechtigungen, etc. – teilweise nur temporärer Natur – führen unter XP dazu, dass wir einen neuen lokalen Ordner erstellen – der Eintrag in der Profilelist zeigt dann eben auf den neuen
Ordner. Gerade in Terminalserver Umgebungen führt dies unter Umständen schnell zu einem Platzproblem.

In Windows Vista und Windows 7 wurde dieses Verhalten geändert. Nun wird im Falle einer inkonsistenten Situation nicht eine weitere lokale Kopie des Profils angelegt, sondern die verbleibende Komponente gesichert (hier ein Auszug aus dem Profil-Debug Log)

[profsvc]Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-4259982270-434397305-3615631142-1121 renamed to S-1-5-21-4259982270-434397305-3615631142-1121 .bak.

und bis zur Klärung durch einen Administrator der Benutzer mit einem Temporären Profil angemeldet.

clip_image002

Gleichzeitig werden zwei Events im Eventlog geschrieben:

Log Name: Application
Source: Microsoft-Windows-User Profiles Service
Date: 09.12.2009 13:15:06
Event ID: 1515
Task Category: None
Level: Error
Keywords:
User: CHILD1\BENUTZER
Computer: DMW701.child1.forest1.test
Description:
Windows has backed up this user profile. Windows will automatically try to use the backup profile the next time this user logs on.

Log Name: Application
Source: Microsoft-Windows-User Profiles Service
Date: 09.12.2009 13:15:06
Event ID: 1511
Task Category: None
Level: Error
Keywords:
User: CHILD1\BENUTZER
Computer: DMW701.child1.forest1.test
Description:
Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off.

Bei jeder weiteren Anmeldung wird Windows Vista bzw. Windows 7 den Schlüssel mit der Endung .bak wieder umbenennen und prüfen, ob der lokale Ordner mit der NTUSER.DAT inzwischen wieder zur Verfügung steht bzw. zugreifbar ist.

[profsvc]Checking Local Profile ...

[profsvc]Backup key Software\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-4259982270-434397305-3615631142-1121.bak restored.

[profsvc]Expanded local profile image path = <C:\Users\BENUTZER>

Wenn dies der Fall ist, wird dieses Profil genutzt und der Ordner mit der servergspeicherten Kopie abgeglichen. Sollte er allerdings weiterhin nicht verfügbar sein, greift wieder der oben beschriebene Mechanismus – umbenennen in .bak und anmelden mit einem temporären Profil. Dies wird sich wiederholen, bis ein Administrator die Situation geklärt und bereinigt hat:

  • Sollte kein lokaler Ordner vorhanden sein, muss der Schlüssel (.bak) aus der Profilelist entfernt werden
  • Sollte der lokale Ordner vollständig vorhanden sein, muss geprüft werden, ob z.B. die Rechte auf den Ordner korrekt sind, der Besitzer korrekt ist bzw. kein anderer Prozess Dateien im Profil exklusiv im Zugriff hält.

Dies sorgt zwar im ersten Moment für mehr Arbeit für den Administrator, stellt aber sicher, dass individuell auf die verschiedenen Ursachen reagiert wird (werden kann) anstatt eine “Lösung” über all diese unterschiedlichen Probleme zu stülpen: einfach eine neue Kopie des Benutzerprofils anzulegen.

Ich hoffe, das bringt etwas Licht in diese beiden KB Artikel, an denen sich die meisten Fragen in dieser Woche aufgehängt hatten:

https://support.microsoft.com/kb/947242
https://support.microsoft.com/kb/947215

Bernd “der jetzt in den Urlaub verschwindet” Puchtinger