Дисковые квоты позволяют администраторам Windows контролировать сколько места используют пользователи на файловой системе серверов и рабочих станций. ОС Windows Server поддерживает два типа квотирования: квотирование на базе File Server Resource Manager (дисковые квоты FSRM) и NTFS квоты. Хотя FSRM квотирование и является более гибким и удобным, но в некоторых простых случаях эффективно можно использовать и NTFS квоты. Например, для ограничения размеров каталогов перемещаемых профилей (но не User Profile Disks) и перенаправляемых домашних папок на RDS серверах, личных каталогов пользователей на FTP сервере, личных каталогов на сайтах IIS и т.д. В этой статье мы рассматриваем как настроить дисковые квоты пользователям в Windows.
Дисковые NTFS квоты в Windows
С помощью дисковых квот Windows вы можете ограничить максимальный размер файлов и папок каждого пользователя так, чтобы он не превысил установленного лимита и не занял своими данными весь диск. Принадлежность фалов и каталогов определяется в соответствии с владельцем объекта файловой системы NTFS. Дисковые квоты работают как на северных, так и на клиентских версиях Windows.
Основные особенности и ограничения NTFS-квот:
- Квотирование может быть применено только целиком к конкретному тому (разделу), отформатированному в файловой систем NTFS (на ReFS томах квотирование не работает);
- Квоты действуют на всех пользователей, хранящих свои данные на данном разделе. Нельзя применить квоту на группу пользователей или отдельный каталог. В этом случае лучше использовать FSRM квоты;
- Принадлежность файлов пользователю определяется по его владельцу (owner) файла, заданного в дескрипторе защиты NTFS;
- По умолчанию Windows сканирует раздел с включенным квотированием и пересчитывает суммарный размер файлов каждого пользователя 1 раз в час;
- При использовании NTFS-компрессии, учитывается оригинальный размер файлов (до сжатия).
Можно выделить следующие сценарии использования дисковых квот:
- Мониторинг использования дисков – просмотр статистики использования пользователями места на диске сервера;
- Мониторинг и оповещение – в дополнении к первому сценарию, при превышении квоты в Event Viver записывается событие с информацией о пользователе и квоте.
- Контроль использования диска — при превышении квоты пользователь не может сохранять новые файлы.
Настройка дисковых NTFS квоты в Windows 10 / Windows Server 2016
Рассмотрим пример настройки NTFS квот на диске с данными пользователей на примере Windows Server 2016. Во всех предыдущих версия Windows (начиная с Windows 2003) дисковые 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 – записывать в журнал события при приближении к указанному порогу.
Не рекомендуется сразу включать правило запрета записи при превышении лимита. Лучше сначала оценить текущее использование пользователями места на диске пользователями. В нашем примере мы хотим, чтобы каждый пользователь мог использовать не более 1 Гб места на диске сервера.
Сохраните изменения (Apply). Через некоторое время (в зависимости от размера диска и количества файлов), Windows подсчитает суммарное использования диска каждым пользователем.
Нажмите на кнопку Quota Entries. Перед вами появится таблица, в которой указаны квоты и текущий размер занятого места каждым пользователем (файлы которых найдены на файловой системе). Здесь вы сразу видите, какие пользователи уже превысили свои квоты на диске.
По умолчанию для всех пользователей устанавливаются одинаковые квоты. Из окна Quota Entries вы можете создать, увеличить или отключить стандартную квоту для конкретного пользователя.
Чтобы NTFS квоты не применялись к определенной учетной записи, нужно открыть свойства записи в таблице квот (Properties) и установить опцию Do not limit disk usage.
Из окна со список квот вы можете экспортировать настройки квот, а затем импортировать и применить их для другого диска или компьютера.
Если вы хотите вывести список файлов, которые учитываются в квоте конкретного пользователя, нужно выбрать пункт Delete.
Из этого диалогового окна можно сменить владельца файла (Take ownership), удалить (Delete) или переместить файл (Move).
После того, как навели порядок с мягкими квотами в режиме аудита, можно включать опцию Deny disk space to users exceeding quota limit. Это включит режим жестких квот. Теперь пользователи не смогут превысить выделенное им место на диске. Обратите внимание, что размер диска в сессии пользователя теперь отображается с учетом дисковой квот. В этом примере для моего аккаунта на диске C:\ свободно
876 Мб
из 1 Гб квоты.
При превышении квоты пользователь получает сообщение:
There is not enough space on ….
Одновременно в журнале системы фиксируется событие с EventID 37, source: Ntfs:
A user hit their quota limit on volume C:
Настройка дисковых квот с помощью групповых политик
Вы можете управлять настройками дисковых квот на компьютерах и серверах домена с помощью групповых политик. Параметры настройки квот находятся в разделе GPO Computer Configuration -> Administrative Templates -> System -> Disk Quotas. Чтобы включить дисковые квоты, аналогичные рассмотренным выше, задайте следующие политики:
- Enable Disk Quotas: Enable
- Enforce Disk Quota Limit: Enable
- Default Quota Limit And Warning Level: Enable (Default quota limit/warning level: 1 Gb)
- Log Event When Quota Limit Exceeded: Enable
- Apply Policy To Removable Media: Enable (если нужно применять квоты для съёмных носителей, в том числе USB флешкам)
Осталось назначить такую GPO на OU с компьютерами/серверами, на которых нужно внедрить дисковые квоты и дождаться обновления политик.
Управление дисковыми квотами из командной строки/PowerShell
NTFS-квотами можно управлять из командной строки Windows с помощью команы 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: 3000000000 200000000 corp\aaivanov
Размер квот указывается в байтах (в этом примере 3 Гб). Первое значение – максимальный размер данных пользователя на диске (жесткая квота, limit), второе — лимит, при котором появляются предупреждения (warning level).
Узнать частоту обновления (перерасчета) дисковых квот (в секундах):
fsutil behavior query quotanotify
По умолчанию квоты обновляются раз в час
В PowerShell нет встроенных командлетов для управления NTFS квотами на диске. Однако вы можете управлять ими через WMI класс Win32_DiskQuota. Например, следующий PowerShell скрипт выведет информацию о текущих квотах пользователей.
$strComputer = "."
$colItems = get-wmiobject -class "Win32_DiskQuota" -namespace "root\CIMV2" -computername $strComputer
foreach ($objItem in $colItems) {
write-host " Used: " $objItem.DiskSpaceUsed
write-host "Limit: " $objItem.Limit
write-host "Quota Volume: " $objItem.QuotaVolume
write-host "Status: " $objItem.Status
write-host "User: " $objItem.User
write-host "Warning Limit: " $objItem.WarningLimit
}