#Domaine de l'active directory qui sera parcouru
$Domaine=(Get-WmiObject Win32_ComputerSystem).Domain
#Nombre de jours d'inactivé servant pour la suppression des ordinateurs
$DaysInactive = 200
#Nom du Fichier de sortie pour la liste des ordinateurs Inactifs
$FicInactiveComputers = "c:\temp\$($CDate)_$($Domaine)_InactiveComputers.txt"
#Nom du Fichier de sortie pour les DNS invalides
$FicInvalidDNS = "c:\temp\$($CDate)_$($Domaine)_DnsRecord.txt"
#Date
$CDate = Get-Date -format "yyyyMMdd"
$time = (Get-Date).Adddays(-($DaysInactive))
$InactiveComputers = Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties Name, OperatingSystem, SamAccountName, DistinguishedName, LastLogonDate | Format-Table -Property Name,DistinguishedName, LastLogonDate
#Liste des ordinateurs supprimés
$InactiveComputers > $FicInactiveComputers
#Suppression des ordinateurs dans l'AD
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} | Set-ADObject -ProtectedFromAccidentalDeletion:$false
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} | Remove-ADObject -Recursive
Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} | Remove-ADComputer
$InactiveList = Get-Content $FicInactiveComputers
$dnsrecords = Get-DnsServerResourceRecord -ZoneName $Domaine
foreach($ligne in $InactiveList){
$CarReference = $ligne.IndexOf(" ")
if ($CarReference -ne -1 ) {
$Colonne = $ligne.substring(0,$CarReference)
}
$deadDC = $dnsrecords | Where-Object {$_.HostName -eq $colonne}
#Suppression des entrées DNS
Remove-DnsServerResourceRecord -ZoneName $Domaine -RRType "A" -name $colonne
#Liste des entrées DNS supprimées
$out=$deadDC | Out-File -FilePath $FicInvalidDNS -Append
}
Aucun commentaire:
Enregistrer un commentaire