PowerShell에서 LDAP 쿼리 수행 방법

  1. PowerShell에서 Active Directory 모듈 설치하기
  2. PowerShell 필터에 Filter 매개변수 사용하기
  3. PowerShell에서 LDAP 필터에 -LDAPFilter 매개변수 사용하기
PowerShell에서 LDAP 쿼리 수행 방법

Active Directory를 PowerShell로 쿼리할 때 가장 흔한 도전 중 하나는 필터 구문을 올바르게 작성하는 방법입니다.

불행히도, 모든 Active Directory PowerShell 모듈 cmdlet의 Filter 및 LDAP Filter 매개변수는 많은 이들에게 블랙 박스입니다.

이 글에서는 Active Directory 필터와 LDAP 필터를 사용하는 방법을 깊이 있게 이해해 보겠습니다.

PowerShell에서 Active Directory 모듈 설치하기

진행하기 전에 몇 가지 선행 조건이 필요합니다.

  • PowerShell Active Directory 모듈이 설치되어 있어야 합니다.
  • 도메인에 가입된 컴퓨터여야 합니다.
  • Active Directory 도메인 컨트롤러에 성공적으로 연결하고 인증해야 합니다.

보통 Install-Module 명령을 실행하면 원격 CDN에서 패키지를 가져와 컴퓨터에 설치하게 됩니다. 그러나 Active Directory 모듈의 경우 성공을 위해 선행 패키지를 설치해야 합니다.

설치해야 하는 선행 패키지는 RSAT 또는 원격 서버 관리 도구입니다.

아래의 PowerShell 스크립트를 실행하여 컴퓨터나 서버에 RSAT를 설치할 수 있습니다.

Windows 10용 RSAT 설치:

Add-WindowsCapability -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0 -Online

Windows Server(2008부터 2016까지 여러 버전)용 원격 서버 관리 도구 설치:

Install-WindowsFeature -Name "RSAT-AD-PowerShell" -IncludeAllSubFeature

컴퓨터에서 원격 서버 관리 도구 기능을 설치하면 Windows PowerShell용 Active Directory 모듈도 설치됩니다.

PowerShell 필터에 Filter 매개변수 사용하기

PowerShell 필터는 표준 Windows PowerShell 표현식 구문을 사용합니다. 이 방법은 일반적으로 Active Directory 검색 필터 구문이라고 합니다.

이 필터는 Filter 매개변수와 함께 사용됩니다.

필터 내에서는 다양한 AD 객체 속성을 연산자를 사용하여 비교합니다. 예를 들어, Get-ADUser 명령은 Name 속성을 반환합니다.

그래서, 특정 이름과 일치하는 모든 사용자를 찾고 싶다면 다음과 같이 사용해야 합니다:

Get-ADUser -Filter "Name -eq 'John'"

속성 이름은 LDAP 이름 또는 Active Directory cmdlet로 반환된 속성의 정Canonical 이름일 수 있습니다.

속성 값은 일반적으로 작은따옴표 또는 큰따옴표로 감싸져 있습니다. 허용되는 유일한 와일드카드는 별표 *입니다.

위에서 볼 수 있듯이 필터는 큰따옴표로 둘러싸여 있지만, John은 작은따옴표로 감싸져 있습니다.

PowerShell에서 LDAP 필터에 -LDAPFilter 매개변수 사용하기

경량 디렉터리 액세스 프로토콜, 즉 LDAP은 디렉터리 데이터를 액세스하고 수정하기 위한 공급업체 중립 프로토콜입니다.

디렉터리라는 단어를 들으면 전화번호부를 떠올릴 수 있지만, 이는 Active Directory의 맥락에서 훨씬 더 많은 것을 의미합니다.

AD에 저장되고 접근 가능한 다양한 객체 유형이 있으며, LDAP 프로토콜이 이 데이터를 안전하게 보호하는 기능을 합니다. AD는 다양한 데이터 유형을 유지할 수 있으므로, 응용 프로그램과 사용자는 이 디렉터리를 쉽게 쿼리할 수 있어야 합니다.

Active Directory는 경량 디렉터리 액세스 프로토콜인 LDAP을 구현합니다. cmdlet과 함께 -LDAPFilter 매개변수를 사용하면 Active Directory 사용자 및 컴퓨터에서 생성된 LDAP 필터를 사용할 수 있습니다.

LDAP 검색 필터의 구문은 RFC 번호 4515에 정의되어 있습니다. 각 필터 규칙은 괄호 ()로 둘러싸여 있습니다.

다음은 Active Directory 그룹 필터를 사용하여 자신만의 필터를 만들기 위한 기본 예시입니다.

  • 이름(CN)이 Department인 모든 그룹입니다.
`'(cn=Department)'
  • 이름이 Department이고 설명이 Prod인 모든 그룹입니다.
'(&(cn=Department)(description=Prod))'
  • 이름이 Department 또는 Share Access인 모든 그룹입니다.
'(|(cn=Professional Services Department)(cn=Share Access))'
  • 설명이 Prod가 아닌 모든 그룹입니다. 설명 필드가 전혀 없는 그룹도 포함됩니다.
'(!(description=Prod))'
'(!(description=Prod))'
  • 설명이 Prod이지만 이름이 Department가 아닌 모든 그룹입니다.
'(&(description=Prod)(!(cn=Department)))'
'(&(description=Prod)(!(cn=Department)))'
  • 설명이 \\fileserver1\share인 모든 그룹입니다.
'(description=\5c\5cfileserver1\5cshare)'

{{CODE_BLOCK_9}}

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn