디스크 할당량(디스크 쿼터)을 사용하면 Windows 관리자가 서버와 워크스테이션의 파일 시스템에서 사용자가 사용하는 디스크 공간을 제어하고 제한할 수 있습니다. Windows Server는 FSRM(File Server Resource Manager) 할당량과 NTFS 할당량, 두 가지 유형의 디스크 할당량을 지원합니다. FSRM 할당량이 더 유연하고 편리하지만, 특정 상황에서는 NTFS 할당량도 효과적으로 활용할 수 있습니다. 예를 들어 RDS 호스트의 로밍 프로필 폴더(User Profile Disks 제외)와 리디렉션된 홈 폴더의 크기 제한, FTP 서버나 IIS 사이트의 개인 사용자 디렉터리 관리 등이 대표적입니다. 이 글에서는 Windows 사용자를 위한 NTFS 디스크 할당량 구성 방법을 단계별로 살펴보겠습니다.
Windows의 NTFS 디스크 할당량 이해하기
Windows 디스크 할당량을 사용하면 각 사용자가 저장하는 파일과 폴더의 최대 크기를 제한하여, 사용자가 자신의 데이터로 전체 디스크 공간을 소진하는 것을 방지할 수 있습니다. 디스크 할당량은 서버용과 데스크톱용 Windows 모두에서 사용할 수 있습니다.
NTFS 할당량의 주요 특징과 제한 사항:
- 할당량은 NTFS로 포맷된 볼륨(파티션) 전체에만 적용할 수 있으며, ReFS 드라이브에서는 작동하지 않습니다.
- 할당량은 해당 파티션에 데이터를 저장하는 모든 사용자에게 일괄 적용됩니다. 특정 사용자 그룹이나 개별 폴더에만 할당량을 적용할 수 없으므로, 이런 경우에는 FSRM을 사용하는 것이 좋습니다.
- 파일과 폴더의 소유권은 NTFS 보안 설명자(security descriptor)의 Owner 레코드를 확인하여 결정됩니다.
- 기본적으로 Windows는 할당량이 활성화된 파티션을 한 시간에 한 번씩 검사하여 각 사용자의 총 파일 크기를 계산합니다.
- NTFS 압축을 사용하는 경우 압축 전 원본 파일 크기가 기준이 됩니다.
NTFS 디스크 할당량은 다음과 같은 시나리오로 활용할 수 있습니다:
- 디스크 사용량 모니터링 — 서버에서 사용자별 디스크 공간 사용 통계를 확인합니다.
- 모니터링 및 알림 — 첫 번째 시나리오에 더해, 할당량 초과 시 Event Viewer에 사용자 이름과 할당량 사용 정보가 담긴 이벤트를 기록합니다.
- 디스크 사용량 제어 — 할당량을 초과하면 사용자가 새 파일을 저장할 수 없습니다.
Windows 10/Windows Server 2016에서 디스크 할당량 활성화
Windows Server 2016에서 사용자 데이터가 저장된 디스크에 NTFS 할당량을 구성하는 과정을 살펴보겠습니다. Windows 2003부터 이전 버전의 모든 Windows에서도 동일한 방식으로 NTFS 디스크 할당량을 구성할 수 있습니다.
할당량을 활성화할 디스크의 속성 창을 열고 Quota 탭으로 이동한 뒤, Show Quota Settings(할당량 설정 표시)를 클릭합니다.

해당 볼륨에 할당량을 활성화하려면 Enable quota management(할당량 관리 사용) 옵션을 체크합니다.
사용 시나리오에 따라 다음 옵션들을 선택할 수 있습니다:
- Deny disk space to users exceeding quota limit — 할당량 한도를 초과한 사용자의 디스크 쓰기를 차단합니다.
- Limit disk space to — 사용자당 파일 총 크기 제한을 설정합니다.
- Log event when a user exceeds their quota limit — 사용자가 할당량 한도를 초과하면 Event Viewer에 이벤트를 기록합니다.
- Log event when a user exceeds their warning level — 할당량 경고 임계값에 도달하면 이벤트를 기록합니다.
"Deny disk space to users exceeding quota limit" 옵션을 처음부터 바로 활성화하는 것은 권장되지 않습니다. 먼저 사용자들의 현재 디스크 공간 사용량을 파악하는 것이 좋습니다. 이 예제에서는 서버의 각 사용자에게 1GB의 디스크 공간을 할당하려고 합니다.

변경 사항을 저장(Apply)합니다. 일정 시간이 지나면(디스크 크기와 파일 수에 따라 다름) Windows가 각 사용자의 디스크 공간 총 사용량을 계산합니다.
Quota Entries(할당량 항목) 버튼을 클릭하면, 파일 시스템에서 파일이 발견된 각 사용자의 할당량과 현재 사용 중인 공간 크기를 보여주는 표가 나타납니다. 여기서 어떤 사용자가 이미 디스크 할당량을 초과했는지 한눈에 확인할 수 있습니다.

기본적으로 모든 사용자에게 동일한 할당량이 설정됩니다. Quota Entries 창에서 특정 사용자에 대한 사용자 지정 할당량을 생성하거나, 늘리거나, 비활성화할 수 있습니다.
특정 사용자 계정에 대해 NTFS 디스크 할당량을 비활성화하려면 할당량 테이블에서 해당 항목의 속성(Properties)을 열고 "Do not limit disk usage"(디스크 사용량 제한 안 함)을 체크합니다.
중요: NT Service\TrustedInstaller와 NT AUTHORITY\SYSTEM 같은 시스템 계정에는 반드시 할당량을 비활성화해야 합니다. 그렇지 않으면 Windows가 정상적으로 작동하지 않을 수 있습니다.

할당량 목록 창에서는 할당량 설정을 내보내어 다른 디스크나 컴퓨터에 가져와 적용할 수도 있습니다.
특정 사용자의 할당량에 포함된 파일 목록을 표시하려면 Delete 메뉴 항목을 선택합니다.

이 대화 상자에서는 특정 파일의 소유자 변경(Take ownership), 삭제 또는 이동이 가능합니다.
감사(audit) 모드로 소프트 할당량 구성을 마친 후, Deny disk space to users exceeding quota limit 옵션을 활성화하면 하드 디스크 할당량 모드가 시작됩니다. 이제 사용자는 할당된 디스크 공간을 초과할 수 없습니다. 참고로 이후 사용자 세션에서 표시되는 디스크 크기는 기존 디스크 할당량에 따라 계산됩니다. 이 예제에서는 C:\ 드라이브에서 내 계정에 1GB 할당량 중 876MB가 남아 있습니다.

할당량 한도를 초과하면 사용자에게 다음과 같은 메시지가 표시됩니다:
There is not enough space on …. xx MB is needed to copy this item. Delete or move files so you have enough space.

동시에 Event Viewer에 EventID 37, 소스 Ntfs로 다음 이벤트가 기록됩니다:
A user hit their quota limit on volume C:.

그룹 정책(GPO)으로 디스크 할당량 구성
그룹 정책을 사용하면 도메인 내 컴퓨터와 서버의 디스크 할당량 설정을 중앙에서 관리할 수 있습니다. 할당량 설정은 GPO의 컴퓨터 구성 -> 관리 템플릿 -> 시스템 -> 디스크 할당량 섹션에 위치합니다. 앞서 설명한 것과 유사하게 디스크 할당량을 활성화하려면 GPO에서 다음 설정을 구성합니다:
- Enable Disk Quotas:
Enable - Enforce Disk Quota Limit:
Enable - Default Quota Limit And Warning Level:
Enable(기본 할당량 한도/경고 수준:1GB) - Log Event When Quota Limit Exceeded:
Enable - Apply Policy To Removable Media:
Enable(USB 플래시 드라이브를 포함한 이동식 미디어에 할당량을 적용해야 하는 경우)

이제 이 GPO를 디스크 할당량을 적용할 컴퓨터/서버가 속한 OU에 연결하고, 그룹 정책 설정이 업데이트되기를 기다리면 됩니다.
참고: GPO를 통해 구성된 디스크 할당량은 컴퓨터의 모든 디스크에 적용되며, 특정 사용자에 대한 예외를 구성할 수 없습니다.
명령 프롬프트/PowerShell로 디스크 할당량 관리
NTFS 할당량은 명령줄에서도 관리할 수 있으며, 이를 위해 fsutil quota 명령을 사용합니다.
디스크에 소프트 할당량을 활성화하려면 다음 명령을 실행합니다:
fsutil quota track E:
하드 NTFS 할당량을 활성화하려면:
fsutil quota enforce E:
디스크 할당량을 완전히 비활성화하려면:
fsutil quota disable E:
지정된 드라이브의 현재 할당량 설정을 확인하려면:
fsutil quota query e:

이미 디스크 할당량을 초과한 사용자 목록을 확인하려면:
fsutil quota violations
특정 사용자의 할당량 임계값을 변경하려면:
fsutil quota modify E: 2000000000 100000000 corp\aabrams
할당량 크기는 바이트 단위로 지정합니다(이 예제에서는 2GB). 첫 번째 값은 디스크에서 허용되는 사용자 데이터의 최대 크기(하드 할당량)이고, 두 번째 값은 경고가 표시되는 한도(경고 수준)입니다.
디스크 할당량 업데이트 주기(초 단위)를 확인하려면:
fsutil behavior query quotanotify
기본적으로 할당량은 한 시간에 한 번 업데이트됩니다.

NTFS 디스크 할당량을 관리하는 기본 제공 PowerShell cmdlet은 없지만, Win32_DiskQuota WMI 클래스를 사용하여 관리할 수 있습니다. 예를 들어 다음 PowerShell 스크립트는 현재 사용자 할당량에 대한 정보를 출력합니다.
$strCom = "."
$colItems = get-wmiobject -class "Win32_DiskQuota" -namespace "root\CIMV2" -computername $strCom
foreach ($objItem in $colItems) {
write-host "Quota usage: " $objItem.DiskSpaceUsed
write-host "Quota Hard Limit: " $objItem.Limit
write-host "Drive: " $objItem.QuotaVolume
write-host "Status: " $objItem.Status
write-host "Username: " $objItem.User
write-host "Quota Warning Limit: " $objItem.WarningLimit
}