| 123456789101112131415161718192021222324252627282930313233343536 |
- param(
- [hashtable]$GetADUserArgs=@{},
- $Where={$true}
- )
- if (-not $GetADUserArgs.Properties) {
- $GetADUserArgs["Properties"] = @(
- "mail",
- "lastLogon",
- "lastLogonTimestamp",
- "distinguishedName",
- "UserPrincipalName"
- )
- }
- if (-not $GetADUserArgs.Filter) {
- $GetADUserArgs["Filter"] = {Enabled -eq $true}
- }
- $GetADUserArgs | Format-Table | Out-Host
- $users = Get-ADUser @GetADUserArgs | Where-Object $Where | Sort-Object lastLogonTimestamp | Foreach-Object {
- [PSCustomObject]@{
- dn=$_.distinguishedName
- UserPrincipalName=$_.UserPrincipalName
- mail=$_.mail
- lastLogonTimestampStr=[datetime]::FromFileTimeUtc($_.lastLogonTimestamp)
- lastLogon=$_.lastLogon
- lastLogonTimestamp=$_.lastLogonTimestamp
- }
- } | Out-GridView -OutputMode Multiple
- $users | Foreach-Object {
- ([string]$_.dn) | Out-Host
- Disable-ADAccount -Identity ([string]$_.dn)
- }
|