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
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 일전"
}
}
댓글