Mit diesen beiden Beispiel-Skripts kann man die AD Accounts von z.B. externen Support Mitarbeitern nach X Zeit deaktivieren. Ich habe dazu einen Task eingesetzt, der jede Stunde läuft.
# 10 Stunden nach dem letzten Logon > Konto deaktivieren
$domain = “ndsedv.de”
$HoursInactive = 10
$time = (Get-Date).AddHours(-($HoursInactive))
Get-ADUser -Filter {LastLogon -lt $time -and enabled -eq $true} -Properties LastLogon -Server dc01 -SearchBase ” OU=User Accounts,OU=User,OU=ORG,DC=ndsedv,DC=de ” |
select-object samaccountname,@{Name=”LastLogon”; Expression={[DateTime]::FromFileTime($_.lastLogon).ToString(‘dd:mm:yyyy hh:mm:ss’)}} | export-csv C:\Temp\inactiveUser.csv -notypeinformation
Import-Csv “C:\Temp\inactiveUser.csv” | ForEach-Object { $samAccountName = $_.”samAccountName” Get-ADUser -Identity $samAccountName | Disable-ADAccount }