Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

PowerShell을 사용해 휴면 사용자 계정을 비활성화하는 방법

PowerShell을 사용해 휴면 사용자 계정을 비활성화하는 방법

Mar 17, 2023

휴면 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
      
PowerShell output for inactive 'Guest' and 'krbtgt' accounts, both showing 'Enabled: False' and 'PasswordNeverExpires: True'.

위 명령은 모든 비활성 계정을 반환합니다. 결과를 특정 기간으로 좁히려면 –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
      
Image

결과는 지정한 필드로도 정렬할 수 있습니다. 이 예에서는 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)로 계정을 이동하거나, 계정을 삭제할 수 있습니다.

이제 아래 설문에 의견을 남길 시간입니다. 정답은 하나뿐이라는 점을 기억하세요!

공유하기

더 알아보기

저자 소개

Asset Not Found

Russell Smith

IT 컨설턴트

관리 및 보안 기술을 전문으로 하는 IT 컨설턴트이자 저자입니다. Russell은 IT 분야에서 15년 이상의 경력을 보유하고 있으며, Windows 보안에 관한 책을 집필했고 Microsoft의 Official Academic Course (MOAC) 시리즈를 위한 저술에 공동 저자로 참여했습니다.