휴면 Active Directory (AD) 사용자 계정은 예를 들어 HR이 IT에 퇴사 사실을 알리지 않아 퇴사한 지 몇 달이 지나도 전직 직원이 여전히 활성 계정을 보유하고 있는 경우, 또는 특정 목적을 위해 계정이 생성되었지만 이벤트(업무/사건) 이후 삭제되지 않은 경우처럼 조직에 보안 위험을 초래할 수 있습니다. 이러한 계정이 존재하는 이유가 무엇이든, Active Directory는 빠르게 통제 불능 상태가 될 수 있으며, 그 결과 시스템을 감사하기가 더 어려워지고 보안 수준도 낮아집니다.
PowerShell용 Active Directory 모듈
Active Directory용 PowerShell 모듈을 사용하면 시스템 관리자가 Active Directory를 쿼리하고, 그 결과 데이터를 사용해 보고서를 생성할 수 있습니다. PowerShell용 AD 모듈은 Windows Server 2012 도메인 컨트롤러에 기본적으로 설치되어 있으며, 또는 Remote Server Administration Tools (RSAT) for Windows 8.1 를 다운로드한 다음 아래 명령으로 모듈을 설치할 수도 있습니다.
로컬 관리자 권한으로 로그인한 다음 PowerShell 프롬프트를 열고 아래 코드를 입력한 뒤 ENTER를 눌러 PowerShell용 AD 모듈을 설치합니다:
Install-WindowsFeature RSAT-AD-PowerShell
Active Directory에서 사용하지 않는 계정 검색
Search-ADAccount cmdlet은 사용하지 않는 사용자 계정을 대상으로 Active Directory를 쉽게 쿼리하는 방법을 제공합니다:
Search-ADAccount –UsersOnly –AccountInactive
위 명령은 모든 비활성 계정을 반환합니다. 결과를 특정 기간으로 좁히려면 –TimeSpan 매개변수를 Search-ADAccount에 추가할 수 있습니다. 아래 예시에서는 변수가 –TimeSpan 매개변수의 값을 정의하며, 입력을 간단하게 하기 위해 New-Timespan cmdlet을 사용합니다:
$timespan = New-Timespan –Days 90 Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan
또는 –DateTime 매개변수를 지정하여 특정 날짜 이후로 비활성 상태였던 계정을 반환할 수 있습니다. 아래 명령에서 5월 이후로 활성화되지 않은(활동하지 않은) 계정이 반환됩니다:
Search-ADAccount –UsersOnly –AccountInactive -DateTime ‘5/20/2014’
계정에 대해 보다 사용자 친화적인 정보를 얻으려면, 결과를 Get-ADUser cmdlet으로 파이프한 다음 Select 를 사용해 출력에 표시할 열을 선택하세요:
Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Select Name,Department,Title,DistinguishedName
결과는 지정한 필드로도 정렬할 수 있습니다. 이 예에서는 LastLogOnDate 속성을 기준으로 정렬하며, 이 속성은 LastLogonTimestamp 에서 가져와 사람이 읽을 수 있는 형식으로 변환됩니다:
Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Sort LastLogOnDate | Select Name,Department,Title,DistinguishedName
참고할 만한 점은 LastLogOn 속성과 달리 LastLogonTimestamp 는 도메인 컨트롤러 간에 동기화되지만 9~14일 정도 이전 값일 수 있으므로, 결과를 처리할 때 이 점을 염두에 두어야 합니다.
출력을 더 간단하게 하고 비활성 사용자 수를 계산하는 또 다른 방법은 결과를 Measure cmdlet으로 파이프하는 것입니다:
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Measure
다른 PowerShell cmdlet과 마찬가지로 결과를 다음으로 파이프할 수 있습니다: Out-GridView 또는 결과를 Excel로 가져올 수 있도록 쉼표로 구분된 파일로 내보낼 수도 있습니다.
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Out-GridView
활성 상태가 아닌 계정 비활성화
원하는 결과 집합을 얻었다면, 남은 작업은 결과를 다음 Disable-ADAccount cmdlet에 파이프하여 계정을 비활성화하는 것입니다:
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Disable-ADAccount
Netwrix Auditor 는 지원되는 모든 Windows 버전에서 비활성 사용자 계정을 감지하고 비활성화하는 기능을 포함합니다. 또한 결과가 제품의 데이터베이스, 보고 및 알림 기능에 통합되므로, 추가 스크립트를 별도로 실행하고 유지 관리할 필요가 없습니다. Netwrix Auditor 는 비활성 계정을 비활성화하고, 무작위 비밀번호를 설정하고, 지정된 조직 구성 단위(OU)로 계정을 이동하거나, 계정을 삭제할 수 있습니다.
이제 아래 설문에 의견을 남길 시간입니다. 정답은 하나뿐이라는 점을 기억하세요!
공유하기
더 알아보기
저자 소개
Russell Smith
IT 컨설턴트
관리 및 보안 기술을 전문으로 하는 IT 컨설턴트이자 저자입니다. Russell은 IT 분야에서 15년 이상의 경력을 보유하고 있으며, Windows 보안에 관한 책을 집필했고 Microsoft의 Official Academic Course (MOAC) 시리즈를 위한 저술에 공동 저자로 참여했습니다.