Signed in with a temporary profile — "You've been signed in with a temporary profile"
Windows could not load the user's profile, so it created a throwaway one. Everything done in it is discarded at sign-out.
What you see
A default desktop with none of the user's files or settings, and a notification about a temporary profile. The real data is still on disk under C:\Users.
What is actually wrong
The profile's registry entry has been marked with a .bak suffix after a failed load, the NTUSER.DAT is locked or damaged, or the profile directory permissions have been changed.
Codes and articles
Fixes (2)
Repair the ProfileList entry
A local profile. The user's data is intact; only the pointer to it is wrong.
Tell the user to sign out and not to save anything into the temporary profile — it is discarded at sign-out.
Sign in as another administrator and find the entries.
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' | ForEach-Object { [PSCustomObject]@{ Key = $_.PSChildName Path = (Get-ItemProperty $_.PSPath).ProfileImagePath State= (Get-ItemProperty $_.PSPath).State } } | Format-Table -AutoSize
Back the whole key up before changing it.
reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" C:\profilelist-backup.reg /yYou will find two entries for the same SID: one ending .bak pointing at the real profile, and one without pointing at the temporary one. Delete the entry without the suffix, then rename the .bak one to take its place.
Windows renames the working entry to .bak when a load fails and creates a fresh one. Swapping them back is the entire fix — deleting the profile folder, which is the common advice, destroys the user's data for no reason.
Set State to 0 and RefCount to 0 on the restored entry.
$sid = 'S-1-5-21-...' $p = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$sid"Set-ItemProperty $p -Name State -Value 0 -Type DWordSet-ItemProperty $p -Name RefCount -Value 0 -Type DWord
Restart and have the user sign in.
Get-CimInstance Win32_UserProfile | Format-Table LocalPath,SID,Special,LoadedDeal with a roaming profile that will not load
Roaming profiles or a session host.
Read the user profile service log, which names the reason precisely.
Get-WinEvent -LogName 'Microsoft-Windows-User Profile Service/Operational' -MaxEvents 40 | Format-Table TimeCreated,Id,Message -WrapCheck the profile share is reachable and the permissions are right — the user needs full control of their own folder, and the folder must not be inheriting a deny.
Check for a lock: a session that did not close leaves NTUSER.DAT held open, and the next sign-in cannot load it.
Get-SmbOpenFile | Where-Object Path -like '*NTUSER*' | Format-Table ClientUserName,Path,SessionIdClosing the stale open file is often the entire fix on a session host, and it takes seconds. Rebuilding the profile without checking this recreates the problem at the next disconnect.
Close the stale handle if one exists.
Get-SmbOpenFile | Where-Object Path -like '*NTUSER*' | Close-SmbOpenFile -ForceConsider FSLogix or a container-based profile for session hosts — roaming profiles on a multi-session host are a recurring source of exactly this.
Related faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.