Главная

Sunday, 2 June 2019

Мониторинг учетных записей в AD средствами Powershell.

Всем привет.

Еще раз пройдусь по мониторингу учетных записей  в AD средствами Powershell. Уже из своей практики использования.


# 1 Всі заблоковані користувачі (через пароль тощо)
Search-ADAccount -UsersOnly -LockedOut | sort LastLogonDate | Select Name,LastLogonDate,DistinguishedName | measure
Search-ADAccount -UsersOnly -LockedOut | sort LastLogonDate | Select Name,LastLogonDate,DistinguishedName

# 2 Всі відключені користувачі
Search-ADAccount -UsersOnly -AccountDisabled | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
Search-ADAccount -UsersOnly -AccountDisabled | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\AD\Monitoring!\DisabledUsers.csv" -Encoding UTF8
Get-ADUser -filter "Enabled -eq 'False'" | Select SamAccountName,LastLogonDate | sort SamAccountName | measure

# 2.1 Всі відключені користувачі в групі OLD_Users
Search-ADAccount -UsersOnly -AccountDisabled -Searchbase "OU=OLD_Users,OU=DW,DC=forza,DC=com" | sort Name | Select Name,LastLogonDate,DistinguishedName | measure

# 2.2 Всі відключені користувачі які НЕ в групі OLD_Users
Search-ADAccount -UsersOnly -AccountDisabled | Where {$_.DistinguishedName -notlike "*OU=OLD_Users,OU=DW,DC=forza,DC=com"} | measure

# 2.3 NoLogin anytime
Get-ADUser -filter {(lastlogondate -notlike '*')} -properties cn | Select CN | measure
Get-ADUser -filter {(lastlogondate -notlike '*')} -properties cn | Select CN | Export-Csv "d:\AD\Monitoring!\InactiveUsersNoLogin.csv" -Encoding UTF8

# 3 Неактивні користувачі протягом останніх 30 діб
$t = New-Timespan –Days 30
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | Where {$_.DistinguishedName -notlike "*OU=OLD_Users,OU=DW,DC=forza,DC=com"} | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\AD\Monitoring!\InactiveUsers30a.csv" -Encoding UTF8

# 4 Відключення Hеактивних користувачів 30 діб
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | Disable-ADAccount
Search-ADAccount –ComputersOnly –AccountInactive –TimeSpan $t | Disable-ADAccount



# 5 Неактивні користувачі протягом останніх 180 діб
$t = New-Timespan –Days 180
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\AD\Monitoring!\InactiveUsers180a.csv" -Encoding UTF8
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | Where {$_.DistinguishedName -notlike "*OU=OLD_Users,OU=DW,DC=forza,DC=com"} | sort Name | Select Name,SamAccountName,LastLogonDate,DistinguishedName | Export-Csv "d:\AD\Monitoring!\InactiveUsers180b.csv" -Encoding UTF8

# 6 Пересення неактивних аккаунтів до групи OLD_Users та OLD_РС
### хоча треба переносити всіх хто не в цій групі
$t = New-Timespan –Days 180
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | Move-ADObject -TargetPath "OU=OLD_Users,OU=DW,DC=forza,DC=com"
Search-ADAccount –ComputersOnly –AccountInactive –TimeSpan $t | sort Name | Select Name,LastLogonDate,DistinguishedName | Move-ADObject -TargetPath "OU=OLD_PC,OU=DW,DC=forza,DC=com"

$d = (Get-Date).AddDays(-365)
Get-ADUser -filter {(lastlogondate -lt $d) -or (lastlogondate -notlike '*')} -Searchbase "OU=OLD_Users,OU=DW,DC=forza,DC=com" -properties cn,lastlogondate | sort CN | Select CN,LastLogonDate | Export-Csv "d:\AD\Monitoring!\KillTheseUsers365a.csv" -Encoding UTF8

#від дати створення без єдиного входу
Get-ADUser -filter {(lastlogondate -notlike '*') -and (whencreated -ge $d)} -properties cn,whencreated,lastlogondate,DistinguishedName | sort CN | Select CN,WhenCreated,LastLogonDate,DistinguishedName


# 7.2 Видалення відключених аккаунтів ПК з групи OLD_PC та OLD_Users
Search-ADAccount -AccountDisabled -Searchbase "OU=OLD_PC,OU=DW,DC=forza,DC=com" –TimeSpan $t | Remove-ADComputer
Search-ADAccount -AccountDisabled -Searchbase "OU=OLD_Users,OU=DW,DC=forza,DC=com" –TimeSpan $t | Remove-ADUser

No comments:

Post a Comment

А что вы думаете по этому поводу?