ABE(Access-Based Enumeration, 액세스 기반 열거)는 네트워크 공유 폴더에서 사용자에게 NTFS 권한(읽기 또는 목록 보기)이 없는 파일과 폴더를 화면에서 숨겨주는 기능입니다. 이를 활용하면 폴더 구조와 파일명을 감춤으로써 저장된 데이터의 기밀성을 높일 수 있고, 접근 권한이 없는 불필요한 데이터가 보이지 않아 사용 편의성도 개선됩니다. 무엇보다 관리자에게 쏟아지던 "이 폴더는 왜 열리지 않는 거죠!!" 같은 사용자 문의를 줄여줍니다. 이 글에서는 ABE 기술의 개념과 각 Windows 버전별 설정 방법 및 활용법을 자세히 살펴보겠습니다.
Windows에서 공유 폴더 접근은 어떻게 동작하나요?
Windows 네트워크 공유 폴더 기술의 단점 중 하나는, 기본적으로 모든 사용자가 최소한 폴더 구조와 전체 파일·디렉터리 목록을 볼 수 있다는 점입니다. 설령 해당 항목에 대한 NTFS 접근 권한이 없더라도 목록에는 표시되며, 실제로 열려고 시도하면 그제서야 "액세스 거부(Access Denied)" 오류가 발생합니다. 권한이 없는 파일과 폴더를 아예 보이지 않게 하면 어떨까요? 바로 이때 ABE가 유용합니다. 공유 폴더에 ABE를 활성화하면 각 사용자의 개별 액세스 권한(ACL)에 따라 동일한 네트워크 공유라도 서로 다른 폴더·파일 목록이 표시됩니다.
SMB를 통해 공유 폴더에 접근할 때 클라이언트와 서버 간 상호작용은 다음과 같이 진행됩니다.
- 클라이언트가 서버에 네트워크 공유 폴더 내 디렉터리 접근을 요청합니다.
- 서버의 LanmanServer 서비스가 해당 폴더에 대한 사용자 권한을 확인합니다.
- 접근이 허용되면(NTFS 권한: 콘텐츠 나열, 읽기 또는 쓰기) 사용자에게 디렉터리 내용이 표시됩니다.
- 이후 사용자는 같은 방식으로 파일이나 하위 폴더 접근을 요청합니다.
- 접근이 거부되면 사용자에게 그 사실이 통지됩니다.
이 과정을 보면 서버가 먼저 폴더의 전체 내용을 사용자에게 보여주고, NTFS 권한 확인은 사용자가 특정 파일이나 폴더를 실제로 열려고 할 때 비로소 이루어진다는 것을 알 수 있습니다.
ABE는 사용자가 폴더 내용 목록을 받기 전에 파일 시스템 개체의 접근 권한을 미리 검사하도록 합니다. 따라서 최종 목록에는 사용자에게 NTFS 권한(최소 읽기 권한)이 있는 개체만 포함되고, 접근할 수 없는 리소스는 아예 표시되지 않습니다.
예를 들어 창고 부서 소속 사용자가 공유 폴더(\\filesrv1\docs)에 접속하면 Public과 Warehouse 두 개의 폴더만 표시됩니다.

반면 다른 Windows 보안 그룹에 속한 IT 부서 사용자가 같은 네트워크 폴더에 접속하면, Public과 Warehouse 외에 5개의 추가 디렉터리가 함께 표시됩니다.

ABE 사용 시 주의할 점
Windows 파일 서버에서 ABE 사용의 주요 단점은 서버에 추가 부하가 발생한다는 것입니다. 이는 트래픽이 많은 파일 서버에서 특히 두드러집니다. 표시되는 디렉터리 안에 개체 수가 많고 여러 사용자가 동시에 파일을 열수록 지연 시간도 길어집니다. Microsoft에 따르면 표시되는 폴더에 개체(파일 및 디렉터리)가 15,000개 있으면 폴더를 여는 데 1~3초 더 느려진다고 합니다. 따라서 공유 폴더 구조를 설계할 때 체계적이고 계층적인 하위 폴더 구조를 갖추면 폴더 열기 지연을 덜 체감하게 만들 수 있습니다.
참고: ABE는 파일 서버의 네트워크 공유 폴더 목록 자체를 숨기지 않으며, 공유 폴더 내용만 숨깁니다. 공유 폴더 자체를 사용자에게 숨기려면 공유 이름 끝에 $ 기호를 붙여야 합니다.
ABE는 명령 프롬프트(abecmd.exe 유틸리티), GUI, PowerShell 또는 전용 API를 통해 관리할 수 있습니다.
액세스 기반 열거(ABE)가 작동하지 않는 경우
Windows에서 ABE는 다음과 같은 경우에는 동작하지 않습니다.
- 파일 서버로 Service Pack 1이 적용되지 않은 Windows XP 또는 Windows Server 2003을 사용하는 경우
- 서버에서 로컬로 직접 디렉터리를 확인하는 경우
- 파일 서버의 로컬 관리자 그룹 구성원인 경우 (항상 전체 파일 목록이 표시됨)
Windows Server 2008/2008 R2에서 ABE 사용하기
Windows Server 2008/2008 R2에서는 별도의 구성 요소를 설치할 필요 없이 ABE 관리 기능이 Windows GUI에 이미 포함되어 있습니다. 특정 폴더에 대해 ABE를 활성화하려면 MMC 관리 콘솔 공유 및 저장소 관리(Share and Storage Management)(시작 → 프로그램 → 관리 도구 → 공유 및 저장소 관리)를 엽니다. 대상 공유의 속성으로 이동한 후 고급(Advanced) 설정에서 액세스 기반 열거 사용(Enable access-based enumeration) 옵션을 체크하면 됩니다.

Windows Server 2012 R2/2016에서 ABE 설정하기
Windows Server 2012 R2/2016에서도 ABE 설정은 매우 간단합니다. 먼저 파일 및 저장소 서비스(File and Storage Services) 역할을 설치한 후, 서버 관리자(Server Manager)에서 공유 폴더 속성으로 이동합니다.

설정(Settings) 섹션에서 액세스 기반 열거 사용(Enable access-based enumeration) 옵션을 체크합니다.

Windows Server 2003에서 ABE 구현하기
현재는 지원이 종료된 Windows Server 2003의 경우 Service Pack 1부터 ABE가 지원됩니다. Windows Server 2003 SP1 이상에서 ABE를 활성화하려면 https://www.microsoft.com/en-us/download/details.aspx?id=17510 에서 패키지를 다운로드해 설치해야 합니다. 설치 과정에서 서버의 모든 공유 폴더에 ABE를 일괄 적용할지, 아니면 수동으로 구성할지 선택하게 됩니다. 수동 구성을 선택하면 설치 후 네트워크 공유 속성에 '액세스 기반 열거(Access-based Enumeration)' 탭이 새로 생깁니다.

특정 폴더에 ABE를 적용하려면 해당 폴더 속성에서 이 공유 폴더에 액세스 기반 열거 사용(Enable access-based enumeration on this shared folder) 옵션을 체크합니다.

Windows 2003은 DFS 기반 액세스 기반 열거도 지원하지만, 이 경우 명령 프롬프트에서만 설정할 수 있다는 점에 유의하세요.
명령 프롬프트로 ABE 관리하기
Abecmd.exe 유틸리티를 사용하면 명령 프롬프트에서 액세스 기반 열거 설정을 관리할 수 있습니다. 이 도구는 Windows Server 2003 SP1용 액세스 기반 열거 패키지에 포함되어 있습니다(위 링크 참조).
Abecmd.exe는 모든 디렉터리에 한 번에 ABE를 적용하거나 특정 폴더에만 적용할 수 있습니다. 다음 명령은 모든 공유에 대해 ABE를 활성화합니다.
abecmd /enable /all
특정 폴더(예: Docs라는 이름의 네트워크 공유 폴더)에만 적용하려면 다음과 같이 입력합니다.
abecmd /enable Docs
PowerShell로 액세스 기반 열거 관리하기
Windows 10/8.1 및 Windows Server 2016/2012 R2에 기본 설치되어 있는 SmbShare PowerShell 모듈을 사용하면 특정 폴더의 ABE 설정을 관리할 수 있습니다. 먼저 특정 공유 폴더의 속성을 확인해 보겠습니다.
Get-SmbShare Install|fl *

여기서 FolderEnumerationMode 속성 값에 주목하세요. 현재 값이 Unrestricted라면 이 폴더에는 ABE가 비활성화되어 있는 상태입니다.
서버의 모든 공유 폴더에 대한 ABE 상태를 확인하려면 다음 명령을 사용합니다.
Get-SmbShare | Select-Object Name,FolderEnumerationMode
특정 폴더에 대해 ABE를 활성화하려면:
Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased
다음 명령을 실행하면 ADMIN$, C$, E$, IPC$ 등 관리 공유를 포함한 게시된 모든 네트워크 폴더에 대해 ABE를 활성화할 수 있습니다.
Get-SmbShare | Set-SmbShare -FolderEnumerationMode AccessBased
ABE를 비활성화하려면 다음 명령을 사용합니다.
Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode Unrestricted
Windows 10/8.1/7 클라이언트에서 ABE 활용하기
특히 가정용이나 SOHO 네트워크 환경의 사용자들도 액세스 기반 열거 기능을 활용하고 싶어 합니다. 문제는 Microsoft 클라이언트 OS에는 ABE를 관리하기 위한 그래픽 인터페이스나 명령 인터페이스가 기본 제공되지 않는다는 점입니다.
Windows 10(Server 2016)과 Windows 8.1(Server 2012 R2)에서는 위에서 소개한 것처럼 PowerShell로 ABE를 관리할 수 있습니다. 그 이전 버전의 Windows에서는 최신 버전의 PowerShell(5.0 이상)을 설치하거나, Windows Server 2003 패키지의 abecmd.exe 유틸리티를 사용해야 하며, 이 유틸리티는 클라이언트 OS에서도 정상적으로 작동합니다. Windows Server 2003용 액세스 기반 열거 패키지는 Windows 10, 8.1, 7에 직접 설치할 수 없으므로, 먼저 Windows Server 2003에 설치한 뒤 C:\windows\system32 디렉터리에서 클라이언트의 동일 폴더로 파일을 복사해야 합니다. 이후 위에서 설명한 명령으로 ABE를 활성화할 수 있습니다.
참고: 기업 환경에서는 ABE를 DFS 폴더와 결합하면 사용자에게 보이지 않는 폴더를 숨기면서 더욱 깔끔한 공용 폴더 트리 구조를 제공할 수 있습니다. DFS에서 ABE를 활성화하려면 DFS 관리 콘솔 또는 dfsutil.exe를 사용합니다.dfsutil property abde enable \\namespace_root
또한 AD 도메인의 컴퓨터에는 GPO(그룹 정책)를 통해 ABE를 배포할 수도 있습니다. GPP(그룹 정책 기본 설정)의 컴퓨터 구성(Computer Configuration) → 기본 설정(Preferences) → Windows 설정(Windows Settings) → 네트워크 공유(Network Shares) 섹션에서 설정할 수 있습니다.

네트워크 폴더 속성에는 액세스 기반 열거(Access-Based Enumeration) 옵션이 있으며, 이 값을 사용(Enable)으로 변경하면 해당 GPO로 생성된 모든 공유 폴더에 ABE 모드가 적용됩니다.