Cached Profile als Risiko
Normalerweise meldet sich ein Anwender auf einem Windows Client an, wobei der Anmelddienst den dahinterliegenden Verzeichnisdienst konsultiert, z.B.: ein Active Directory oder Entra ID. Ist keine Verbindung zu diesem Verzeichnis vorhanden, können sich Benutzer aber immer noch anmelden, wenn Sie früher schon einmal angemeldet waren. Windows kennt dazu "Cached Credentials". Das kann ein Risiko sein, wenn ein Benutzer ausscheidet und sie erwarten, dass er nun sich nicht mehr anmelden kann.
Testserie
Ich habe dazu eine kleine Testserie gestartet, indem ich einen Domain Benutzer im AD angelegt und dann verschiedene Aktionen auf einen Windows 11 24H2-Client im August 2025 durchgespielt habe.
| Verbindnug |
Aktion |
Status |
Ergebnis |
|
|---|---|---|---|---|
|
Online
|
Ungültiger User |
|
"Benutzer oder Kennwort falsch" Wie nicht anders zu erwarten, konnte ich mich nicht anmelden. |
|
|
Off
|
Ohne lokales Profil |
|
"Domain nicht verfügbar" Wie nicht anders zu erwarten, konnte ich mich nicht anmelden. |
|
|
Offline
|
Keine Änderung |
|
Erfolgreiche Anmeldung Wie nicht anders zu erwarten, konnte ich mich mit dem Benutzer auch anmelden, wenn keine Verbindung zum Domain Controller möglich ist |
|
|
Online
|
Kennwort aktiv |
|
Erfolgreiche Anmeldung Wie nicht anders zu erwarten, konnte ich mich mit dem Benutzer anmelden. |
|
|
Online
|
Kennwort geändert |
|
Anmeldung mit neuem Kennwort möglich Wird das Kennwort in der Domain geändert, wird bei der nächsten Anmeldung das neue Kennwort erzwungen. Eine Anmeldung mit dem bisherigen Kennwort ist nicht möglich. Der Windows Client |
|
|
Offline
|
Kennwort geändert |
|
Danach habe ich das Kennwort in der Domain von einem anderen Client aus geändert. Da der Clients des Benutzers nicht im Netzwerk war, konnte er das nicht mitbekommen. Eine Anmeldung des Anwenders am Client konnte weiter mit dem alten Kennwort erfolgen. Das Verhalten ist aber erwartet und auch erwünscht, damit Anwender z.B. unterwegs oder im Home Office ohne Verbindung zur Firma sich anmelden können. Hinweis: Auch wenn der Client "online" war, hat er die Kennwortänderung nicht mitbekommen. Erst beim Anmelden prüft der Client die Verbindung zum DC. |
|
Online |
Konto deaktiviert |
|
"Das Konto ist deaktiviert" Da der Anmeldedienst während des Login die Daten des Benutzers im Verzeichnis prüft, fällt auch ein gesperrtes Konto direkt auf. Hinweis: Ein fehlerhafter Anmeldeversucht aufgrund einer Kontosperrung führt dazu, dass auch das lokale Profil gesperrt wird und eine Anmeldung am DC erforderlich ist. |
|
Offline |
Konto deaktiviert |
|
Ist der Client aber Offline und gab es vorher noch keinen abgebrochenen Anmeldeversucht, dann kann der Client nicht wissen, ob ein Konto gesperrt ist. Der Anwender kann sich weiterhin "offline" mit dem Kennwort anmelden, welches bei der letzten Anmeldung noch gültig war. |
|
Online |
Konto gelöscht |
|
"Benutzer oder Kennwort falsch" Wurde das Konto im lokalen AD gelöscht, dann kann sich der Benutzer nicht mehr Anmelden. Die Fehlermeldung unterscheidet sich nicht vom ersten Fall, dass es den Benutzer noch nie gegeben hat. Dass es noch ein lokales Profil gibt, interessiert nicht. |
|
Offline |
Konto gelöscht |
|
Anmeldung erfolgreich Hier könne man nun behaupten, dass dies ja zu erwarten ist, denn der Client kann ja nicht den DC fragen. Das stimmt aber ich habe den Test auch noch mal wiederholt, nachdem der Client online war und da eine Anmeldung nicht mehr möglich war. Der Anmeldedienst sperrt/löscht keine lokalen Konten oder Profile, obwohl das Konto nachweislich im Verzeichnisdienst nicht mehr vorhanden war. |
|
Offline |
Neuer Benutzer |
|
Ohne Verbindung zum Verzeichnisdienst kann sich ein neuer Anwender nie auf dem PC anmelden. Das überrascht aber auch nicht, denn woher sollte der Windows Client auch die Information haben. Er repliziert ja nicht auf Vorrat alle möglichen Benutzer mit ihren Zugangsinformationen. |
|
Der Client wurde zwischen den Tests nicht durchgestartet.
Zwischenstand - bedingt sicher
Mit dem Wissen können wir festhalten, dass eine Anmeldung an einem Windows 11 24H2-Client bei einer aktiven Verbindung zum Verzeichnisdienst je nach Konfiguration (aktive, neues Kennwort, gesperrt, deaktiviert, gelöscht) durch das Verzeichnis gesteuert wird. Wenn der Client aber keine Verbindung zum Verzeichnis hat, dann kann der Client nicht erkennen, welchen Status das Konto gerade hat. Es ist für den Anwender weiterhin möglich, eine Anmeldung mit dem damals gültigen Anmeldedaten anhand der "Cached Logon Information" durchzuführen. Er bekommt dann natürlich erst einmal auch kein Kerberos-TGT und weitere TGS-Tickets für den Zugriff auf andere Systeme. Auch eine Anmeldung per NTLM nach wiederherstellen der Verbindung ist erst wieder möglich, wenn das Kennwort weiterhin identisch ist oder aktuelle Kennwort neu eingegeben wurde. Der Zugriff auf Server selbst ist damit unterbunden.
Im Risiko sind natürlich alle lokalen Daten auf dem Client, an welche der Anwender noch herankommt. Wenn er sogar lokaler Administrator ist, dann kann er den Client auch verändern. Eine Konto-Sperrung wird auf dem Client gespeichert, wenn eine Anmeldung fehlgeschlagen ist. Anders sieht es bei gelöschten Konten aus. Hier scheint der Windows Anmeldedienst nicht intelligent genug zu sein, so ein Konto zu beseitigen. Wenn ich mich einmal korrekt angemeldet habe, dann kann ich mich auch zukünftig weiter "offline" anmelden, selbst wenn das Konto im Verzeichnisdienst gelöscht wurde und eine Anmeldung am Client fehlgeschlagen ist.
Es gibt keinen Hintergrundprozess im Anmeldedienst, der bei einer Verbindung zum Verzeichnisdienst die Konten überwacht, für die es lokale Profile gibt und ggfls. sperrt oder aufräumt.
Ich hätte mir schon gewünscht, dass ein Client z.B. alle 60 Minuten die Liste der lokalen Profile mit Domain-Benutzern gegen das AD abgleicht und ggfls. die Profile bereinigt oder die Anmeldung entsprechend sperrt oder zumindest bei jeder neuer interaktiven Anmeldung mit Verbindung zum DC die bestehenden Profile kurz checkt.
Überrascht hat mich aber, dass ein gelöschter Benutzer sich an einem Computer mit Verbindung zum DC sich zwar nicht mehr anmelden kann, aber der Clients dies nicht zum Anlass nimmt, die "Offline"-Anmeldung zu unterbinden.
Übrigens war genau das auch der Auslöser für diesen Artikel. Ein Mitarbeiter hatte neben seinem regulären Anmeldekonto auch noch ein Admin-Konto, welches auf dem lokalen Computer erweiterte Rechte hatte. Da er dieses Konto aber einige Zeit nicht mehr verwendet hat, wurde es in der Domain gelöscht. Monate später hat sich der Anwender aber wieder an sein privilegiertes Konto erinnert und konnte sich damit "offline" sogar auf dem Client anmelden. Das war so nicht von der Firma gewünscht.
Abhilfe: Gruppenrichtlinien
Microsoft hat keinen eingebauten Prozess, um die lokalen und Profile und Konten zu bereinigen oder einen Status abzugleichen. Es gibt aber verschiedene Möglichkeit die Sicherheit zu verbessern. Über Gruppenrichtlinien lassen sich zwei Einstellungen recht einfach anpassen:

- "Interactive logon: Number of previous
logons to cache (in case domain controller
is not available) "
In der Standardeinstellung cached Windows bis zu 10 Benutzeranmeldeinformationen. Diesen Wert können reduziere, wenn ein Computer nur von einer Person genutzt wird. Ein Wert von "0" verhindert dies und ist für ortsfeste Desktops eine geeignete Einstellung. Der Maximalwerte ist 50". Für Laptops und andere mobile und nicht permanent verbundene Geräte ist dies natürlich keine Lösung und denken Sie daran, dass einige Anmeldeverfahren , z.B. Smartcard zwei Einträge belegen. - "Interactive logon: Require Domain
Controller authentication to unlock"
Diese Einstellung erzwingt auch beim Entsperren eines clients eine Verbindung zum Domain Controller. Damit bringen Sie ihre mobilen Arbeiter sehr schnell zur Weißglut.
Neben den lokalen Richtlinien gibt es auch ADMX-Vorlagen zu Profilen.

Hier ist eine Einstellung interessant:
- "Delete user profiles older than a
specified number of days on system restart"
Diese Einstellung sollte eigentlich die Forderung erfüllen, dass länger nicht mehr genutzte Profile von Windows beim nächsten Neustart bereinigt werden.
Manchmal scheint das aber nicht zu funktionieren oder sie möchten die Löschvorgänge gerne selbst kontrollieren.
- GPO to remove profiles on reboot not
working - Microsoft Q&A
https://learn.microsoft.com/en-us/answers/questions/1162423/gpo-to-remove-profiles-on-reboot-not-working - Group Policy: Automatically Delete User
Profiles Older Than Certain Number of Days
Win 10 not working. - Microsoft Q&A
https://learn.microsoft.com/en-us/answers/questions/441800/group-policy-automatically-delete-user-profiles-ol
Abhilfe: Intune
Wer kein lokales AD hat, sondern z.B. die Endgeräte mit Intune verwaltet, kann über die "Settings" für Windows Clients ebenfalls eine entsprechende Vorgabe machen:

Technisch setzen sowohl Gruppenrichtlinien als auch Intune einen Schlüssel in der Registrierung
- Create user data and profiles configuration items in
Configuration Manager
https://learn.microsoft.com/en-us/intune/configmgr/compliance/deploy-use/create-user-data-and-profiles-configuration-items
Hintergrund: Profilalter
Ehe man Profile per Gruppenrichtlinie, WMI oder PowerShell löscht, müssen wir natürlich das Alter auf diesem Client ermitteln. Hierzu gibt es zwei Möglichkeiten:
- NTFS- Dateidatum z.B. NTUSER.DAT
Ein Windows Profil besteht aus einem Verzeichnisbaum, in dem Windows auch die Registrierungsschlüssel wie "HKEY_CURRENT_USER" als Datei (ntuser.dat) ablegen und bei der Abmeldung werden dort Änderungen geschrieben und damit das "LastWrite"-Datum der Datei verändert. Sie können natürlich theoretisch auch nach der letzten Änderung von Verzeichnissen, Temp-Dateien etc. suchen und so einen Rückschluss auf die letzte Nutzung erhalten. - ProfileList
Eleganter ist aber vermutlich die Abfrage der Einstellung in der Windows Registrierung, welche die Informationen über alle Profile zusammenhält. Hier gibt es zwei Felder "LocalProfileUnloadTimeHigh" und "LocalProfileUnloadTimeLow", die entsprechend zusammengerechnet einen Zeitstempel ergeben.

Eine Analyse des Windows Eventlogs nach "Login/Logout"-Events ist theoretisch auch noch denkbar, wenn die Events denn lange genug vorgehalten werden
Löschen per Script
Ein Profil auf einem Windows Client besteht aus dem Verzeichnis mit all den Dateien und dem Eintrag in der Registrierung, die per WMI erreichbar ist. Auf meinem Client sehe ich dazu:
Get-WmiObject -Class Win32_UserProfile| ft sid,LastUseTime

Das WMI-Objekt liefert auch noch die anderen Felder:
LastAttemptedProfileDownloadTime : LastAttemptedProfileUploadTime : LastBackgroundRegistryUploadTime : LastDownloadTime : LastUploadTime :
Allerdings waren diese Felder bei mir immer leer und per WMI habe ich nur "LastUseTime" gefunden. Die Informationen aus der Registrierung kann ich relativ einfach ermitteln. Ich muss nur den "High"- und "Low"-Wert kombinieren und in ein Datum konvertieren lassen:
foreach ($entry in (Get-childitem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\")) {
[pscustomobject][ordered]@{
SID = $entry.PSChildName
Profilpfad = $entry.ProfileImagePath
LastUnloadTime = [datetime]::FromFileTime(([UInt64]$entry.GetValue("LocalProfileUnloadTimeHigh") -shl 32) -bor $entry.GetValue("LocalProfileUnloadTimeLow"))
}
}
Achtung KI!
Ich habe natürlich auch einmal Copilot befragt und die Ergebnisse waren auf der
Tonspur OK, aber das Skript hätte mit alle Profile gelöscht,
Das von Copilot erzeugte Skript hat den Wert der WMI-Abfrage zu "LastUseTime" als INT64-Filedate interpretiert hat und nicht als "String". Bei der Umrechnung kam dann immer 1.1.1601 als "LastUseTime heraus.

Jeder "Mensch" interpretiert die Zahl als rückwärts geschriebenes Datum in der Form "ÝYYYMMDDhhmmss.hhhhh+zone". Testen sie daher ihre Skripte ausführlich und beim Löschen selbst müssten sie daran denken, dass sie beide Stellen bearbeiten:
- Löschen des Profileintrags per WMI
Damit wird der Schlüssel in der Registrierung entfernt - Löschen des Profilverzeichnisses
Das betrifft dann die Dateien.
Dabei sollten Sie darauf achten, dass sie nur Profile löschen, die nicht gerade in Benutzung sind. Denken Sie dabei auch an Profile, die nach der Abmeldung nicht sofort von Windows wieder freigegeben werden. Nicht umsonst wird Microsoft eine richtlinienbasierte Löschung immer beim Neustart des Computer machen, während noch niemand angemeldet ist. Zudem sollten Sie die Systemprofile "LocalSystem", "LocalService", "NetworkService" etc. ausschließen. Entsprechende Beispiele gibt es von Microsoft und anderen Autoren.
- Scripts: Retrieve profile age and optionally delete aged
copies
https://learn.microsoft.com/en-us/troubleshoot/windows-server/support-tools/scripts-retrieve-profile-age-delete-aged-copies - User profiles older than a specified
number of days aren't deleted as expected on
system restart
Old user profiles aren't deleted as expected on system restart - Windows Server | Microsoft Learn - Remove old user profiles - Intune | scloud
https://scloud.work/user-profile-clean-up-intune/ - Delete User Profiles Older than a Specified Number of
Days on System Restart through Intune
https://www.lieben.nu/liebensraum/2019/10/delete-user-profiles-older-than-a-specified-number-of-days-on-system-restart-through-intune/
https://gitlab.com/Lieben/assortedFunctions/blob/master/set-CleanupUserProfilesAfterDays.ps1
Windows Credential Cache
Aber genaugenommen will ich das Profil gar nicht sofort löschen, sondern einfach nur sicherstellen, das gesperrter und insbesondere gelöschte Konten keinen Zugriff mehr haben. Leider hat Windows keinen Hintergrundprozess, der regelmäßig prüft, welche Profile noch zu aktiven Konten gehören und welche wirklich bereinigt werden könnten. Ich kann mir ja schon vorstellen, dass Benutzer mit mehreren Arbeitsplätzen auch nach Wochen wieder einmal zurückkommen und dann nicht unbedingt bei "Null" wieder anfangen wollten. Ich denke an Clients, die Daten in eine OST-Datei replizieren oder OneDrive nutzen etc.
Mir hätte es ja schon gereicht, Profile von im AD gelöschten Benutzern zu entfernen und den "Deaktiviert"-Status von Konten proaktiv zu übertragen. So eine Funktion gibt es in Windows allerdings nicht und wenn ich diese erzwingen müsste, dann würde ich vermutlich einen geplanten Task aufsetzen, der z.B. jede Stunde die Liste der lokalen Profile ermittelt und die Existenz der Benutzer prüft.
Leider habe ich keinen Weg gefunden, wie
ich die Profile bestehen lassen könnte aber die "Cached
Credentials" gezielt löschen kann
Der Speicher ist "pro Computer" und ist nicht der "Credential
Manager", in dem jeder Benutzer innerhalb seiner Session
weitere Anmeldeinformationen ablegen kann.
- Credential Manager in Windows -
Microsoft Support
https://support.microsoft.com/en-us/windows/credential-manager-in-windows-1b5c916a-6a16-889f-8581-fc16e8165ac0 - Clearing cached and saved Windows
credentials - IST Knowledge Base -
Confluence
https://uwaterloo.atlassian.net/wiki/spaces/ISTKB/pages/262013240/Clearing+cached+and+saved+Windows+credentials - How to clear cached credentials in
Windows
https://www.ibm.com/support/pages/how-clear-cached-credentials-windows
Weitere Links
- Group Policy Settings Reference for
Windows and Windows Server
https://go.microsoft.com/fwlink/?LinkId=71758
https://www.microsoft.com/en-us/download/details.aspx?id=25250 - Delprof2
https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/ - Auto remove profles over 5 days old on system restart #Windows10 #Local/GroupPolicy
| Windows 10
https://www.edugeek.net/forums/topic/160041-auto-remove-profles-over-5-days-old-on-system-restart-windows10-localgrouppolicy/ - How to Delete User Profiles in Windows 11 & 10 | Remove Windows User Profile
| NinjaOne
https://www.ninjaone.com/blog/how-to-delete-user-profiles-in-windows/
- Scripts: Retrieve profile age and optionally delete aged
copies
https://learn.microsoft.com/en-us/troubleshoot/windows-server/support-tools/scripts-retrieve-profile-age-delete-aged-copies - User profiles older than a specified
number of days aren't deleted as expected on
system restart
Old user profiles aren't deleted as expected on system restart - Windows Server | Microsoft Learn - Create user data and profiles configuration items in
Configuration Manager
https://learn.microsoft.com/en-us/intune/configmgr/compliance/deploy-use/create-user-data-and-profiles-configuration-items - Remove old user profiles - Intune | scloud
https://scloud.work/user-profile-clean-up-intune/ - Delete User Profiles Older than a Specified Number of
Days on System Restart through Intune
https://www.lieben.nu/liebensraum/2019/10/delete-user-profiles-older-than-a-specified-number-of-days-on-system-restart-through-intune/
https://gitlab.com/Lieben/assortedFunctions/blob/master/set-CleanupUserProfilesAfterDays.ps1 - Credential Manager in Windows - Microsoft Support
https://support.microsoft.com/en-us/windows/credential-manager-in-windows-1b5c916a-6a16-889f-8581-fc16e8165ac0 - Clearing cached and saved Windows credentials - IST Knowledge Base -
Confluence
https://uwaterloo.atlassian.net/wiki/spaces/ISTKB/pages/262013240/Clearing+cached+and+saved+Windows+credentials - How to clear cached credentials in Windows
https://www.ibm.com/support/pages/how-clear-cached-credentials-windows















