lundi 15 octobre 2018

Powershell : listing des objets ordinateur n'ayant pas donné signe de vie depuis un laps de temps

Dans la série "J'entretiens proprement mon ActiveDirectory", je vais vous proposer aujourd'hui un script vous permettant de lister dans un fichier CSV les objets Computer qui n'ont pas donné de signe de vie sur le domaine depuis un certain nombre de jours spécifié (par défaut dans ce script, 60).

Il est important de bien faire attention aux OU sur lesquelles nous souhaitons effectuer la recherche, afin d'éviter de supprimer des stations qui ne servent que ponctuellement ou qui ne sont positionnées sur le réseau que lors des campagnes de patchs par exemple. Il conviendra donc de modifier dans le script le paramètre SearchBase qui est passé lors de la requête ActiveDirectory.

$csvoutput = "$env:temp\orphan-computers.csv"
Write-Host "Orphan Computer objects listing script"
Write-Host "======================================"
Write-Host ""
Write-Host "This script will output to a file a list of Computer objects in the ActiveDirectory that haven't logged onto the domain for a specified number of days."
$nbdays = Read-Host "Number of days before considering a Computer object orphan ? (default: 60)"
if ($nbdays -eq "") { $nbdays = 60 }
if ($nbdays -is [int]) {
    $today = Get-Date
    $complist = Get-AdComputer -filter * -Properties LastLogonDate -SearchBase "OU=serveurs,DC=superdomaine,DC=local"
    foreach ($computer in $complist) {
        $lastlogondate = $computer.LastLogonDate
        $fqdn = $computer.DNSHostName
        if ($lastlogondate -eq $null) { Add-Content $csvoutput "$fqdn,'Object never logged on'" }
        elseif ($lastlogondate.AddDays($nbdays) -lt $today) {          
            Add-Content $csvoutput "$fqdn,$lastlogondate"
        }
    }
    Write-Host "All done. File is located in $env:temp."
    explorer $env:temp
}
else { Write-Host "Please input a numeric value. Bye" }

Les stations ont leur nom DNS et leur dernière date de communication avec le domaine de renseignées dans un fichier CSV écrit dans le répertoire des fichiers temporaires. Vous pouvez télécharger sur le serveur du blog la version commentée de ce script.

Aucun commentaire:

Enregistrer un commentaire