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

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

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

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

В консультациях по 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]
  • Роуминговый профиль - это механизм «перенести весь профиль на общий ресурс», а Folder Redirection - механизм «перенести в другое место только известные папки, например Documents». Это не одно и то же. [4][5]
  • Mandatory-профиль - это доступный только для чтения профиль, предназначенный для схемы «пользоваться можно, а сохранять нельзя». Temporary-профиль - это аварийный запасной вариант при ошибке, который каждый раз удаляется заново. [7][8][9]
  • Роуминговые профили, переходящие через поколения ОС, требуют осторожности: Windows 10 / Server 2016 и новее несовместимы с более ранними версиями, и это стоит учитывать, разделяя версии профилей. [6]
  • Для RDS / VDI / Azure Virtual Desktop во многих случаях лучше не полагаться исключительно на классический роуминговый профиль, а рассматривать в качестве первого кандидата контейнеры профилей FSLogix. Microsoft тоже рекомендует FSLogix для Azure Virtual Desktop. [13][14]
  • При устранении неполадок разумнее не лезть сразу в C:\Users, а сначала проверить журнал Application, оперативный / диагностический журнал службы User Profile Service, путь к общему ресурсу и атрибуты и права доступа NTUSER.DAT / USRCLASS.DAT. [10][11][16]

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

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

Для начала полезно разделить понятия учётной записи и профиля.

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

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

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

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

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

Иными словами, если смотреть только на 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Становится выделенной средой этого пользователя

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

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

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

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

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

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

Место Что там хранится Практический взгляд
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Настройки, которые нужно переноситьНебольшое пользовательское состояниеКэшДанные, которые можно пересоздатьСостояние, специфичное для этого ПКСпециальные случаи

Как решать вопрос разграничения на практике

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

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

Чего здесь стоит избегать больше всего - это размещения данных времени выполнения конкретного пользователя в Program Files. Это одновременно ломает и организацию профиля, и проектирование прав доступа.

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

Здесь тоже легко запутаться.

C:\UsersDefaultPublicКаждый пользовательЗаготовка для создания новых профилейОбщие объекты, видимые всем пользователямФактические данные конкретного пользователя
  • Default - это шаблон для создания новых профилей
  • Public - общая область, видимая всем пользователям
  • Папка каждого пользователя - фактические данные конкретного человека

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

4. Разбираем виды профилей

Хотя мы говорим «профиль» одним словом, на практике встречаются как минимум следующие его виды.

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

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

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

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

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

4.2 Роуминговый профиль

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

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

Однако на практике есть следующие предостережения.

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

4.3 Mandatory-профиль

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

Согласно пояснению Microsoft, в Mandatory-профиле изменения, внесённые пользователем в течение сеанса, не сохраняются так, как это происходит с обычным роуминговым профилем. [7]

Кроме того, в документации Win32 поясняется, что

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

[8]

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

Например, это хорошо подходит для таких сценариев:

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

4.4 Temporary-профиль

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

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

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

Иными словами, состояние работы на Temporary-профиле - это уже само по себе признак неисправности.

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

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

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

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

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

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

Об этих трёх механизмах часто говорят как об одном и том же, но их роли различаются.

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

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

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

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

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

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

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

Иными словами, Folder Redirection - это не замена всего профиля целиком, а перенос отдельных папок.

5.2 Не стоит небрежно смешивать роуминговые профили разных поколений ОС

Microsoft поясняет, что роуминговые профили для Windows 10 / Server 2016 и новее несовместимы с более ранними версиями Windows. [6]

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

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

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

[6]

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

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

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

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

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

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

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

6.2 Что размещать в %APPDATA%

Здесь, как правило, размещают:

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

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

6.3 Что размещать в %LOCALAPPDATA%

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

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

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

6.4 Что размещать в ProgramData

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

Например:

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

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

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

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

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

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

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

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

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

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

В целом выделяются три категории.

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

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

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

  1. Журнал Application
  2. Оперативный журнал (Operational) службы User Profile Service
  3. При необходимости - диагностический журнал (Diagnostic)
  4. При дальнейшей необходимости - трассировки ETL

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

  • Просмотр событий Applications and Services Logs > Microsoft > Windows > User Profile Service > Operational
  • Для более подробной информации ... > User Profile Service > Diagnostic
Журнал ApplicationОперативный журналДиагностический журналТрассировка ETL

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

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

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

Microsoft поясняет, что если NTUSER.DAT или USRCLASS.DAT помечены атрибутом «только для чтения» либо не хватает нужных прав доступа, загрузка профиля может завершиться неудачей. [11]

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

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

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

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

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

Записи реестра / папок, оставшиеся после неполного удаления

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

Из неё видно, что простое удаление папки - это ещё не конец истории.

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

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

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

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

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

Характер использованияПерсональный ПКРабочий ПК в доменеОбщий ПК / учебное устройствоRDS / VDI / AVDВ основном локальныйFolder Redirection / роуминг по мере необходимостиMandatory / Shared PC / очистка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 рекомендует контейнеры профилей FSLogix для Azure Virtual Desktop, поясняя, что VHDX / VHD подключается при входе в систему и обрабатывается как нативный пользовательский профиль. [14]

Несколько хостов сеансовОбщее хранилищеПользовательский профиль на 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]

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

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

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

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

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

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

10. Итог

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Microsoft Learn, About User Profiles (Windows) Компоненты пользовательского профиля, NTUSER.DAT, основы Temporary-профиля.

  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 и управление учётными записями / профилями на общих устройствах.

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

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

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

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

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

Что такое NTUSER.DAT?
NTUSER.DAT - это файл, представляющий собой пользовательский регистрационный куст (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, техническом консалтинге и расследовании сбоев, особенно в проектах с унаследованными системами и трудно воспроизводимыми ошибками.

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

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