Введение в профили пользователей Windows — AppData и NTUSER.DAT

· Обновлено: · · Windows, Профиль пользователя, AppData, FSLogix, Перемещаемый профиль, Разработка Windows

История изменений (1 обновлений, последнее 30 Aug 2026)

Журнал изменений этой статьи. Там, где версия до правки была заархивирована, она остаётся доступной для чтения по постоянной ссылке с DOI.

Русский текст переписан как полноценный технический перевод, а не калька с японского. Утверждения статьи не менялись.
Первая публикация
Цитирование статьи(DOI: 10.5281/zenodo.21619736)

Статья заархивирована на Zenodo. Ниже приведены DOI, который всегда ведёт к последней версии, и DOI, закреплённый за версией, которую вы читаете.

Го Комура (2026). Введение в профили пользователей Windows — AppData и NTUSER.DAT. KomuraSoft LLC. https://doi.org/10.5281/zenodo.21619736 https://comcomponent.com/ru/blog/2026/03/17/002-windows-user-profile-guide/

DOI (последняя версия)
10.5281/zenodo.21619736
DOI (эта версия)
10.5281/zenodo.21619737

Статья написана как общий обзор для ИТ, которые администрируют Windows, для тех, кто занимается развёртыванием рабочих станций, и для разработчиков Windows-приложений. Схемы — концептуальные. В Markdown-среде с поддержкой Mermaid они отображаются как диаграммы.

Содержание опирается на официальные материалы Microsoft, которые можно было проверить по состоянию на апрель 2026 года. [1][4][7][10][13][14]

Как читать

Статья длинная, поэтому сначала вход по роли.

Если вы Начните здесь
Хотите за 5 минут понять, что такое профиль главы 1 и 2
Разработчик и нужно решить, куда приложение сохраняет данные 3.1, глава 6
Выбираете перемещаемый профиль или FSLogix главы 5 и 8
Прямо сейчас всё сломано и нужно чинить глава 7 (затем глава 9)
Не знакомы с терминами таблица сокращений в 1.1

В разговорах про Windows слово «профиль» используют очень широко.

  • Что лежит внутри C:\Users\имя_пользователя
  • Как разделять %AppData% и %LocalAppData%
  • Что такое перемещаемый профиль в домене
  • Чем Mandatory-профиль отличается от Temporary
  • Что выбирать на общем ПК, в RDS, VDI, Azure Virtual Desktop
  • С чего смотреть, когда профиль сломан

Здесь сразу перемешиваются учётная запись, папки, реестр, способ синхронизации и эксплуатационная политика, и разговор быстро уезжает в сторону.

Сначала зафиксируем взгляд на профиль пользователя Windows как на одну схему, и уже потом по порядку разберём разделение AppData, перемещаемые профили, Mandatory, Temporary, FSLogix и как смотреть при сбое.

1. Сначала вывод

До деталей — практические выводы.

  • Профиль пользователя Windows — это не просто папка C:\Users\имя_пользователя. Это набор файлов + куст реестра пользователя (NTUSER.DAT). [1]
  • На обычном локальном ПК по умолчанию создаётся локальный профиль. При первом входе новый профиль собирается на основе C:\Users\Default. [11][12]
  • Место сохранения для приложения лучше не выбирать «как получится»: базовое правило — настройки, которые нужно возить с пользователем, в %APPDATA%; кэш и временное состояние этого ПК — в %LOCALAPPDATA%. [2][3]
  • Перемещаемый профиль (roaming user profile) — механизм «унести весь профиль на общий ресурс». Folder Redirection — механизм «унести в другое место только известные папки вроде Documents». Это не одно и то же. [4][5]
  • Mandatory-профиль — профиль только для чтения: пользоваться можно, сохранять нельзя. Temporary-профиль — аварийный выход при ошибке, и каждый раз его удаляют. [7][8][9]
  • Перемещаемый профиль через поколения ОС — зона риска. Windows 10 / Server 2016 и новее несовместимы с более ранними, и версии профиля нужно разделять. [6]
  • В RDS / VDI / Azure Virtual Desktop чаще лучше не продавливать только классический перемещаемый профиль, а первым кандидатом держать контейнер профиля FSLogix. Microsoft для Azure Virtual Desktop тоже рекомендует FSLogix. [13][14]
  • При сбое разумнее не лезть сразу в C:\Users, а смотреть журнал Application, Operational / Diagnostic службы User Profile Service, путь общего ресурса и атрибуты с правами NTUSER.DAT / USRCLASS.DAT. [10][11][16]

Коротко: разговор про профили Windows сводится к «что куда класть, насколько далеко это едет с пользователем и как возвращаться после сбоя».

1.1 Сокращения в этой статье

Разворачиваем аббревиатуры, которые появляются уже с начала.

Сокращение Расшифровка Смысл
RDS Remote Desktop Services Несколько пользователей удалённо подключаются к одному серверу и держат там сеанс
VDI Virtual Desktop Infrastructure Каждому пользователю выделяют рабочий стол виртуальной машины
AVD Azure Virtual Desktop Служба виртуальных рабочих столов Microsoft в Azure
HKCU HKEY_CURRENT_USER Часть реестра, принадлежащая вошедшему пользователю. Физически это NTUSER.DAT
куст registry hive Часть реестра, вынесенная в файл. Сюда относятся NTUSER.DAT и USRCLASS.DAT
GPO Group Policy Object, объект групповой политики Механизм, который раздаёт настройки ПК и пользователям в домене
ACL Access Control List, список управления доступом Кто может читать и писать в папку или файл
трассировка ETL Event Trace Log Подробная запись работы Windows в файл .etl. Последнее средство, когда журнала событий не хватает
UNC-путь Universal Naming Convention Путь сетевого общего ресурса в виде \\server\share\...
VHD / VHDX Virtual Hard Disk Формат файла виртуального диска. FSLogix кладёт в него весь профиль
CopyProfile Поддерживаемая процедура вместе с Sysprep: готовый профиль переносится в профиль по умолчанию
Sysprep System Preparation Tool Средство обобщения образа Windows для развёртывания
низкий уровень целостности low integrity level Ступень прав процесса, где запись сильно ограничена. Здесь как раз работает LocalLow

Карта знаний этой статьи

Профиль пользователя Windows состоит из двух слоёв — набора файлов вроде Desktop и AppData и пользовательского куста реестра NTUSER.DAT — и при первом входе создаётся на основе C:\Users\Default. AppData делится на Roaming, Local и LocalLow: настройки, которые должны следовать за пользователем, кэш, привязанный к ПК, и область для процессов с низким уровнем целостности кладут в разные места. Локальный профиль — база; roaming-профиль — когда настройки нужно разделять между несколькими ПК; Folder Redirection — когда централизованно управлять нужно только документами; в RDS/VDI/Azure Virtual Desktop рекомендуется контейнер профиля FSLogix. Mandatory-профиль подходит для учебных мест и киосков; проблемы с правами на NTUSER.DAT и событие 1509 из-за длинного пути — типичные причины перехода на временный профиль.

Карта знаний: профиль пользователя WindowsСхема того, как профиль пользователя состоит из NTUSER.DAT и AppData (Roaming/Local/LocalLow), чем различаются способы local, roaming, Mandatory, Temporary и FSLogix, и как событие 1509 из-за длинного пути связано с переходом на временный профильиспользуеттребуетнастраиваетсяиспользуетиспользуетиспользуетиспользуетиспользуетиспользуетиспользуетиспользуетиспользуетможет вызватьиспользуетиспользуетрекомендуется дляне рекомендуетсяиспользуетиспользуетнастраиваетсяможет вызватьможет вызватьпроверяетсяможет вызватьпрофиль пользователяNTUSER.DATпрофиль по умолчанию (Default)CopyProfile%APPDATA% (Roaming)%LOCALAPPDATA%AppData\LocalLowнизкий уровень целостностилокальный профильперемещаемый профильобязательный профиль (Mandatory)временный профиль (Temporary)FSLogix Profile Containerнесовместимость roaming-профиля между поколениями ОСFolder RedirectionAzure Virtual Desktopрежим Shared PCполитика автоудаления старых профилейгрупповая политикасобытие ID 1509 (сбой загрузки профиля из-за длинного пути)журналы User Profile Service

На схеме сплошная линия обозначает отношение, которое выполняется всегда, а пунктирная — условное отношение (условия указаны в пояснении к каждому отношению на странице сведений). Полный список отношений (всего 24, с доказательствами и степенью уверенности) и определения основных понятий собраны на странице сведений карты знаний (на японском). Данные: JSON-LD / Turtle

2. Что вообще такое «профиль пользователя» Windows

Сначала проще разделить учётную запись и профиль.

Учётная запись пользователякто входит в системуПрофиль пользователяего настройки и данныеУстройство / ОСНастройки рабочего столаAppDataDocuments / Desktop и т. д.Настройки, видимые в HKCU

Рис. 1: Учётная запись — идентификатор, профиль — сами настройки и данные; устройство их загружает и использует.

  • Учётная запись идентифицирует человека
  • Профиль — это фактическая рабочая среда этого человека
  • Устройство — место, где профиль загружают и используют

В Microsoft Learn тоже сказано: профиль пользователя включает набор папок профиля в файловой системе и куст реестра NTUSER.DAT; при входе этот куст загружается и используется как HKEY_CURRENT_USER. [1]

2.1 Это не «только папки» — сюда входит и реестр

Это важный момент.

Вход в системуОпределить папку профиляЗагрузить NTUSER.DATИспользовать как HKCUПодготовить Desktop / Documents / AppDataПользовательские настройки вступают в силу

Рис. 2: При входе должны сойтись подготовка папок и загрузка NTUSER.DAT — только тогда настройки пользователя начинают работать.

То есть смотреть только на C:\Users\имя_пользователя — это ещё половина картины.

В профиле Windows есть два больших слоя.

  1. Файловый слой Desktop, Documents, Downloads, AppData и т. д.
  2. Слой реестра HKCU, который появляется после загрузки NTUSER.DAT

Разговор про «сломанный профиль» путается как раз потому, что бывает поломка только на стороне папок и бывает проблема в кусте реестра. [1][11]

2.2 При первом входе основой служит Default

Когда новый пользователь впервые входит на этот ПК, Windows создаёт локальный профиль на основе C:\Users\Default. [11]

C:\Users\DefaultПервый входСоздаётся C:\Users\имя_пользователяЗагружается NTUSER.DATПолучается среда именно этого пользователя

Рис. 3: При первом входе профиль этого пользователя собирается на основе Default.

Если здесь срезать углы при развёртывании образов или комплектации ПК, потом будет больно.

Microsoft пишет: поддерживаемый способ настроить профиль по умолчанию — CopyProfile. Ручное копирование и старые грубые дублирования тащат лишнее и ломают стабильность приложений и системы. [12]

3. Как читать C:\Users\имя_пользователя

Если смотреть на профиль со стороны папок, структура примерно такая.

C:\Users\имя_пользователяDesktopDocumentsDownloadsPicturesAppDataNTUSER.DATRoamingLocalLocalLow

Рис. 4: Профиль состоит из набора папок и NTUSER.DAT; AppData делится ещё на три части.

На практике сначала смотрят примерно сюда.

Место Что там лежит Практический взгляд
Desktop Файлы на рабочем столе То, что видит пользователь
Documents Документы, которые пользователь создал Сюда легко попадают рабочие данные
Downloads Загрузки Легко смешивается с мусором
AppData\Roaming Ближе к пользовательским настройкам Для настроек, которые нужно возить с собой
AppData\Local Ближе к данным и кэшу этого ПК Легко разрастается
NTUSER.DAT Реестр пользователя Физическое содержимое HKCU

3.1 Смотрим на AppData как на три разные области

Именно здесь при разработке Windows-приложений и разборе сбоев всё чаще всего перемешивается.

В руководстве Microsoft для данных приложения рекомендуют FOLDERID_RoamingAppData (Roaming AppData), а для временных файлов и данных, которые не нужны на другом компьютере, — FOLDERID_LocalAppData. [2]

В определениях Known Folders пути по умолчанию такие. [3]

  • %APPDATA% = %USERPROFILE%\AppData\Roaming
  • %LOCALAPPDATA% = %USERPROFILE%\AppData\Local
  • LocalLow = %USERPROFILE%\AppData\LocalLow
AppDataRoamingLocalLocalLowНастройки, которые нужно возитьНебольшое пользовательское состояниеКэшДанные, которые можно пересоздатьСостояние именно этого ПККуда может писать процесс с низким уровнем целостности

Рис. 5: Roaming — настройки, которые едут с пользователем; Local — данные этого ПК; LocalLow — место для процессов с низким уровнем целостности.

LocalLow — не «неиспользуемое место», а «место для приложений с урезанными правами»

Из трёх папок у LocalLow описание чаще всего получается коротким, но назначение у него особое, и причина существования ясная.

У процессов Windows есть уровень целостности (integrity level). Процесс с низким уровнем не может писать в большую часть AppData\Roaming, AppData\Local и HKCU. Без отдельного места он вообще ничего не сохранит, поэтому есть зона, куда низкий уровень всё же может писать. Это %USERPROFILE%\AppData\LocalLow и, со стороны реестра, HKEY_CURRENT_USER\Software\AppDataLow. [19]

В таблице это выглядит так.

  Кто пишет Перемещается ли
Roaming Приложение с обычным уровнем целостности В зависимости от способа — да
Local Приложение с обычным уровнем целостности Нет
LocalLow Приложение с низким уровнем целостности Нет

Типичный пример — браузер, который намеренно опускает часть, работающую с интернет-содержимым, на более низкие права. Замысел: «даже если этот процесс захватят, ущерб останется внутри LocalLow».

С точки зрения разработчика вывод простой.

  • Если своё приложение вы не запускаете с низким уровнем целостности, LocalLow вам не нужен. Используйте Local.
  • И наоборот: если в LocalLow появляются незнакомые папки, туда пишет что-то, что работает с низким уровнем целостности. Это зацепка при разборе объёма.

Как разделять на практике

Что нужно сохранить Первый кандидат Почему
Пользовательские настройки %APPDATA% Удобно вести по пользователю
Кэш только этого ПК %LOCALAPPDATA% Легко считать, что на другой компьютер это не едет
История входов, огромный кэш, миниатюры %LOCALAPPDATA% Если тащить с профилем — вход и выход тяжелеют
Документы, которые пользователь создаёт сам Documents и т. п. Это рабочий результат, а не внутреннее состояние приложения
Изменяемые данные, общие для всех пользователей ProgramData Они не привязаны к одному пользователю

ProgramData в определении Known Folders Microsoft тоже описан как данные приложений для всех пользователей — для общих данных, которые не перемещаются. [3]

Чего здесь больше всего стоит избегать: класть данные времени выполнения конкретного пользователя в Program Files. И организация профиля, и проектирование прав разъезжаются сразу.

3.2 У Public и Default разные роли

Здесь тоже легко смешать.

C:\UsersDefaultPublicКаждый пользовательЗаготовка для создания нового профиляОбщее, видимое всем пользователямФактические данные конкретного пользователя

Рис. 6: Default — заготовка для нового профиля, Public — общая область, папка каждого пользователя — его собственные данные.

  • Default — шаблон для создания нового профиля
  • Public — общая область, видимая всем пользователям
  • Папка каждого пользователя — данные именно этого человека

Три папки выглядят похоже. Роли совершенно разные.

4. Виды профилей

Слово одно — «профиль», но в эксплуатации есть как минимум такие виды.

Профили WindowsЛокальный профильПеремещаемый профильMandatory-профильTemporary-профильКонтейнер профиля FSLogix

Рис. 7: В эксплуатации профиль делится как минимум на пять видов — от локального до FSLogix.

4.1 Локальный профиль

На обычном ПК это вариант по умолчанию.

  • Создаётся на локальном диске этого ПК
  • На другой ПК сам не переезжает
  • Для отдельного ПК это самый простой вариант

Microsoft тоже пишет: по умолчанию Windows создаёт локальный профиль пользователя. [14]

4.2 Перемещаемый профиль

В Microsoft Learn перемещаемый профиль хранится на серверном общем ресурсе, чтобы на нескольких компьютерах пользователь получал те же настройки ОС и приложений. [4][5]

Профиль на общем сервереПК-AПК-BПК-C

Рис. 8: Перемещаемый профиль — это получение одного профиля с общего сервера несколькими ПК.

На практике есть такие оговорки.

  • Копирование и синхронизация при входе / выходе легко становятся тяжёлыми
  • Крупные данные в AppData\Local здесь особенно болезненны
  • Легко поймать проблемы из-за разницы версий ОС
  • Сильно зависит от пути общего ресурса и качества сети

4.3 Mandatory-профиль

Mandatory-профиль — это «перемещаемый профиль без сохранения», который готовит администратор. [7][8]

По объяснению Microsoft, в Mandatory-профиле изменения, которые пользователь делает в сеансе, не сохраняются так, как в обычном перемещаемом профиле. [7]

В документации Win32 дополнительно сказано:

  • если переименовать NTUSER.DAT в NTUSER.MAN, профиль становится Mandatory
  • если в конец имени папки пути профиля добавить .man, получается Super-mandatory

[8]

Профиль, который подготовил администраторПользователь входитВо время работы менять можноВыход из системыИзменения не сохраняются

Рис. 9: Mandatory — профиль, который готовит администратор: изменения сеанса при выходе не сохраняются.

Это хорошо подходит, например, для таких сценариев.

  • учебные компьютеры
  • терминалы на стойке регистрации
  • киоски
  • общие устройства, которые каждый раз нужно возвращать в чистое состояние

4.4 Temporary-профиль

Temporary-профиль — это не то, что выбирают при проектировании, а запасной выход, когда из-за ошибки не удаётся загрузить настоящий профиль. [9]

В Microsoft Learn сказано: при ошибке, из-за которой настоящий профиль загрузить нельзя, выдаётся Temporary profile; по окончании сеанса он удаляется, изменения теряются. [9]

ДаНетНачало загрузки обычного профиляУдаётся загрузить?Обычный входВход с Temporary-профилемРаботать можноПри выходе изменения исчезают

Рис. 10: Temporary — запасной выход при срыве загрузки; после выхода изменения пропадают.

То есть работа на Temporary-профиле сама по себе уже признак неисправности.

4.5 Контейнер профиля FSLogix

В Microsoft Learn FSLogix описан как механизм, который в среде виртуальных рабочих столов делает опыт профиля пользователя Windows согласованным. [13]

Контейнер профиля FSLogix — это способ держать весь профиль как VHD / VHDX, при входе подключать его и показывать как обычный нативный профиль. [13][14]

Профиль на VHD / VHDXПодключение при входеНа хосте сеанса видно как C:\Users\пользовательОтключение при выходе

Рис. 11: FSLogix при входе подключает профиль на VHD и показывает его как нативный.

Для Azure Virtual Desktop Microsoft рекомендует использовать контейнеры профилей FSLogix. [14]

5. Чем отличаются перемещаемый профиль, Folder Redirection и FSLogix

Про эти три механизма часто говорят как про одно и то же, но роли разные.

Перенос состояния пользователяПеремещаемый профильFolder RedirectionFSLogixВесь профиль на общий ресурсТолько известные папки в другое местоПодключение VHD/VHDX

Рис. 12: Три способа отличаются тем, что именно перевозят: весь профиль, только известные папки или контейнер.

Если держаться классификации Microsoft Learn, различия удобно видеть так. [4][5][14]

Способ Что перевозится Где уместен Где обычно тяжело
Перемещаемый профиль Весь профиль целиком Традиционные доменные среды Крупный профиль, задержки синхронизации, разница версий
Folder Redirection Известные папки вроде Documents Централизованное управление документами Настройки приложений не закрывает
FSLogix Весь профиль в контейнере RDS / VDI / AVD Проектирование хранилища, одновременные подключения, права на общий ресурс

5.1 Folder Redirection уносит «только известные папки»

В Microsoft Learn Folder Redirection — это механизм, который направляет путь known folder в другое место. [4]

Например, если унести Documents на файловый общий ресурс, пользователь видит папку как локальную, а фактически данные лежат в другом месте. [4]

DocumentsФактически — на файловом общем ресурсеDesktopПри необходимости отдельная настройкаAppDataКак есть или другим способом

Рис. 13: Folder Redirection — не замена всего профиля, а перенос отдельных папок.

То есть Folder Redirection — это не замена профиля целиком, а перестановка по папкам.

5.2 Не смешивайте перемещаемые профили разных поколений ОС

Microsoft пишет: перемещаемые профили Windows 10 / Server 2016 и новее несовместимы с более ранними Windows. [6]

осторожно со смешиваниемосторожно со смешиваниемПоколение Windows 7 / 8.1Один и тот же общий ресурсWindows 10 / Server 2016 и новееПричина рассинхрона / сбоев меню «Пуск» / сбоев панели задач

Рис. 14: Если смешать перемещаемые профили разных поколений ОС на одном общем ресурсе, это становится причиной рассинхрона.

Здесь важно следующее.

  • Разделять версии профиля по поколениям ОС
  • Не считать, что «это тот же пользователь, значит подойдёт та же папка»
  • При развёртывании устройств и замене парка включать в план миграции совместимость профилей

[6]

6. Куда класть данные: это нужно решить разработчику и эксплуатации заранее

Разговор про профили в итоге всегда возвращается сюда. Что и куда класть.

ДаНетДаНетДаНетДаНетДанные, которые нужно сохранитьЭто результат, который создаёт пользователь?Documents и т. п.Это данные именно этого ПК?%LOCALAPPDATA%Это настройки конкретного пользователя?%APPDATA%Это изменяемые данные, общие для всех пользователей?ProgramData + ACLПересмотреть место

Рис. 15: Данные раскладывают по порядку: результат работы, данные ПК, настройки пользователя или общее.

6.1 Отделяем файлы, которые создаёт пользователь, от внутреннего состояния приложения

Если смешать эти две категории, ломаются и резервное копирование, и миграция.

  • Результаты, с которыми пользователь работает осознанно Documents, Pictures, рабочие папки хранения
  • Внутреннее состояние приложения Настройки, кэш, миниатюры, сведения о сеансе, рабочие файлы

Первое — рабочие данные, второе существует ради приложения. И то и другое — «файлы», но обращаться с ними стоит по-разному.

Отделение результата работы от внутреннего состояния приложенияЕсли результаты, с которыми пользователь работает осознанно, не отделять как рабочие данные вроде Documents, а настройки и кэш не держать как место приложения, ломаются и резервное копирование, и миграция.Файлы, которые сохраняемРезультат, который видит пользовательВнутреннее состояние приложенияРабочие данные вроде DocumentsНастройки и кэш — место приложения

Рис. 16: Даже если это «просто файлы», рабочие данные и нужды приложения кладут и обрабатывают по-разному.

6.2 Что класть в %APPDATA%

Сюда обычно попадает примерно следующее.

  • Небольшие настройки
  • Предпочтения конкретного пользователя
  • Состояние, которое должно выглядеть одинаково на нескольких устройствах
  • То, что не страшно возить вместе с профилем

В документации Fast User Switching местом для данных приложения тоже указан FOLDERID_RoamingAppData. [2]

6.3 Что класть в %LOCALAPPDATA%

Сюда стоит относить то, что с точки зрения пересоздания и переноса должно оставаться локальным.

  • Кэш, который можно пересоздать
  • Состояние, которое имеет смысл только локально
  • Крупные рабочие файлы
  • То, что не хочется возить из соображений производительности

В определениях Known Folders LocalAppData тоже равен %USERPROFILE%\AppData\Local. [3]

6.4 Что класть в ProgramData

Данные, общие для всех пользователей, но меняющиеся во время работы, — кандидат на ProgramData. [3]

Например:

  • общие словари
  • файлы определений, общие для всех пользователей
  • изменяемые данные, которые делят служба и несколько пользователей

Но здесь нужно думать вместе с ACL. Важно не «раз общее — значит просто в ProgramData», а решение, кто читает и кто пишет.

6.5 Когда нужно собрать профиль по умолчанию

При развёртывании образов задача «дать всем новым пользователям одинаковые начальные настройки» встречается постоянно. В этом случае безопаснее не трогать Default руками, а собирать его через поддерживаемый Microsoft метод на основе CopyProfile. [12]

Начальная настройка под учётной записью администратораSysprep + CopyProfileПрименение к профилю DefaultДальше применяется ко всем новым пользователям

Рис. 17: Готовый профиль по умолчанию проводят через Sysprep и CopyProfile.

Способы вроде «вручную скопировать C:\Users\A с одного ПК в Default на другом» выглядят быстрыми, но потом их легко сломать. [12]

7. Как смотреть, если профиль сломан, стал временным или перестал синхронизироваться

Это самое болезненное место в поле. К тому же симптомы похожи, и при грубом разделении легко уйти не туда.

7.1 Сначала делим симптомы на три группы

ДаНетДаНетДаНетПохоже на проблему с профилемУдаётся войти?Выглядит ли всё как сброшенное?Сбой загрузкиTemporary / повреждение / другой профильОткатывается только часть настроек?Перемещаемый профиль / перенаправление / синхронизацияВозможна проблема конкретного приложения

Рис. 18: По тому, удаётся ли войти и выглядит ли рабочий стол сброшенным, проблемы профиля делятся на три линии.

В целом это три линии.

  1. Сбой при входе
  2. Войти можно, но всё выглядит как сброшенное
  3. Не синхронизируется только часть

7.2 Какие журналы смотреть сначала

В Microsoft Learn при разборе проблем с профилем рекомендуют смотреть в таком порядке. [10]

  1. Журнал Application
  2. Журнал Operational службы User Profile Service
  3. При необходимости — журнал Diagnostic
  4. Если всё ещё мало — трассировка ETL

Конкретные пути такие. [10]

  • Event Viewer Applications and Services Logs > Microsoft > Windows > User Profile Service > Operational
  • Если нужны подробности ... > User Profile Service > Diagnostic

В русской Windows в «Просмотре событий» дерево слева выглядит как Журналы приложений и служб > Microsoft > Windows > User Profile Service > Operational. От имени поставщика и ниже названия остаются на английском.

Журнал ApplicationЖурнал OperationalЖурнал DiagnosticТрассировка ETL

Рис. 19: Разбор углубляют в порядке Application → Operational → Diagnostic → трассировка ETL.

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

Три журнала лежат «в разных местах»

Именно здесь обычно путаются в начале, поэтому сначала раскладываем. [10]

Что смотреть Где Включён ли по умолчанию
События User Profile Service в журнале Application Журналы Windows > Приложение (Windows Logs > Application), фильтр по источнику User Profiles Service Включён
Журнал Operational Журналы приложений и служб > Microsoft > Windows > User Profile Service > Operational Включён
Журнал Diagnostic На том же уровне, Diagnostic Выключен. Нужно включить вручную

Журнал Diagnostic в дереве сам не появляется. В «Просмотре событий» включите Действие > Вид > Отобразить аналитические и отладочные журналы, затем выберите Diagnostic и выполните Включить журнал. Когда разбор закончен, обязательно верните его в выключенное состояние. Журнал слишком подробный, его не оставляют включённым «на всякий случай». [10]

То же самое без GUI

Когда нужно поднять воспроизводимость или смотреть удалённый компьютер, надёжнее брать данные командой. Быстрее сказать «выполните эту команду и пришлите результат», чем по шагам объяснять чужой экран «Просмотра событий».

# 1) Из журнала Application — только события User Profile Service, от новых к старым
Get-WinEvent -FilterHashtable @{
    LogName      = 'Application'
    ProviderName = 'Microsoft-Windows-User Profiles Service'
} -MaxEvents 50 | Select-Object TimeCreated, Id, LevelDisplayName, Message

# 2) Смотреть журнал Operational напрямую
Get-WinEvent -LogName 'Microsoft-Windows-User Profile Service/Operational' -MaxEvents 50 |
    Select-Object TimeCreated, Id, LevelDisplayName, Message

# 3) Отфильтровать только Event ID 1509 из-за длинного пути
Get-WinEvent -FilterHashtable @{
    LogName      = 'Application'
    ProviderName = 'Microsoft-Windows-User Profiles Service'
    Id           = 1509
} | Format-List TimeCreated, Id, Message

Здесь есть ловушка. Имя источника в журнале Application — Microsoft-Windows-User Profiles Service (Profiles, множественное число), имя канала Operational — Microsoft-Windows-User Profile Service/Operational (Profile, единственное число). Если команда после копирования не работает, причина почти всегда здесь.

Event ID 1509 пишется не в Operational, а в Application. Уровень — предупреждение; текст имеет вид «Windows не может скопировать файл \\сервер\общий_ресурс\... в C:\Users\...», после чего идёт DETAIL - The filename or extension is too long. Именно последняя строка показывает, что причина — длина пути. [16]

Ещё одна вещь, которая экономит время в поле: Microsoft прямо пишет, что событие 1530 службы User Profile Service «файл реестра всё ещё используется другим приложением или службой» можно игнорировать. [10] Гоняться за ним — пустая трата.

Ловушка единственного и множественного числа в именах журналовИмя источника в журнале Application — Profiles во множественном числе, имя канала Operational — Profile в единственном; если команда после копирования не работает, причина почти всегда в этой путанице.Источник ApplicationКанал OperationalКоманда не работаетКакое имя журнала использовали?Profiles, множественное числоProfile, единственное числоПутаница — типичная причина

Рис. 20: Два похожих, но разных имени журнала — классическая причина, почему копирование команды не срабатывает.

7.3 Частые причины

Атрибуты и права NTUSER.DAT / USRCLASS.DAT

Microsoft пишет: если NTUSER.DAT или USRCLASS.DAT стоят как Read-only или не хватает нужных прав, загрузка профиля может сорваться. [11]

Причина неброская, но если её пропустить, разбор затягивается.

НетДаЗагрузка профиляЕсть доступ к файлам DAT?Сбой входа / рабочий стол по умолчанию / TemporaryОбычная загрузка

Рис. 21: Если к файлам DAT нет доступа, это ведёт к сбою входа или к временному профилю.

Длинный путь при копировании перемещаемого профиля

В статье KB Microsoft описан случай, когда из-за длинного имени сервера или общего ресурса итоговый путь назначения становится слишком длинным, и это уходит во временный профиль вместе с Event ID 1509. [16]

На вид это простое ограничение длины пути, но на деле причиной нередко оказывается само проектирование места, куда уезжает профиль.

Остатки реестра / папок после неполного удаления

У Microsoft есть статья с примерами скриптов, которые чисят осиротевшие сведения в реестре и в C:\Users, чтобы не появлялись TEMP-профили. [15]

Из неё видно: удалить папку — ещё не конец истории.

Грубое удаление старого профиляОстаются сведения в реестреРассинхрон при следующем входеПричина TEMP-профилей или лишних папок

Рис. 22: Сведения реестра, оставшиеся после грубого удаления, дают рассинхрон при следующем входе.

7.4 С чего начать проверку

Симптом Куда смотреть сначала Типичная причина
Сбой входа Application / Operational Сбой загрузки куста, права, повреждение
Рабочий стол выглядит сброшенным Operational / Diagnostic Переход на Temporary-профиль
Изменения перемещаемого профиля не сохраняются Путь общего ресурса, события, версии Права на общий ресурс, сеть, длина пути, разница версий
Ломается только у новых пользователей Создание профиля от C:\Users\Default Проблема профиля по умолчанию
На общих ПК копится всё больше мусора Политика удаления, настройки Shared PC Не хватает автоматической очистки

8. Какой способ выбрать

Здесь нет одного «правильного ответа». Всё зависит от характера использования.

Характер использованияПерсональный ПКРабочий ПК в доменеОбщий ПК / учебный компьютерRDS / VDI / AVDВ основном локальныйFolder Redirection / перемещаемый — по необходимостиMandatory / Shared PC / очисткаFSLogix как первый кандидат

Рис. 23: В зависимости от характера использования первый кандидат меняется от локального профиля до FSLogix.

8.1 Персональный ПК

Обычно достаточно локального профиля.

  • Пользовательские настройки — в AppData
  • Результаты работы — в Documents
  • При необходимости синхронизация документов отдельным слоем вроде OneDrive

Эта конфигурация самая простая.

8.2 Рабочий ПК в домене

В зависимости от требований комбинируют следующее.

  • Нужно централизованно управлять документами → Folder Redirection
  • Нужно, чтобы одинаковые настройки ехали между несколькими ПК → перемещаемый профиль
  • Есть смешение версий ОС или крупные профили → Осторожное проектирование либо пересмотр способа

В Microsoft Learn тоже сказано, что Folder Redirection и Roaming User Profiles помогают с централизацией, автономной работой и упрощением резервного копирования. [4]

8.3 Общий ПК / учебные компьютеры / киоски

В этом сценарии важнее не «оставить персональную настройку», а каждый раз возвращаться в чистое состояние.

Есть три кандидата.

  • Mandatory-профиль
  • Режим Shared PC
  • Политика автоматического удаления старых профилей

У Microsoft есть политика Delete user profiles older than a specified number of days on system restart: при перезапуске можно удалять профили, которые не использовались указанное число дней. [17]

В руководстве по Shared PC тоже показан подход, где на общем устройстве сочетают автоматическое управление и удаление учётных записей / профилей. [18]

8.4 RDS / VDI / Azure Virtual Desktop

Здесь во многих случаях одного классического перемещаемого профиля уже мало.

Microsoft для Azure Virtual Desktop рекомендует контейнеры профилей FSLogix и объясняет, что VHDX / VHD подключается при входе и обрабатывается как нативный профиль пользователя. [14]

Несколько хостов сеансовОбщее хранилищеПрофиль пользователя на VHDXПодключение к тому хосту, к которому подключились

Рис. 24: Несколько хостов сеансов подключают профили VHDX с общего хранилища.

FSLogix особенно стоит рассматривать первым кандидатом при таких условиях:

  • хост сеанса каждый раз другой
  • используются Outlook / OneDrive / Microsoft 365
  • в непостоянном (non-persistent) VDI перенос профиля обязателен
  • задержка входа из-за перемещаемого профиля уже проблема

9. Частые заблуждения

9.1 «Если создать учётную запись, тот же профиль будет использоваться везде»

Нет. Учётная запись — идентификатор, профиль — фактические данные на стороне устройства. Насколько далеко он едет, зависит от способа: локальный, перемещаемый, Folder Redirection, FSLogix и т. д. [4][14]

9.2 «Чтобы перенести профиль, достаточно скопировать C:\Users\имя_пользователя»

Грубое копирование опасно.

  • Совместимость версий ОС
  • NTUSER.DAT
  • Права
  • Состояние, специфичное для приложений
  • Смешение с профилем по умолчанию

Именно поэтому, особенно в перемещаемых профилях между поколениями ОС, Microsoft исходит из разделения версий профиля. [6]

Почему грубый перенос копированием опасенПеренос грубым копированием папки пользователя опасен, потому что остаются проблемы совместимости версий ОС, NTUSER.DAT, прав, состояния приложений и смешения с профилем по умолчанию.Скопировать папку целикомКажется, что перенос удалсяОстаются проблемы совместимости ОС и NTUSER.DATСмешение прав и профиля по умолчаниюПотом такой перенос легко ломается

Рис. 25: Профиль — это не только папка, поэтому копированием его не увезти.

9.3 «Mandatory и Temporary — примерно одно и то же»

Это разные вещи. Mandatory — профиль только для чтения, который администратор создаёт намеренно. Temporary — запасной выход, когда из-за ошибки не удаётся прочитать настоящий профиль. [8][9]

9.4 «Если нужна синхронизация, достаточно положить всё в Roaming»

Это опасно. Если настройки и огромный кэш положить в один ящик, вход / выход и обработка сбоев становятся тяжёлыми. То, что должно перемещаться, и то, что должно оставаться в Local, лучше разделять. [2][3]

9.5 «Если получился временный профиль, можно просто продолжать им пользоваться»

Лучше не стоит. Temporary profile по определению исчезает при выходе, поэтому если продолжать работу в этом состоянии, есть риск положить важные данные туда, откуда они потом пропадут. [9]

10. Итог

Профиль пользователя Windows — это не просто название папок под C:\Users.

  • Набор файлов
  • Реестр пользователя вокруг NTUSER.DAT
  • Эксплуатационный способ: где держать профиль, как его синхронизировать и как удалять

Если смотреть на всё это как на одну схему, картина становится понятнее.

На практике сначала стоит зафиксировать эти шесть пунктов.

  • Для отдельного ПК за основу брать локальный профиль
  • Место хранения данных приложения разделять на Roaming / Local / ProgramData
  • В домене не путать перемещаемый профиль и Folder Redirection
  • Для общих устройств рассмотреть Mandatory / очистку / Shared PC
  • Для RDS / VDI / AVD первым кандидатом держать FSLogix
  • При сбое сначала смотреть журналы службы User Profile Service

В конечном счёте проектирование профиля — это не вопрос «куда сохранять», а вопрос «что чьё и насколько далеко это должно ехать с пользователем». Когда это зафиксировано, развёртывание устройств, проектирование Windows-приложений и разбор сбоев становятся заметно проще.

Три вопроса проектирования профиляПроектирование профиля сводится к трём вопросам: что куда класть, насколько далеко это едет с пользователем и как возвращаться после сбоя; когда ответы есть, проще становятся и развёртывание, и проектирование приложений, и разбор сбоев.Что куда кластьНасколько далеко это едетКак возвращаться после сбояПроще развёртывание, проектирование и разбор

Рис. 26: Если на три вопроса есть ответы, проектирование профиля почти зафиксировано.

11. Похожие статьи

12. Услуги, связанные с этой темой

Разработка Windows-приложений

Как разделить места хранения пользовательских настроек, логов, кэша и общих данных, сильно влияет на эксплуатацию и сопровождение Windows-приложения. Если нужно пройти путь от сбора требований до проектирования, реализации и долгой эксплуатации, тема хорошо ложится на разработку Windows-приложений.

Посмотреть услугу / Связаться с нами

Техническая консультация и ревью архитектуры

Выбор между локальным профилем, перемещаемым и FSLogix, изменение эксплуатации уже стоящих устройств, границы мест хранения — всё это сильно расходится ещё до реализации, если проработать заранее. Если нужно начать с выбора способа и границ, тему удобно вынести как отдельную техническую консультацию или ревью архитектуры.

Посмотреть услугу / Связаться с нами

Расследование сбоев и анализ причин

Разбор перехода на Temporary-профиль, сбоев входа, ошибок сохранения при выходе и путей к общим ресурсам хорошо сочетается с расследованием сбоев. Это удобная точка входа, когда нужно дожать плохо воспроизводимую проблему профиля по журналам, событиям, правам и конфигурации общего ресурса.

Посмотреть услугу / Связаться с нами

13. Справочные материалы

Источников много, поэтому сначала указатель по теме.

Что нужно узнать Смотреть источник
Состав профиля, NTUSER.DAT 1, 11
Разделение Roaming / Local / LocalLow / ProgramData 2, 3, 19
Разница между перемещаемым профилем и Folder Redirection 4, 5
Несовместимость между поколениями ОС и версии профиля 6
Mandatory-профиль 7, 8
Temporary-профиль 9
Разбор по журналам, трассировка ETL 10
Настройка профиля по умолчанию 12
FSLogix и Azure Virtual Desktop 13, 14
Очистка остатков и TEMP-профиль 15
Длинный путь и Event ID 1509 16
Автоудаление старых профилей, Shared PC 17, 18
  1. Microsoft Learn, About User Profiles (Windows) Состав профиля пользователя, NTUSER.DAT, основы Temporary profile.

  2. Microsoft Learn, Fast User Switching Для данных приложения — FOLDERID_RoamingAppData, для данных, которые не нужны на другом компьютере, — FOLDERID_LocalAppData.

  3. Microsoft Learn, KNOWNFOLDERID, CSIDL Определения известных папок, включая %APPDATA%, %LOCALAPPDATA%, LocalLow и ProgramData.

  4. Microsoft Learn, Folder Redirection and Roaming User Profiles in Windows and Windows Server Разница между Folder Redirection и Roaming User Profiles, подход к централизованному управлению.

  5. Microsoft Learn, Deploy roaming user profiles Практические шаги развёртывания перемещаемого профиля: права на общий ресурс, GPO, версионирование.

  6. Microsoft Learn, Roaming user profiles of earlier versions of Windows are incompatible with Windows 10, Windows Server 2016, and later versions Несовместимость между поколениями ОС и версионирование профилей.

  7. Microsoft Learn, Create mandatory user profiles Назначение и способ создания Mandatory-профиля.

  8. Microsoft Learn, Mandatory User Profiles Определение NTUSER.MAN и Super-mandatory-профиля.

  9. Microsoft Learn, Temporary User Profiles Определение и свойства Temporary-профиля.

  10. Microsoft Learn, Troubleshoot user profiles with events Разбор проблем по журналам Application / Operational / Diagnostic.

  11. Microsoft Learn, Error occurs during desktop setup and desktop location is unavailable when you log on to Windows for the first time Создание нового профиля на основе C:\Users\Default, проблемы атрибутов и прав NTUSER.DAT / USRCLASS.DAT.

  12. Microsoft Learn, Customize the default local user profile when you prepare an image of Windows Поддерживаемый способ настройки профиля по умолчанию через CopyProfile.

  13. Microsoft Learn, What is FSLogix, Types of Containers Основы FSLogix, идея Profile Container.

  14. Microsoft Learn, User profile management for Azure Virtual Desktop with FSLogix profile containers, Configure profile containers using FSLogix Рекомендация для Azure Virtual Desktop, контейнер профиля на основе VHD / VHDX.

  15. Microsoft Learn, Scripts: Clean up profile folder information and prevent TEMP user profiles from being created Связь осиротевших сведений профиля и TEMP-профилей.

  16. Microsoft Learn, User profile cannot be loaded with Event ID 1509: DETAIL - The filename or extension is too long Проблема длинного пути при сохранении перемещаемого профиля.

  17. Microsoft Learn, ADMX_UserProfiles Policy CSP Определения политик, включая Delete user profiles older than a specified number of days on system restart.

  18. Microsoft Learn, Configure a shared or guest Windows device Режим Shared PC и управление учётными записями / профилями на общих устройствах.

  19. Microsoft Learn, Designing Applications to Run at a Low Integrity Level Для процессов с низким уровнем целостности подготовлены %USERPROFILE%\AppData\LocalLow и HKEY_CURRENT_USER\Software\AppDataLow.

Недавние статьи с теми же тегами помогут подробнее изучить близкие темы.

Эти страницы показывают тему статьи в более широком контексте услуг и решений.

Статья напрямую связана со следующими услугами.

Частые вопросы

Вопросы, которые часто возникают при консультациях по теме статьи.

Что такое NTUSER.DAT?
NTUSER.DAT — это файл куста реестра пользователя (user registry hive) внутри профиля Windows. Он лежит прямо в C:\Users\имя_пользователя, загружается при входе и используется как HKEY_CURRENT_USER (HKCU). То есть профиль состоит из двух слоёв: файлов вроде Desktop и AppData и слоя реестра вокруг NTUSER.DAT. Если у NTUSER.DAT стоит атрибут «только чтение» или не хватает нужных прав, загрузка профиля срывается — и это приводит к отказу входа или к временному профилю.
Что такое профиль пользователя Windows? Это не то же самое, что учётная запись?
Учётная запись отвечает на вопрос «кто входит». Профиль — это сама рабочая среда этого человека. Это не просто папка C:\Users\имя_пользователя, а набор файлов (Desktop, Documents, AppData и т. д.) вместе с кустом реестра пользователя NTUSER.DAT. Когда новый пользователь входит впервые, новый профиль создаётся на основе C:\Users\Default. Насколько далеко уезжают настройки, зависит от выбора: локальный, перемещаемый, Folder Redirection или FSLogix.
Как разделять %APPDATA% и %LOCALAPPDATA%?
Настройки, которые нужно возить с пользователем, кладут в %APPDATA% (AppData\Roaming). Кэш и временное состояние, привязанные к этому ПК, — в %LOCALAPPDATA% (AppData\Local). Кэш, который можно пересоздать, и крупные рабочие файлы в перемещаемом профиле утяжеляют вход и выход, поэтому их смещают в Local. Для изменяемых данных, общих для всех пользователей, кандидат — ProgramData, но только вместе с ACL: кто читает и кто пишет. Данные времени выполнения конкретного пользователя в Program Files класть не стоит.
Что делать, если вход прошёл с временным профилем (Temporary profile)?
Temporary-профиль — аварийный выход, когда из-за ошибки не удаётся загрузить настоящий. При выходе он удаляется, изменения пропадают. Продолжать работу в этом состоянии опасно: важные данные могут исчезнуть. При разборе не лезьте сразу в C:\Users: сначала журнал Application и Operational-журнал службы User Profile Service, при необходимости Diagnostic. Частые причины: атрибуты или права NTUSER.DAT / USRCLASS.DAT, слишком длинный путь перемещаемого профиля, остатки в реестре после неполного удаления.

Об авторе

Страница с профилем автора статьи.

Го Комура

Представитель KomuraSoft LLC

Специализируется на разработке программного обеспечения для Windows, техническом консалтинге и расследовании сбоев, особенно в проектах с унаследованными системами и трудно воспроизводимыми ошибками.

Публичные ссылки

Вернуться в блог