Active Directory Sicherheit Teil 5: Clean-Up von AD Objekten
Teil 5 beschäftigt sich mit dem Clean-Up von AD Objekten. Oftmals werden von den Fachabteilungen Server und Service Accounts bestellt. In den seltensten Fällen bekommt die Administration allerdings mit, wenn diese nicht mehr benötigt werden. Daher sollte man regelmäßig Computer- und User-Objekte daraufhin analysieren, wann diese das letzte Mal verwendet wurden.
In den folgenden Zeilen findet ihr daher ein paar Befehle, um solche Objekte a) zu ermitteln und b) gleich zu löschen, wenn man mutig genug ist :-).
Computer Objekte
Ermitteln von Computer Objekten mit LastPasswordReset > 90 Tage (alternativ: LastLogonDate > 90 Tage) und Export in eine CSV:
# LastPasswordReset $Date = (Get-Date).AddDays(-90) Get-ADComputer -Filter {PasswordLastSet -lt $Date} -Properties PasswordLastSet | Select Name,PasswordLastSet | Sort PasswordLastSet | Export-Csv C:\Temp\ADComputer-90Days.csv # LastLogonDate $Date = (Get-Date).AddDays(-90) Get-ADComputer -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Select Name,LastLogonDate | Sort LastLogonDate | Export-Csv C:\Temp\ADComputer-90Days.csv
Ermitteln von Computer Objekten mit LastPasswortReset > 90 Tage (alternativ: LastLogonDate > 90 Tage) und automatisches Löschen der Computer Objekte:
# LastPasswordReset $Date = (Get-Date).AddDays(-90) Get-ADComputer -Filter {PasswordLastSet -lt $Date} -Properties PasswordLastSet | Remove-ADObject -Recursive -Verbose -Confirm:$false # LastLogonDate $Date = (Get-Date).AddDays(-90) Get-ADComputer -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Remove-ADObject -Recursive -Verbose -Confirm:$false
Ermitteln von Computer Objekten mit LastPasswortReset > 90 Tage (alternativ: LastLogonDate > 90 Tage), gefiltert auf eine bestimmte OU und Export in eine CSV:
# LastPasswordReset $Date = (Get-Date).AddDays(-90) Get-ADComputer -SearchBase "OU=ComputersOU,DC=lab,DC=local" -Filter {PasswordLastSet -lt $Date} -Properties PasswordLastSet | Select Name,PasswordLastSet | Sort PasswordLastSet | Export-Csv C:\Temp\ADComputer-90Days.csv # LastLogonDate $Date = (Get-Date).AddDays(-90) Get-ADComputer -SearchBase "OU=ComputersOU,DC=lab,DC=local" -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Select Name,LastLogonDate | Sort LastLogonDate | Export-Csv C:\Temp\ADComputer-90Days.csv
Ermitteln von Computer Objekten mit LastPasswortReset > 90 Tage (alternativ: LastLogonDate > 90 Tage), gefiltert auf eine bestimmte OU und automatisches Löschen der Computer Objekte:
# LastPasswordReset $Date = (Get-Date).AddDays(-90) Get-ADComputer -SearchBase "OU=ComputersOU,DC=lab,DC=local" -Filter {PasswordLastSet -lt $Date} -Properties PasswordLastSet | Remove-ADObject -Recursive -Verbose -Confirm:$false # LastLogonDate $Date = (Get-Date).AddDays(-90) Get-ADComputer -SearchBase "OU=ComputersOU,DC=lab,DC=local" -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Remove-ADObject -Recursive -Verbose -Confirm:$false
User Objekte
Ermitten von User Objekten mit LastLogonDate > 90 Tage und Export in eine CSV:
$Date = (Get-Date).AddDays(-90) Get-ADUser -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Select sAMAccountName,LastLogondate | Sort LastLogonDate | Export-Csv C:\Temp\ADUser-90Days.csv
Ermitten von User Objekten mit LastLogonDate > 90 Tage und automatischem Löschen der User Objekte:
$Date = (Get-Date).AddDays(-90) Get-ADUser -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Remove-ADObject -Recursive -Verbose -Confirm:$false
Ermitten von User Objekten mit LastLogonDate > 90 Tage, gefiltert auf eine bestimmte OU und Export in eine CSV:
$Date = (Get-Date).AddDays(-90) Get-ADUser -SearchBase "OU=UsersOU,DC=lab,DC=local" -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Select sAMAccountName,LastLogondate | Sort LastLogonDate
Ermitten von User Objekten mit LastLogonDate > 90 Tage, gefiltert auf eine bestimmte OU und automatisches Löschen der User Objekte:
$Date = (Get-Date).AddDays(-90) Get-ADUser -SearchBase "OU=UsersOU,DC=lab,DC=local" -Filter {LastLogonDate -lt $Date} -Properties LastLogonDate | Remove-ADObject -Recursive -Verbose -Confirm:$false