Короткий ответ

Сообщение про временный профиль значит: Windows не загрузила NTUSER.DAT этого SID, подставила временный куст. Не удаляйте C:\Users\ivanov, пока не скопировали данные. Снимите журнал Application (User Profile Service 1500/1511/1515/1542), ключ ProfileList, свободное место, затем переименование повреждённого каталога и новый профиль с копированием файлов.

Это не «домен сломался»: логон может проходить, рабочий стол — нет.

Симптомы и как отличить

  • Баннер: «Вы вошли с временным профилем».
  • После logoff временные файлы исчезают — данные сеанса не сохранились.
  • Event 1511 (нет локального профиля), 1500 (не загружается), 1542 (classes hive).
КартинаНе профиль
Нет DC / довериевход, канал
Учётка lockблокировка
Нет политик HKCUсначала профиль, потом user GPO
C: 0 байтдиск

Возможные причины

  1. Повреждён NTUSER.DAT (жёсткое выключение, диск).
  2. Ключ SID с суффиксом .bak в ProfileList, Windows создаёт временный.
  3. Нет места на томе профилей.
  4. ACL на C:\Users\ivanov сломаны (SYSTEM не имеет полного доступа).
  5. Roaming: не читается шара, конфликт локального и серверного NTUSER.
  6. Антивирус держит куст.
  7. Ручное копирование профиля без SID.

Диагностика

Войдите другой админской учёткой (не жертвой).

Get-WinEvent -FilterHashtable @{ LogName = 'Application'; ProviderName = 'Microsoft-Windows-User Profiles Service' } -MaxEvents 30 |
  Format-Table TimeCreated, Id, Message -Wrap
Get-Volume -DriveLetter C | Format-List SizeRemaining

ProfileList (SID пользователя узнайте через Get-ADUser / whoami /user в его сеансе, если ещё есть):

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\*' |
  Format-List PSChildName, ProfileImagePath, State, RefCount

State и .bak — типичный след аварии. Путь ProfileImagePath должен существовать:

Get-ChildItem 'C:\Users\ivanov' -Force | Select-Object Name, Length, LastWriteTime
Get-Item 'C:\Users\ivanov\NTUSER.DAT' -Force

Roaming: путь в AD ProfilePath. Если шара мертва — сначала файловый сервер.

Решение

Сценарий A. Временный профиль, данные на диске живы

  1. Пользователь должен выйти (временный куст не держит старый путь).
  2. Скопируйте C:\Users\ivanov в C:\Temp\ivanov-backup (включая скрытые).
  3. В ProfileList: если есть SID.bak и SID, разберите по документации Microsoft: обычно удаляют ошибочный ключ после backup реестра, оставляя корректный путь. Не гадайте по чужому скриншоту — снимите экспорт ключа.
reg.exe export 'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' C:\Temp\profilelist-backup.reg
  1. Переименуйте повреждённый каталог ivanovivanov.old.
  2. Новый логон создаст чистый профиль. Скопируйте Desktop, Documents, Downloads, PST файлами, не поверх NTUSER.DAT вслепую.

Сценарий B. NTUSER.DAT не монтируется, нужен старый HKCU

Копирование старого DAT на новый профиль часто снова ломает куст. Надёжнее: данные с диска + заново настройки. Если без куста нельзя — попытка на копии файла в тестовой УЗ, не на единственном оригинале.

Сценарий C. Roaming

Скопируйте серверный профиль в безопасное место, временно очистите ProfilePath для теста локального логона. Не чистите шару «для места» без копии.

Сценарий D. Диск полный

Освободите том, затем повторите логон. Временный профиль на полном диске — следствие.

Сценарий E. RDS, несколько хостов и .bak

На ферме профиль мог сломаться только на одном WS-042 (локальный кэш), а на соседнем хосте пользователь входит нормально. Тогда не трогайте AD ProfilePath: чините кэш на больном узле. Сравните ProfileList и C:\Users на обоих.

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList' |
  ForEach-Object { Get-ItemProperty $_.PSPath | Select-Object PSChildName, ProfileImagePath, State }
Get-WinEvent -FilterHashtable @{ LogName = 'Application'; Id = 1511,1500,1515,1542 } -MaxEvents 15

Ключ .bak появляется, когда Windows решила, что профиль не загрузился, и создала новый SID-ключ. Слепое удаление обоих ключей без копии папки Users даёт новый пустой профиль и тикет «пропали документы». Сначала reg export и копия C:\Users\ivanov.

Roaming: если \\FS01\profiles\ivanov.v6 не монтируется из‑за SMB, вы получите временный профиль при живом NTUSER на диске сервера. Тогда сначала SMB, потом куст.

Не копируйте NTUSER.DAT из Windows 10 на Server 2022 «чтобы вернуть обои»: версии куста разные, часто снова 1542. Переносите документы и ярлыки, не обязательно весь HKCU.

Как проверить, что проблема устранена

Новый сеанс ivanov: нет баннера временного профиля. Файлы с ivanov.old на месте в новом профиле. Event 1511 нет. ProfileList без лишнего .bak. На RDS — отдельный хост фермы проверьте: локальный кэш мог остаться сломанным только на одном WS-042.

Если не помогло

  • Сразу снова 1511: антивирус, фильтр, GPO «delete cached profiles», права на каталог Users.
  • Mandatory/super-mandatory: вы чините не тот тип профиля.
  • FSLogix/Citrix: их логи и VHDX, не только NTUSER на C:.
  • логон вообще нет — сначала домен, не Users.

Если новый профиль сразу снова временный, проверьте квоту диска и фильтр записи в C:\Users. GPO удаления кэшированных профилей на RDS при «нехватке места» сносит восстановленное. Не копируйте NTUSER.DAT с чужой машины с другим SID: получите 1542. На ферме повторите вход на втором хосте: локальный .bak не реплицируется.

Профилактика

  • Запас на томе профилей, квоты.
  • Не держать единственную копию PST в профиле без backup.
  • Roaming только где нужно; иначе локальный + Folder Redirection.
  • Не выключать сервер на кнопке во время логона.
  • На RDS: таймауты сеансов, не раздувать профили.
  • Backup C:\Users критичных учёток до экспериментов с ProfileList. На ферме не чистите профиль сразу на всех хостах: сначала больной узел, потом кэш соседа.

FAQ

Можно ли просто удалить пользователя из Users?

После гарантированной копии — да, как способ заставить создать новый профиль. Без копии — потеря данных.

Почему админ видит файлы, а пользователь — пустой стол?

Вы в временном профиле. Файлы лежат в ivanov, сеанс пишет в Temp.

Нужно ли sysprep / повторный join?

Нет для одного профиля. Join трогает SID компьютера, не чинит NTUSER.

Где SID в .bak?

Имя ключа S-1-5-21-…\.bak. Сопоставьте с Get-ADUser ivanov -Properties SID. Не удаляйте чужие SID.

gpupdate не создаёт ярлыки в временном профиле. Это GPO?

Часть user CSE пишут в HKCU временного куста и умирают при logoff. Сначала восстановите постоянный профиль, потом снова gpupdate.