Скрываем папки недоступные пользователю с помощью Access-Based Enumeration (ABE) в Windows Server

Access-Based Enumeration ( ABE , перечисление на основе доступа ) это опция файлового сервера Windows, которая позволяет скрыть от пользователя файлы и папки, к которым у него доступа. Это позволяет скрыть структуру каталогов и имена папок и файлов в общей сетевой папке.

Как включить Access Based Enumeration в Windows Server

Рассмотрим сценарий, когда на файловом сервере Windows есть некая общая сетевая папка с каталогами нескольких отделов. Все пользователи могут просматривать список директорий в этой папке (для этого на корневую папку даны права List folder или Traverse folder для группы Users). Но пользователи могут зайти только в каталоги, в списки доступа NTFS которых они добавлены.

общая сетевая папка со список вложенных подкаталогов на файловом сервере windows

Предположим, пользователь добавлен в группы доступа AD, назначенные на 2 каталога Public и Salary .

Назначить пользователю группы доступа к сетевой папке в AD

Группы безопасности AD добавлены в NTFS разрешения соответствующих подкаталогов в общей папки. Из ACL убраны разрешения, дающие доступ к подпапкам для групп Domain Users или Builtin Users .

назначены ntfs права на папку

Чтобы включить ABE, откройте консоль Server Manager -> выберите роль File and Storage Services -> Shares . Отройте свойства общей папки и на вкладке Settings включите опцию Enable access-based enumeration .

Включить access based enumeration для сетевой папки на windows server через manager

Обновите содержимое общей папки у пользователя. Теперь пользователеь видит только два каталога, к которым ему предоставлен доступ. Оставшиеся папки скрыты от пользователя.

скрыть папки от пользователя через access based enumeration

Кроме того, вы можете включать ABE на компьютерах домена AD с помощью групповых политик. Для этого используется GPP в секции: Computer Configuration -> Preferences -> Windows Settings -> Network Shares ).

Включить Access-Based Enumeration с помощью групповых политик

Если включить опцию Access-Based Enumeration , то для сетевой папки, опубликованной с помощью данной GPO, будет включен режим ABE.

Управление Access Based Enumeration из командной строки (PowerShell)

Можно включить ABE для сетевой папки из командной строки PowerShell .

Это в том числе позволяет включить Access-Based enumeration для сетевых папок, опубликованных на обычных рабочих станциях с десктопными версиями Windows 10 и 11.

Например, чтобы включить режим перечисления для общей папка с именем Docs, выполните команду:

Get-SmbShare Docs | Set-SmbShare -FolderEnumerationMode AccessBased

Вывести список опубликованных сетевых папок (включая общие административные папки Windows ) и статус опции ABE:

Get-SmbShare | Select-Object Name,FolderEnumerationMode

Значение FolderEnumerationMode = AccessBased указывает, что Access Based-enumeration для них включен.

PowerShell включить FolderEnumerationMode AccessBased для сетевой папки

Отключить ABE для папки:

Get-SmbShare Docs | Set-SmbShare -FolderEnumerationMode Unrestricted

В Samba сервере на Linux для включения Access-based Enumeration нужно добавить в конфигурационный файл smb.conf опции:

hide unreadable = Yes_x000D_access based share enum = Yes

В корпоративной среде ABE часто применяется для папок DFS , скрывая от пользователей «ненужные» папки и предоставляя более удобную структуру дерева общих папок. Включить ABE на пространстве имен DFS можно с помощью консоли DFS Management или утилиты dfsutil.exe :
dfsutil property abde enable \<namespace root>

Другие особенности и ограничений Access-based Enumeration в Windows

  • Включение ABE на файловых серверах может увеличить нагрузку на сервер . Особенно заметна будет задержка отображения списка файлов в каталогах, которые содержат тысячи файлов (например, при наличии 15000 объектов в общей папке, скорость ее открытия замедлится на 1-3 секунды).
  • ABE не работает при локальном просмотре каталогов на сервере.
  • Члены локальной группы администраторов файлового сервера всегда видят полный список объектов в сетевой папке.
EnglishRussianUkrainian