Из потоков в Powershell я нашел применение регулярным запросам по фильтрации неактивных аккаунтов в домене. Мой скрипт ниже.
Заблокированные учетки:
workflow Get-LockedOut {
Search-ADAccount -Server pdc.forza.com -UsersOnly -LockedOut | sort LastLogonDate | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\Monitoring\LockedUsers.csv" -Encoding UTF8
}
Отключенные учетки:
workflow Get-DisabledUsers {
Search-ADAccount -Server pdc.forza.com -UsersOnly -AccountDisabled | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\Monitoring\DisabledUsers.csv" -Encoding UTF8
}
Отключенные учетки готовые к переносу:
workflow Get-DisabledUsers2OLD {
Search-ADAccount -Server pdc.forza.com -UsersOnly -AccountDisabled | Where {$_.DistinguishedName -notlike "*OU=OLD_Users,OU=OLD,DC=forza,DC=com"} | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\Monitoring\DisabledUsers2OLD.csv" -Encoding UTF8
}
Неактивные учетки в течение месяца:
workflow Get-InactiveUsers30 {
$t30 = New-Timespan –Days 30
Search-ADAccount -Server pdc.forza.com –UsersOnly –AccountInactive –TimeSpan $t30 | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\Monitoring\InactiveUsers30a.csv" -Encoding UTF8
}
Неактивные учетки в течение года:
workflow get-InactiveUsers365 {
$t365 = New-Timespan –Days 365
Search-ADAccount -Server pdc.forza.com –UsersOnly –AccountInactive –TimeSpan $t365 | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\Monitoring\InactiveUsers365a.csv" -Encoding UTF8
}
Неактивные учетки в течение года готовые к переносу:
workflow get-InactiveUsers365noOld {
$t365 = New-Timespan –Days 365
Search-ADAccount -Server pdc.forza.com –UsersOnly –AccountInactive –TimeSpan $t365 | Where {$_.DistinguishedName -notlike "*OU=OLD_Users,OU=OLD,DC=forza,DC=com"} | sort Name | Select Name,LastLogonDate,DistinguishedName | Export-Csv "d:\Monitoring\InactiveUsers365b.csv" -Encoding UTF8
}
Неактивные учетки без единого входа:
workflow Get-InactiveUsersNoLogin {
Get-ADUser -Server pdc.forza.com -filter {(Enabled -eq 'False') -and (lastlogondate -notlike '*')} -properties CN,Enabled,DistinguishedName | Select CN,Enabled,DistinguishedName | Export-Csv "d:\Monitoring\InactiveUsersNoLogin.csv" -Encoding UTF8
}
Запускаем все запросы параллельно:
workflow get-ADReport {
parallel {
Get-LockedOut
Get-DisabledUsers
Get-DisabledUsers2OLD
Get-InactiveUsers30
Get-InactiveUsers365
Get-InactiveUsers365noOld
Get-InactiveUsersNoLogin
}
}
Get-ADReport
Готово!
No comments:
Post a Comment
А что вы думаете по этому поводу?