- Как узнать размер папок на диске с помощью PowerShell
- Размер папок windows server
- Настраиваем дисковые квоты пользователям Windows на томах NTFS
- Дисковые NTFS квоты в Windows
- Настройка дисковых NTFS квоты в Windows 10 / Windows Server 2016
- Настройка дисковых квот с помощью групповых политик
- Управление дисковыми квотами из командной строки/PowerShell
Как узнать размер папок на диске с помощью PowerShell
Большинство пользователей Windows привыкли, что самый простой способ получить размер папки – открыть ее свойства в Проводнике Windows. Более опытные предпочитают использовать такие утилиты, как TreeSize или WinDirStat. Но, если вам нужно получить более детальную статистику по размеру папок в конкретном каталоге, или исключить определенные типы файлы, в этом случае лучше воспользоваться возможностями PowerShell. В этой статье мы покажем, как быстро получить размер определенного каталога на диске (или всех вложенных каталогов) с помощью PowerShell.
Для получения размеров файлов и каталогов в PowerShell можно воспользоваться командами Get-ChildItem (алиас gci) и Measure-Object (алиас measure).
Первый командлет позволяет по указанным критериями сформировать список файлов в заданном каталоге, а второй выполняет арифметическое действие.
Например, чтобы получить размер папки c:\ps, выполните команду:
Get-ChildItem c:\iso | Measure-Object -Property Length -sum
Как вы видите, общий размер файлов в данном каталоге указан в поле Sum и составляет около 2 Гб (размер указан в байтах).
Чтобы преобразовать размер в более удобные Мб или Гб, используйте такую команду:
(gci c:\iso | measure Length -s).sum / 1Gb
(gci c:\iso | measure Length -s).sum / 1Mb
Для округлений результата до двух символов после запятой, выполните команду:
» <0:n2>GB» -f ((gci c:\iso | measure Length -s).sum / 1Gb)
Чтобы посчитать суммарный размер всех файлов определенного типа в каталоге используйте такую команду (к примеру, мы хотим получить общий размер ISO файлов в папке):
(gci c:\iso *.iso | measure Length -s).sum / 1Mb
Указанные выше команды позволяют получить только суммарный размер файлов в указанной директории. Если в папке содержаться вложенные каталоги, размер файлов в этих каталогах не будет учтен. Для получения общего размера всех файлов в каталоге с учетом вложенных директорий нужно использовать параметр –Recurse. Получим суммарный размер всех файлов в папке c:\Windows.
» <0:n2>GB» -f ((gci –force c:\Windows –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb)
Чтобы учитывать размер скрытых и системных файлов я дополнительно указал аргумент –force.
Итак, размер каталога C:\Windows на нашем диске составляет около 16 Гб.
Можно получить размер всех вложенных папок первого уровня в указанном каталоге. Например, нам нужно получить размер всех профилей пользователей в папке C:\users.
gci -force ‘C:\Users’-ErrorAction SilentlyContinue | ? < $_ -is [io.directoryinfo] >| % <
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % < $len += $_.length >
$_.fullname, ‘ <0:n2>GB’ -f ($len / 1Gb)
>
% — это алиас для цикла foreach-object.
Идем дальше. Допустим ваша задача – узнать размер каждого каталога в корне системного жесткого диска и представить информацию в удобной для анализа табличной форме с возможностью сортировки по размеру каталогов. Для этого воспользуемся командлетом Out-GridView.
Для получения информации о размере каталогов на диске C:\ выполните следующий PowerShell скрипт:
$targetfolder=’C:\’
$dataColl = @()
gci -force $targetfolder -ErrorAction SilentlyContinue | ? < $_ -is [io.directoryinfo] >| % <
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % < $len += $_.length >
$foldername = $_.fullname
$foldersize= ‘<0:n2>‘ -f ($len / 1Gb)
$dataObject = New-Object PSObject
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldername” -value $foldername
Add-Member -inputObject $dataObject -memberType NoteProperty -name “foldersizeGb” -value $foldersize
$dataColl += $dataObject
>
$dataColl | Out-GridView -Title “Размер вложенных каталогов”
Как вы видите перед вами должно появиться графическое представление таблицы, в которой указаны все папки в корне системного диска C:\ и их размер. Щелкнув по заголовку столбца таблицы, вы можете отсортировать папки по размеру.
Размер папок windows server
- ИП Блиновский К.О.
- kirill@blinmen.ru
- +7 (926) 381-99-59
Заходим в управление сервером и добавляем роли. Файловый сервер в 2008 сервере установлен по умолчанию, добавляем диспетчер ресурсов. В оснастке «Управление сервером» появлются пункты «Управление квотами» и «Управление блокировкой файлов».
Теперь желательно настроить возможность отправки отчетов диспетчером ресурсов файлового сервера. Для этого в параметрах диспетчера указываем SMTP сервер.
Следующий шаг — настраиваем шаблон квоты, который будет применятся к нужным папкам. Здесь все просто, достачно указать название шаблона и предел квоты. Шаблон создавать не обязательно, можно создавать сразу квоту, но использование шаблона более удобно и в будущем упрощает создание новых квот.
Указываем порог уведомления о превышении и e-mail, куда отправлять уведомления.
Создаем квоту, указываем путь. В случае с перенаправлением пользовательских папок необходимо выбрать «Автоматически применять шаблон и создавать квоты на существующих и новых вложенных папках». Если у нас пользовательские папки находятся на пути типа
\serveruser_files*,
то каждая папка пользователя, находящаяся в user_files будет ограничена в объеме.
Выбираем шаблон квоты и нажимаем «Создать», затем справа «Обновить» и все квоты созданы.
Вот и все! Все очень просто, не так ли?
Смотрите мою следующую статью о запрете сохранения файлов по маске.
Настраиваем дисковые квоты пользователям Windows на томах NTFS
Дисковые квоты позволяют администраторам 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 Гб квоты.
При превышении квоты пользователь получает сообщение:
Одновременно в журнале системы фиксируется событие с EventID 37, source: Ntfs:
Настройка дисковых квот с помощью групповых политик
Вы можете управлять настройками дисковых квот на компьютерах и серверах домена с помощью групповых политик. Параметры настройки квот находятся в разделе 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 скрипт выведет информацию о текущих квотах пользователей.