Windows 사용자 프로필 입문 - AppData와 NTUSER.DAT

· 업데이트: · · Windows, 사용자 프로필, AppData, FSLogix, 로밍 프로필, Windows 개발

수정 이력(6건, 최종 수정 2026년 09월 03일)

이 글에 적용한 변경 사항의 기록입니다. 보관해 둔 수정 전 버전은 DOI가 부여된 고정 URL에서 읽을 수 있습니다.

permalink·저자 표기·지식 맵 래퍼·깨진 내부 링크 등 CI가 지적한 표시용 수정을 반영했습니다. 본문의 기술적인 주장은 바꾸지 않았습니다.
일본어 원문의 완역으로 다시 번역했습니다. 기존 한국어판은 원문의 일부만 옮긴 축약본이라 절, 표, Mermaid 그림, 그림 설명, FAQ가 빠져 있었습니다. 일본어 원문에 맞춰 이들을 모두 복원했고, 기술적인 주장은 일본어판과 같습니다. 수정 전 버전 보기 (DOI: 10.5281/zenodo.21635183)
본문의 흐름·구조를 그림으로도 따라갈 수 있도록 Mermaid 그림을 4점 추가하고, 기존 그림에도 일련번호가 있는 캡션을 붙였습니다(본문 500〜750자당 1그림 규약에 맞춘 것입니다). 본문 문장은 바꾸지 않았습니다.
글 맨 앞에 「이 글의 지식 맵」 절을 추가했습니다. 본문에서 다루는 개념과 그 관계를 요약·그림·상세 페이지 링크로 정리한 것입니다. 본문의 주장은 바꾸지 않았습니다.
외부 리뷰(1283건) 대응으로 본문을 갱신했습니다. 개별 변경 내용은 아래 이력을 참조하세요.
약어의 첫 등장 시 풀어 쓰기와, `LocalLow`가 권한이 낮은 프로세스의 쓰기 대상이라는 설명을 추가했습니다(그림 레이블도 맞췄습니다). 이벤트 뷰어의 한국어 트리 표기와 로그 위치, Diagnostic 로그를 켜는 방법, `Get-WinEvent`로 가져오는 예를 추가하고, 로그 이름이 Application 쪽은 복수형·Operational 쪽은 단수형이라는 헷갈리기 쉬운 차이와, 이벤트 1509가 Application 로그에 나온다는 점을 명시했습니다.
최초 공개
이 글을 인용하기(DOI: 10.5281/zenodo.21635182)

이 글은 Zenodo에 보관되어 있습니다. 항상 최신 버전으로 연결되는 DOI와 지금 보고 있는 버전에 고정된 DOI를 아래에 함께 제시합니다.

Go Komura (2026). 「Windows 사용자 프로필 입문 - AppData와 NTUSER.DAT」. 합동회사 코무라소프트. https://doi.org/10.5281/zenodo.21635182 https://comcomponent.com/ko/blog/windows-user-profile-guide/

DOI(최신 버전)
10.5281/zenodo.21635182
DOI(이 버전)
10.5281/zenodo.22217462

이 글은 Windows를 관리하는 정보시스템 담당자, 단말 배포 담당자, Windows 앱 개발자를 대상으로 일반론으로 정리한 것입니다. 그림은 개념도입니다. Mermaid를 지원하는 Markdown 환경에서는 도표로 표시됩니다.

내용은 2026년 4월 시점에서 확인할 수 있는 Microsoft의 공식 정보를 전제로 합니다.[1][4][7][10][13][14]

읽는 순서의 기준

글이 길므로, 입장별 입구를 먼저 둡니다.

이런 분 우선 여기만
프로필이 무엇인지 5분 안에 잡고 싶다 1장, 2장
Windows 앱의 저장 위치를 정하고 싶은 개발자 3.1, 6장
로밍이나 FSLogix 방식을 고르고 싶다 5장, 8장
지금 눈앞에서 깨져서 곤란하다 7장(이어서 9장)
용어가 어렵다 1.1의 약어표

Windows 관련 상담에서 「프로필」이라는 말은 꽤 넓게 쓰입니다.

  • C:\Users\사용자 이름의 내용은 무엇인가
  • %AppData%%LocalAppData%는 어떻게 구분해서 써야 하는가
  • 도메인 환경의 로밍 프로필이란 무엇인가
  • Mandatory 프로필과 Temporary 프로필은 무엇이 다른가
  • 공유 PC, RDS, VDI, Azure Virtual Desktop에서는 무엇을 선택해야 하는가
  • 프로필이 손상되었을 때 어디부터 봐야 하는가

이 부분은 계정, 폴더, 레지스트리, 동기화 방식, 운영 정책이 한꺼번에 섞이므로, 이야기가 금방 어긋납니다.

이 글에서는 먼저 Windows 사용자 프로필을 한 장의 설계도로 보는 시각을 두고, 그 위에서 AppData 용도 구분, 로밍, Mandatory, Temporary, FSLogix, 문제 발생 시 확인 방법까지 순서대로 정리합니다.

1. 먼저 결론

세부 이야기로 들어가기 전에, 실무상의 결론을 먼저 정리합니다.

  • Windows 사용자 프로필은 단순한 C:\Users\사용자 이름 폴더가 아닙니다. 파일 그룹 + 사용자 레지스트리 하이브(NTUSER.DAT)의 집합입니다.[1]
  • 일반적인 로컬 PC에서는 기본적으로 로컬 프로필이 만들어집니다. 최초 로그인 시에는 C:\Users\Default를 바탕으로 새 프로필이 생성됩니다.[11][12]
  • 앱의 저장 위치는 대충 정하지 않는 것이 좋으며, 사용자마다 가지고 다니고 싶은 설정은 %APPDATA%, 해당 PC 전용 캐시나 일시적인 상태는 %LOCALAPPDATA%로 정리하는 것이 기본입니다.[2][3]
  • 로밍 프로필은 「프로필 전체를 공유 위치로 옮기는」 방식이고, Folder Redirection은 「Documents 같은 알려진 폴더만 다른 위치로 옮기는」 방식으로, 서로 같지 않습니다.[4][5]
  • Mandatory 프로필은 「사용은 하게 하되 저장은 시키지 않기」 위한 읽기 전용 프로필입니다. Temporary 프로필은 오류 발생 시의 긴급 대피용으로, 매번 사라지는 것을 전제로 합니다.[7][8][9]
  • OS 세대를 넘나드는 로밍 프로필은 주의가 필요합니다. Windows 10 / Server 2016 이후와 그 이전은 서로 호환되지 않으며, 프로필 버전을 구분해서 다룬다는 전제로 생각해야 합니다.[6]
  • RDS / VDI / Azure Virtual Desktop에서는 기존의 로밍 프로필만으로 밀어붙이기보다, FSLogix 프로필 컨테이너를 1순위로 검토하는 경우가 꽤 많습니다. Microsoft도 Azure Virtual Desktop에서는 FSLogix를 권장하고 있습니다.[13][14]
  • 문제가 발생했을 때는 곧바로 C:\Users를 손대기 전에, Application 로그, User Profile Service의 Operational / Diagnostic 로그, 공유 경로, NTUSER.DAT / USRCLASS.DAT의 속성과 권한을 먼저 확인하는 쪽이 순서가 좋습니다.[10][11][16]

요컨대 Windows 프로필 이야기는 「어디에 무엇을 두고, 어디까지 가지고 다니며, 실패 시 어떻게 되돌릴 것인가」로 귀결됩니다.

1.1 이 글에서 쓰는 약어

처음부터 바로 등장하는 약어를, 여기서 풀어 둡니다.

약어 풀어 쓴 이름 의미
RDS Remote Desktop Services 한 대의 서버에 여러 사용자가 원격 접속해 세션을 갖는 방식
VDI Virtual Desktop Infrastructure 사용자마다 가상 머신의 데스크톱을 할당하는 방식
AVD Azure Virtual Desktop Azure에서 제공하는 Microsoft의 데스크톱 가상화 서비스
HKCU HKEY_CURRENT_USER 레지스트리 중 로그인 중인 사용자 전용 부분. 실체가 NTUSER.DAT입니다
하이브 registry hive 레지스트리의 일부를 파일로 잘라 낸 것. NTUSER.DATUSRCLASS.DAT가 이에 해당합니다
GPO Group Policy Object, 그룹 정책 개체 도메인 아래의 PC나 사용자에게 설정을 배포하는 메커니즘
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로 나뉘며, 가지고 다니고 싶은 설정과 PC 고유의 캐시, 낮은 무결성 프로세스 전용 영역으로 저장 위치를 구분해 씁니다. 로컬 프로필을 기본으로 하되, 여러 PC에서 설정을 공유하고 싶을 때는 로밍 프로필을, 문서만 중앙 관리하고 싶을 때는 Folder Redirection을 사용하며, RDS/VDI/Azure Virtual Desktop에서는 FSLogix 프로필 컨테이너가 권장됩니다. 교육용 단말이나 키오스크에는 Mandatory 프로필이 적합하며, NTUSER.DAT의 권한 문제나 긴 경로에 의한 Event ID 1509는 임시 프로필화의 전형적인 원인이 됩니다.

Windows 사용자 프로필사용자 프로필이 NTUSER.DAT와 AppData의 Roaming/Local/LocalLow로 구성되며, 로컬·로밍·Mandatory·Temporary·FSLogix라는 방식의 차이가 긴 경로에 의한 Event ID 1509나 임시 프로필화와 어떻게 이어지는지를 보여주는 그림.이용한다전제로 한다에서 구성할 수 있다이용한다이용한다이용한다이용한다이용한다이용한다이용한다이용한다이용한다원인이 될 수 있다이용한다이용한다권장되는 대응사용은 비권장이용한다이용한다에서 구성할 수 있다원인이 될 수 있다원인이 될 수 있다에서 확인할 수 있다원인이 될 수 있다사용자 프로필NTUSER.DAT기본 프로필(Default)CopyProfile%APPDATA%(Roaming)%LOCALAPPDATA%AppData\LocalLow낮은 무결성 수준로컬 프로필로밍 프로필Mandatory 프로필임시 프로필FSLogix 프로필 컨테이너로밍 프로필의 OS 세대 간 비호환성폴더 리디렉션Azure Virtual Desktop공유/게스트 PC 구성오래된 프로필 자동 삭제 정책그룹 정책이벤트 ID 1509(긴 경로로 인한 프로필 로드 실패)User Profile Service 로그

그림의 실선은 항상 성립하는 관계, 점선은 조건이 붙는 관계입니다(성립 조건은 상세 페이지의 관계별 설명에 적혀 있습니다). 관계 전체 목록(총 24건, 근거와 확신도 포함)과 주요 개념의 정의는 지식 맵 상세 페이지에 정리되어 있습니다(일본어). 데이터: JSON-LD / Turtle

2. 애초에 Windows의 「사용자 프로필」이란 무엇인가

먼저 계정프로필을 나누어 생각하면 편해집니다.

사용자 계정누가 로그인하는가사용자 프로필그 사람의 설정과 데이터단말 / OS데스크톱 설정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. 레지스트리 계층 NTUSER.DAT가 로드된 HKCU

프로필 손상 이야기가 까다로운 이유는, 폴더 쪽만 깨지는 경우레지스트리 하이브 쪽에서 문제가 나는 경우가 있기 때문입니다.[1][11]

2.2 최초 로그인에서는 Default가 토대가 된다

새 사용자가 해당 PC에 처음 로그인할 때, 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 PC 고유 데이터·캐시 쪽 용량이 커지기 쉽다
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가지고 다니고 싶은 설정작은 편인 사용자 상태캐시재생성할 수 있는 데이터해당 PC 고유 상태낮은 무결성 프로세스가 쓸 수 있는 영역

그림5: Roaming은 가지고 다니고 싶은 설정, Local은 해당 PC 고유, 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에 낯선 폴더가 늘어나 있다면, 거기에 쓰고 있는 것은 낮은 무결성으로 동작하는 무언가입니다. 용량을 조사할 때 단서가 됩니다.

실무에서의 용도 구분은 이렇게 본다

저장하고 싶은 것 두는 위치의 1순위 후보 이유
사용자 설정 %APPDATA% 사용자 단위로 다루기 쉽다
해당 PC 전용 캐시 %LOCALAPPDATA% 다른 단말로 가지고 다니지 않는다는 전제로 두기 쉽다
로그인 기록, 거대 캐시, 썸네일류 %LOCALAPPDATA% 로밍시키면 무거워지기 쉽다
사용자가 직접 만드는 문서 Documents 앱 내부 상태가 아니라 업무 산출물이기 때문
모든 사용자 공통의 가변 데이터 ProgramData 사용자 고유가 아니기 때문

ProgramData는 Microsoft의 알려진 폴더 정의에서도 모든 사용자를 위한 애플리케이션 데이터로 되어 있으며, 로밍되지 않는 공유 데이터용입니다.[3]

여기서 가장 피하고 싶은 것은 사용자별 실행 시 데이터를 Program Files에 두는 것입니다. 프로필 정리와 권한 설계가 한꺼번에 무너지기 쉽습니다.

3.2 PublicDefault는 역할이 다르다

여기도 섞이기 쉽습니다.

C:\UsersDefaultPublic각 사용자새 프로필 생성의 템플릿모든 사용자에게 보이는 공유물개별 사용자의 실체

그림6: Default는 새로 만들 때의 템플릿, Public은 공유 영역, 각 사용자 폴더가 개별 실체.

  • Default는 새 프로필을 만들기 위한 템플릿
  • Public은 모든 사용자에게 보이는 공유 영역
  • 각 사용자 폴더는 그 사람 고유의 실체

이 셋은 비슷해 보여도 역할이 전혀 다릅니다.

4. 프로필 종류를 정리한다

「프로필」이라고 한 마디로 말해도, 운영상으로는 적어도 다음 종류가 있습니다.

Windows의 프로필로컬 프로필로밍 프로필Mandatory 프로필Temporary 프로필FSLogix 프로필 컨테이너

그림7: 운영상의 프로필은 로컬부터 FSLogix까지 적어도 다섯 종류로 나뉜다.

4.1 로컬 프로필

보통의 PC에서는 기본이 이것입니다.

  • 해당 PC의 로컬 디스크에 만들어진다
  • 다른 PC로 자동으로는 가지고 다니지 않는다
  • 단독 PC에서는 가장 단순하다

Microsoft도 기본적으로 Windows는 로컬 사용자 프로필을 만든다고 설명합니다.[14]

4.2 로밍 프로필

Microsoft Learn에서는 로밍 사용자 프로필은 서버 공유에 저장되며, 여러 컴퓨터에서 같은 OS / 앱 설정을 받을 수 있게 하는 메커니즘이라고 되어 있습니다.[4][5]

공유 서버상의 프로필PC-APC-BPC-C

그림8: 로밍 프로필은 공유 서버상의 프로필을 여러 PC에서 받는 메커니즘.

다만 실무에서는 다음 주의점이 있습니다.

  • 로그인 / 로그아웃 시의 복사나 동기화가 무거워지기 쉽다
  • AppData\Local에 큰 데이터를 안고 있으면 힘들다
  • OS 버전 차이 문제를 받기 쉽다
  • 공유 경로와 네트워크 품질의 영향을 강하게 받는다

4.3 Mandatory 프로필

Mandatory 프로필은 관리자가 만드는 「저장되지 않는 로밍 프로필」입니다.[7][8]

Microsoft 설명에서는 Mandatory 프로필에서 이용자가 세션 중에 변경하더라도, 보통의 로밍 프로필처럼 저장되지 않습니다.[7]

나아가 Win32 문서에서는

  • NTUSER.DATNTUSER.MAN으로 이름을 바꾸면 Mandatory가 된다
  • 프로필 경로의 폴더 이름 끝을 .man으로 하면 Super-mandatory가 된다

고 설명합니다.[8]

관리자가 준비한 프로필사용자가 로그인이용 중에는 변경할 수 있다로그아웃변경은 저장하지 않는다

그림9: Mandatory는 이용 중 변경을 로그아웃 시 저장하지 않는, 관리자가 준비한 프로필.

예를 들어 이런 용도에 맞습니다.

  • 교육용 단말
  • 접수 단말
  • 키오스크
  • 매번 깨끗한 상태로 되돌리고 싶은 공유 단말

4.4 Temporary 프로필

Temporary 프로필은 설계로 고르는 것이 아니라, 오류로 원래 프로필을 로드하지 못할 때 나오는 대피처입니다.[9]

Microsoft Learn에서는 오류 조건으로 원래 프로필을 로드하지 못할 때 Temporary profile이 발행되고, 세션이 끝나면 삭제되며, 변경은 사라진다고 설명합니다.[9]

YesNo일반 프로필 로드 시작로드할 수 있는가일반 로그온Temporary 프로필로 로그온작업은 할 수 있다로그아웃하면 변경이 사라진다

그림10: Temporary는 로드 실패 시의 대피처이며, 로그아웃하면 변경이 사라진다.

즉 Temporary 프로필로 동작 중인 상태는 그 자체로 이상의 신호입니다.

4.5 FSLogix 프로필 컨테이너

FSLogix는 Microsoft Learn에서 Windows 사용자 프로필 경험을 가상 데스크톱 환경에서 일관되게 만드는 메커니즘이라고 설명됩니다.[13]

FSLogix 프로필 컨테이너는 사용자 프로필 전체를 VHD / VHDX로 들고, 로그인 시 그것을 연결(attach)해 네이티브 프로필처럼 보이게 하는 방식입니다.[13][14]

VHD / VHDX상의 프로필로그인 시 연결세션 호스트에서 C:\Users\사용자로 보인다로그아웃 시 분리

그림11: FSLogix는 VHD상의 프로필을 로그인 시 연결해, 네이티브처럼 보이게 한다.

Azure Virtual Desktop에서 Microsoft는 FSLogix profile containers 사용을 권장합니다.[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 로밍 프로필은 OS 세대를 건너 대충 섞지 않는다

Microsoft는 Windows 10 / Server 2016 이후의 로밍 프로필은, 그 이전 Windows와 호환되지 않는다고 설명합니다.[6]

혼재 주의혼재 주의Windows 7 / 8.1 계열같은 공유Windows 10 / Server 2016 이후불일치 / 시작 메뉴 이상 / 작업 표시줄 이상의 원인

그림14: OS 세대가 다른 로밍 프로필을 같은 공유에 섞으면 불일치의 원인이 된다.

여기서 중요한 것은

  • OS 세대마다 프로필 버전을 나눈다
  • 「같은 사용자이니 같은 폴더면 된다」고 생각하지 않는다
  • 단말 배포나 교체에서는 프로필 호환성을 이전 계획에 넣는다

는 점입니다.[6]

6. 개발자·운영 담당자가 먼저 정해야 할 저장 위치

프로필 이야기는 결국 여기로 돌아옵니다. 무엇을 어디에 둘 것인가입니다.

YesNoYesNoYesNoYesNo저장하고 싶은 데이터사용자가 만드는 산출물인가Documents 등해당 PC 고유인가%LOCALAPPDATA%사용자별 설정인가%APPDATA%모든 사용자 공유의 가변 데이터인가ProgramData + ACL배치 위치를 다시 검토

그림15: 저장하고 싶은 데이터는 산출물인지, PC 고유인지, 사용자 설정인지, 공유인지를 순서로 나눈다.

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 + CopyProfileDefault profile에 반영이후의 새 사용자에게 적용

그림17: 기본 프로필을 다듬을 때는 Sysprep과 CopyProfile 경로로 한다.

「어떤 PC의 C:\Users\A를 다른 PC의 Default에 손으로 복사한다」는 식은, 겉보기는 빨라도 나중에 깨지기 쉽습니다.[12]

7. 깨졌다, 임시 프로필이 됐다, 동기화되지 않을 때의 보는 법

여기는 현장에서 가장 곤란한 지점입니다. 게다가 증상 모습이 비슷해서, 원인 분리를 대충 하면 깊게 빠지기 쉽습니다.

7.1 먼저 증상을 셋으로 나눈다

YesNoYesNoYesNo프로필 문제처럼 보인다로그온할 수 있는가모습이 초기화된 것처럼 보이는가로드 실패 계열Temporary / 손상 / 다른 프로필일부만 설정이 되돌아가는가로밍 / 리디렉션 / 동기화 계열앱 개별 문제일 가능성

그림18: 로그온 가능 여부와 모습의 초기화로, 프로필 문제는 세 계통으로 나눌 수 있다.

크게 나누면 다음 세 계통입니다.

  1. 로그온 시 실패한다
  2. 로그온은 되지만, 초기화된 것처럼 보인다
  3. 일부만 동기화되지 않는다

7.2 먼저 봐야 할 로그

Microsoft Learn에서는 프로필 문제 조사 때 다음 순서로 보라고 안내합니다.[10]

  1. Application 로그
  2. User Profile Service의 Operational 로그
  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]

볼 것 위치 기본으로 켜져 있는가
Application 로그의 User Profile Service 이벤트 Windows 로그 > 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]

하나 더, 실무에서 알아 두면 시간을 아끼는 것이 있습니다. User Profile Service의 이벤트 1530 「레지스트리 파일이 다른 애플리케이션 또는 서비스에서 아직 사용되고 있습니다」는 무시해도 된다고 Microsoft가 명시합니다.[10] 이것을 쫓으면 허탕입니다.

로그 이름의 단수형과 복수형 함정Application 로그 쪽 원본 이름은 Profiles와 복수형, Operational 로그의 채널 이름은 Profile과 단수형이며, 복사해 붙여 넣었는데 명령이 동작하지 않을 때는 대개 이 혼동이 원인임을 나타내는 그림.Application의 원본 이름Operational의 채널 이름명령이 동작하지 않는다어느 로그 이름을 썼는가Profiles와 복수형Profile과 단수형혼동이 전형적인 원인

그림20: 비슷하지만 다른 두 로그 이름이, 복사·붙여넣기 실패의 전형이 되어 있다.

7.3 흔한 원인

NTUSER.DAT / USRCLASS.DAT의 속성이나 권한

Microsoft는 NTUSER.DATUSRCLASS.DATRead-only이거나 필요한 액세스 권한이 없으면, 프로필 로드에 실패할 수 있다고 설명합니다.[11]

소소하지만, 놓치면 길어지는 원인입니다.

NoYes프로필 로드DAT 파일에 액세스할 수 있는가로그온 실패 / 초기 데스크톱 / Temporary일반 로드

그림21: DAT 파일에 액세스하지 못하면, 로그온 실패나 임시 프로필화로 이어진다.

로밍 복사 시의 긴 경로

Microsoft KB에서는 공유 경로 쪽 서버 이름이나 공유 이름이 길고, 복사 대상 경로 전체가 너무 길어져 Event ID 1509와 함께 임시 프로필로 떨어지는 예가 설명됩니다.[16]

단순한 경로 길이 제약처럼 보여도, 실제로는 로밍 대상의 설계 그 자체가 원인인 경우가 있습니다.

불완전한 삭제로 남은 레지스트리 / 폴더 정보

Microsoft에는 레지스트리와 C:\Users에 남은 고립 정보를 청소해 TEMP 프로필을 막는 샘플 스크립트 글이 있습니다.[15]

여기서 알 수 있는 것은, 폴더만 지우고 끝이 아니다는 점입니다.

오래된 프로필을 대충 삭제레지스트리 정보가 남는다다음 로그온에서 불일치TEMP 프로필이나 추가 폴더의 원인

그림22: 거친 삭제로 남은 레지스트리 정보가, 다음 로그온의 불일치를 만든다.

7.4 먼저 무엇을 확인할 것인가

증상 먼저 볼 곳 전형 원인
로그온 실패 Application / Operational 하이브 로드 실패, 권한, 손상
초기화된 데스크톱 Operational / Diagnostic Temporary 프로필화
로밍이 저장되지 않음 공유 경로, 이벤트, 버전 공유 권한, 네트워크, 경로 길이, 버전 차이
새 사용자만 이상하다 C:\Users\Default 기점의 생성 기본 프로필 문제
공유 PC에서 잔해가 계속 쌓인다 삭제 정책, Shared PC 설정 자동 정리 부족

8. 어느 방식을 골라야 하는가

여기는 「정답이 하나」가 아닙니다. 이용 형태에 따라 달라집니다.

이용 형태개인 전용 PC도메인에 가입한 업무 PC공유 PC / 교육용 단말RDS / VDI / AVD로컬 중심필요에 따라 Folder Redirection / 로밍Mandatory / Shared PC / cleanupFSLogix 1순위 후보

그림23: 이용 형태마다, 로컬 중심부터 FSLogix까지 1순위 후보가 바뀐다.

8.1 개인 전용 PC

기본은 로컬 프로필로 충분합니다.

  • 사용자 설정은 AppData
  • 산출물은 Documents
  • 필요하면 OneDrive 등 다른 계층으로 문서 동기화

이 구성이 가장 단순합니다.

8.2 도메인에 가입한 업무 PC

요건에 따라 다음을 조합합니다.

  • 문서 데이터를 중앙 관리하고 싶다 → Folder Redirection
  • 여러 PC에서 같은 설정도 가지고 다니게 하고 싶다 → 로밍 프로필
  • OS 혼재나 대형 프로필이 있다 → 신중한 설계, 또는 방식 재검토

Microsoft Learn에서도 Folder Redirection과 Roaming User Profiles는 중앙 집중, 오프라인 이용, 백업 용이화 등에 도움이 된다고 되어 있습니다.[4]

8.3 공유 PC / 교육용 단말 / 키오스크

이 용도에서는 「개인 최적화를 남기는 것」보다 매번 깨끗하게 되돌리는 것이 중요합니다.

후보는 이 셋입니다.

  • 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 profile containers를 권장하며, VHDX / VHD를 로그인 시 연결해 네이티브 사용자 프로필처럼 다룬다고 설명합니다.[14]

여러 세션 호스트공유 스토리지VHDX의 사용자 프로필접속한 호스트에 연결

그림24: 여러 세션 호스트가, 공유 스토리지상의 VHDX 프로필을 연결해 사용한다.

특히 다음 조건에서는 FSLogix를 먼저 검토할 가치가 높습니다.

  • 세션 호스트가 매번 바뀐다
  • Outlook / OneDrive / Microsoft 365 계열을 쓴다
  • 비영구 VDI에서 프로필 로밍이 필수다
  • 로밍 프로필의 로그인 지연이 문제다

9. 흔한 오해

9.1 「계정을 만들면, 프로필도 같은 것이 어디서나 쓰인다」

그렇지 않습니다. 계정은 식별자이고, 프로필은 해당 단말 쪽의 실체입니다. 어디까지 가지고 다닐지는 로컬, 로밍, Folder Redirection, FSLogix 같은 방식에 달렸습니다.[4][14]

9.2 「C:\Users\사용자 이름을 복사하면 이전할 수 있다」

거친 복사는 위험합니다.

  • OS 버전 호환
  • NTUSER.DAT
  • 권한
  • 앱 고유 상태
  • 기본 프로필과의 혼선

이 있기 때문입니다. 특히 OS 세대 차가 있는 로밍에서는, Microsoft도 프로필 버전 분리를 전제로 합니다.[6]

거친 복사 이전이 위험한 이유사용자 폴더의 거친 복사로 이전하는 것은 OS 버전 호환, NTUSER.DAT, 권한, 앱 고유 상태, 기본 프로필과의 혼선이라는 문제를 안고 있어 위험하다는 것을 나타내는 그림.폴더를 통째로 복사이전된 것처럼 보인다OS 호환과 NTUSER.DAT 문제가 남는다권한과 기본 프로필의 혼선나중에 깨지기 쉬운 이전이 된다

그림25: 프로필은 폴더만이 아니므로, 복사로는 옮기지 못한다.

9.3 「Mandatory와 Temporary는 비슷한 것」

이 둘은 다른 것입니다. Mandatory는 관리자가 의도해서 만드는 읽기 전용 프로필, Temporary는 오류로 원래 프로필을 읽지 못할 때의 대피처입니다.[8][9]

9.4 「동기화하고 싶으면 전부 Roaming에 넣으면 된다」

그것은 위험합니다. 설정과 거대 캐시를 같은 상자에 넣으면, 로그인 / 로그아웃이나 장애 시의 다루기가 무거워집니다. Roaming시키고 싶은 것Local에 닫아 두어야 할 것은 나누는 편이 운영하기 쉽습니다.[2][3]

9.5 「임시 프로필이 되어도, 그대로 쓰면 된다」

피하는 편이 좋습니다. Temporary profile은 로그아웃하면 사라진다는 전제이므로, 그 상태에서 작업을 이어 가면 나중에 사라질 장소에 중요 데이터를 두게 되는 위험이 있습니다.[9]

10. 정리

Windows 사용자 프로필은 단순히 C:\Users 아래 폴더를 가리키는 말이 아닙니다.

  • 파일 그룹
  • NTUSER.DAT를 중심으로 한 사용자 레지스트리
  • 그 프로필을 어디에 두고, 어떻게 동기화하고, 어떻게 지울 것인가라는 운영 방식

까지 포함해 하나의 설계로 생각하면, 전망이 좋아집니다.

실무에서 먼저 잡아 두고 싶은 것은 이 여섯 가지입니다.

  • 단독 PC라면 우선 로컬 프로필을 기준으로 생각한다
  • 앱의 저장 위치는 Roaming / Local / ProgramData를 나눈다
  • 도메인 환경에서는 로밍 프로필Folder Redirection을 혼동하지 않는다
  • 공유 단말에서는 Mandatory / cleanup / Shared PC를 검토한다
  • RDS / VDI / AVD에서는 FSLogix를 1순위 후보에 넣는다
  • 깨졌을 때는 먼저 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
OS 세대 간 비호환과 프로필 버전 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 OS 세대 간 비호환성과 프로필 버전 관리.

  7. Microsoft Learn, Create mandatory user profiles Mandatory user profile의 용도와 만드는 방법.

  8. Microsoft Learn, Mandatory User Profiles NTUSER.MAN, Super-mandatory profile의 정의.

  9. Microsoft Learn, Temporary User Profiles Temporary profile의 정의와 성질.

  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 profile의 관계.

  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\LocalLowHKEY_CURRENT_USER\Software\AppDataLow가 마련되어 있다는 것.

같은 태그를 공유하는 최신 기사입니다. 더 가까운 주제로 지식을 넓힐 수 있습니다.

이 기사와 가까운 토픽 페이지입니다. 기사를 출발점 삼아 관련 서비스와 다른 기사로 이어집니다.

이 기사는 다음 서비스 페이지로 이어집니다. 가까운 입구부터 확인해 주세요.

Windows 앱 개발

사용자 설정, 로그, 캐시, 공유 데이터의 저장 위치를 어떻게 나눌지는 Windows 앱의 운영성과 유지보수성에 크게 영향을 주는 주제입니다.

자주 묻는 질문

이 기사 주제에 대해 상담 시 자주 나오는 질문을 모았습니다.

NTUSER.DAT란 무엇인가요?
NTUSER.DAT는 Windows 사용자 프로필에 포함된 사용자 레지스트리 하이브의 실체 파일입니다. C:\Users\사용자 이름 바로 아래에 있으며, 로그인 시 로드되어 HKEY_CURRENT_USER(HKCU)로 사용됩니다. 즉 사용자 프로필은 Desktop이나 AppData 같은 파일 그룹과, NTUSER.DAT를 중심으로 한 레지스트리 계층이라는 두 계층으로 구성됩니다. NTUSER.DAT가 읽기 전용 속성으로 되어 있거나 필요한 액세스 권한이 없으면 프로필 로드에 실패하여 로그온 실패나 임시 프로필화의 원인이 됩니다.
Windows의 사용자 프로필이란 무엇인가요? 계정과는 다른 건가요?
계정은 '누가 로그인하는가'를 식별하는 것이고, 사용자 프로필은 그 사람의 작업 환경의 실체입니다. 프로필은 단순한 C:\Users\사용자 이름 폴더가 아니라, Desktop·Documents·AppData 같은 파일 그룹과 NTUSER.DAT라는 사용자 레지스트리 하이브의 집합입니다. 새 사용자가 해당 PC에 처음 로그인할 때는 C:\Users\Default를 바탕으로 새 프로필이 생성됩니다. 설정을 어디까지 가지고 다닐지는 로컬·로밍·Folder Redirection·FSLogix 같은 방식의 선택으로 결정됩니다.
%APPDATA%와 %LOCALAPPDATA%는 어떻게 구분해서 사용해야 하나요?
사용자마다 가지고 다니고 싶은 설정은 %APPDATA%(AppData\Roaming)에, 해당 PC 전용 캐시나 일시적인 상태는 %LOCALAPPDATA%(AppData\Local)에 두는 것이 기본입니다. 재생성할 수 있는 캐시나 큰 작업 파일을 로밍시키면 로그인·로그아웃이 느려지기 쉬우므로 Local 쪽으로 몰아넣습니다. 모든 사용자가 공통으로 쓰는 가변 데이터는 ProgramData가 후보이지만, 누가 읽고 쓸지에 대한 ACL 설계와 함께 고려해야 합니다. 사용자별 실행 시 데이터를 Program Files에 두는 것은 피해야 합니다.
임시 프로필(Temporary profile)로 로그온된 경우에는 어떻게 해야 하나요?
Temporary 프로필은 오류로 인해 원래 프로필을 로드할 수 없을 때 발행되는 긴급 대피용으로, 로그아웃 시 삭제되어 변경 내용이 사라집니다. 그대로 작업을 계속하면 중요한 데이터가 사라질 위험이 있으므로 피해야 하는 상태입니다. 조사할 때는 곧바로 C:\Users를 손대지 말고, Application 로그와 User Profile Service의 Operational 로그, 필요하다면 Diagnostic 로그를 먼저 확인합니다. 흔한 원인으로는 NTUSER.DAT / USRCLASS.DAT의 속성이나 권한 문제, 로밍 대상 경로가 너무 긴 문제, 불완전한 삭제로 남은 레지스트리 정보 등이 있습니다.

저자 프로필

기사 저자의 프로필 페이지입니다.

Go Komura

합동회사 코무라소프트 대표

Windows 소프트웨어 개발, 기술 상담, 장애 조사를 중심으로 재현이 어려운 장애 조사와 기존 자산이 남아 있는 프로젝트에 강점이 있습니다.

블로그 목록으로 돌아가기