Главная

Friday, 23 July 2021

Применение потоков в Powershell.

Вcем привет.

Из потоков в 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

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