Files
adlockerinfo/README.md
2025-09-15 13:39:33 +09:00

3.8 KiB

AD 계정 잠금 해제 툴 (AD Account Unlocker)

Active Directory(AD) 환경에서 잠긴 사용자 계정을 관리하기 위한 PowerShell 기반 GUI 툴. 잠긴 계정 목록 조회, 잠금 해제, 잠금 출처 추적 기능을 제공한다.

주요 기능

  • 잠긴 AD 계정 목록 조회: 도메인 내 잠긴 모든 사용자 계정 목록 실시간 조회.
  • 간편한 계정 잠금 해제: 선택한 사용자의 계정 잠금을 버튼 클릭으로 해제.
  • 계정 잠금 출처 추적: 계정 잠금을 유발한 컴퓨터(IP 또는 이름)를 추적하여 원인 파악 지원.
  • 사용자 검색: 표시 이름, 로그온 ID 등으로 전체 AD 사용자 검색 기능 제공.
  • 직관적인 다크 모드 GUI: 관리자 편의를 위한 다크 테마 인터페이스.
  • 실시간 작업 로그: 모든 작업의 성공 및 실패 여부를 로그 창에 실시간 표시.

사용 전제 조건

  1. Active Directory 모듈: 스크립트 실행 컴퓨터에 ActiveDirectory PowerShell 모듈 설치 필요. (RSAT의 일부)
  2. 실행 권한:
    • AD 사용자 조회 및 계정 잠금 해제 권한.
    • 도메인 컨트롤러(DC)의 보안 이벤트 로그(Event ID 4740, 4625) 원격 조회 권한.
  3. 실행 환경: 도메인에 가입된 Windows PC.
  4. .NET Framework: .NET Framework 4.5 이상 필요. (최신 Windows에 기본 설치됨)

사용법

방법 1: PowerShell 스크립트(.ps1) 직접 실행

  1. AccountUnlocker.ps1 스크립트 파일을 PC에 저장.
  2. PowerShell을 관리자 권한으로 실행.
  3. 필요 시 PowerShell 실행 정책 변경: Set-ExecutionPolicy RemoteSigned -Scope Process
  4. 스크립트가 있는 경로로 이동 후 아래와 같이 실행.
    .\AccountUnlocker.ps1
    

방법 2: 실행 파일(.exe)로 패키징

PS2EXE 모듈을 사용하여 스크립트를 단일 실행 파일로 변환 가능.

1단계: PS2EXE 모듈 설치 (최초 1회)

관리자 권한 PowerShell에서 아래 명령어로 PS2EXE 설치.

Install-Module -Name PS2EXE

2단계: 스크립트 패키징

스크립트 경로에서 아래 명령어로 .exe 파일 생성.

Invoke-PS2EXE -InputFile ".\AccountUnlocker.ps1" -OutputFile ".\ADLockUser.exe" -noConsole -title "AD 계정 잠 금 해제 툴" -product "AD Management Tools" -company "TigErJin" -requireAdmin
  • -noConsole: 콘솔 창 없이 GUI만 실행.
  • -title, -product, -company: 파일 속성 정보 지정.
  • -requireAdmin: 실행 시 관리자 권한 자동 요구.

3단계: 프로그램 실행

생성된 ADLockUser.exe 파일 실행.

스크립트 주요 로직 설명

Get-LockedADAccounts

  • 도메인의 PDC(Primary Domain Controller) 에뮬레이터에 쿼리하여 가장 정확한 잠긴 계정 목록을 가져온다.
  • Search-ADAccount -LockedOut으로 잠긴 계정을 찾고 Get-ADUser로 상세 정보(표시 이름, 마지막 로그온 등)를 추가 조회.

Unlock-ADUserAccount

  • 선택된 계정의 SamAccountName을 받아 PDC를 대상으로 Unlock-ADAccount cmdlet을 실행.
  • 성공/실패 여부를 반환하여 GUI에 로그를 기록.

Get-ADLockoutEvent (잠금 출처 추적)

이 기능은 2단계에 걸쳐 잠금 원인을 추적한다.

  1. 1단계 (Event ID 4740 조회): 모든 DC를 대상으로 보안 로그에서 Event ID 4740 (계정 잠김) 이벤트를 검색. 이를 통해 잠금 시간, 발생 DC, 호출자 컴퓨터 이름을 확인.

  2. 2단계 (Event ID 4625 조회): 4740 이벤트의 '호출자 컴퓨터 이름'이 명확하지 않을 경우, 해당 DC에서 잠금 직전의 Event ID 4625 (로그온 실패) 이벤트를 추가 검색. 이 로그의 네트워크 주소(IP) 정보를 통해 실제 인증 실패가 발생한 출처를 특정.