본문 바로가기
기술자료 (KB)/Active Directory (AD)

Active Directory 사용하지 않는 계정 확인 방법

by 이완주 2020. 3. 2.

https://www.youtube.com/watch?v=vApxUkSwWXM

[문의사항]

아래와 같이 컴퓨터 계정이 너무 많아 실제 사용하지 않는 컴퓨터 계정과 사용자 계정을 확인하고 싶습니다. 어떻게 할까요?

[문의답변]

Active Directory를 관리하다 보면 Computers 컨테이너에 많은 컴퓨터 계정이 생성되어 있는 것을 확인할 수 있습니다.

해당 컴퓨터 계정에 대하여 지금 사용하고 있는 계정인지 아니면 사용하지 않는 계정인지 확인해서 필요 없는 계정을 지우고 싶다면 우선 계정이 사용하고 있는지를 우선 확인해야합니다.

사용자 계정이나 컴퓨터 계정은 모두 로그온을 하게 됩니다. 저는 lastLogon 속성 값을 확인하여 90일 이전에 로그온한 계정은 사용하지 않는 것으로 판단하고 작업을 진행하려고 합니다.

 

Get-ADComputer -Filter * -Properties LastLogonDate | select Name, LastLogonDate

Get-ADUser -Filter * -Properties LastLogonDate | select Name, LastLogonDate

 

Export-Csv

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/export-csv?view=powershell-7

Get-ADUser -Filter * -Properties LastLogonDate | select Name, LastLogonDate | `

Export-Csv -Path .\userlastlogon.csv -NoTypeInformation -Encoding UTF8

 

` Powershell 줄이 길어 다음 줄을 연결할 때 grave accent, back quotes, 역 따옴표를 사용하면 됩니다.

 

위의 내용을 응용해서 만들어 봤습니다.

Clear-Host

$users = (Get-ADUser -Filter * -Properties *).SamAccountName

Foreach ($user in $users){

    $pls = (Get-ADUser -identity $user -Properties PasswordLastSet).PasswordLastSet

    $create = (Get-ADUser -identity $user -Properties whenCreated).whenCreated

    $lld = (Get-ADUser -identity $user -Properties LastLogonDate).LastLogonDate

    if ($pls) {

        $days = (New-TimeSpan -Start $pls -End $today).Days

        Write-Host "사용자 : $user, 계정 생성 시점 : $create , 마지막 로그인 : $lld, 패스워드 최근 변경 시점 : $pls, 패스워드 변경 : $days 일전"

    }

}

댓글