Recherche de site Web

Rechercher des objets informatiques inactifs avec LastLogonTimeStamp


De temps en temps, je me retrouve à réinventer ce morceau de code. Peut-être que vous aussi ?

Le problème que vous souhaitez résoudre est le suivant :

Comment identifier les objets informatiques obsolètes dans Active Directory afin d'effectuer des tâches de maintenance en retard ?

Il existe différentes propriétés qui peuvent vous aider à mettre la main sur ces informations. J'utilise généralement la propriété suivante :

lastLogonTimeStamp

Tous les systèmes d'exploitation Windows joints à un domaine ont un compte et un mot de passe dans Active Directory, tout comme les utilisateurs (sauf que le mot de passe du compte d'ordinateur comporte 120 caractères !).

Pour fonctionner correctement, les comptes informatiques effectuent une connexion au domaine, tout comme le font les utilisateurs.

Chaque fois qu'un utilisateur ou un ordinateur se connecte à Active Directory, le contrôleur de domaine d'authentification vérifie l'attribut lastLogonTimeStamp du compte. Si la valeur est antérieure à 14 jours, l'attribut lastLogonTimeStamp est mis à jour avec l'heure actuelle. La vérification de 14 jours vise à éviter de surcharger la réplication AD et est contrôlée par l'attribut ms-DS-Logon-Time-Sync-Interval dans le contexte de dénomination de domaine.

Si la valeur de l’attribut lastLogonTimeStamp est bien plus ancienne que 14 jours, cela indique que le compte n’est plus actif.

Obtenez tous les détails sur lastLogonTimeStamp ici.

Conversion de lastLogonTimeStamp de FileTime en DateTime

La valeur de lastLogonTimeStamp semblera un peu étrange à première vue. Voici mon anniversaire par exemple :

116961336000000000

Le format de l'attribut est une structure FileTime qui mesure le nombre d'intervalles de 100 nanosecondes depuis le 1er janvier 1601 (heure UTC).

Par pur embarras, je ne vais pas convertir la valeur ci-dessus pour vous ! Mais je vais vous montrer comment convertir vos propriétés lastLogonTimeStamp dans PowerShell. Très simple:

[datetime]::FromFileTime($Server.lastLogonTimeStamp)

Une fois la conversion en place, examinons un script pour obtenir la liste complète de votre Active Directory.

Comment obtenir tous les objets informatiques obsolètes d'Active Directory à l'aide de PowerShell

En utilisant les informations précédentes, une solution PowerShell pourrait ressembler à ceci :

$Servers = Get-ADComputer -Properties lastLogonTimeStamp -Filter * -ResultSetSize $null
"Name;DN;lastLogonTimeStamp" | Out-File ".\ServerList.txt"
ForEach ($Server In $Servers)
{
  $Output = $Server.Name + ";" + $Server.distinguishedName + ";" + [datetime]::FromFileTime($Server.lastLogonTimeStamp)
  Write-Host $Output
  $Output | Out-File ".\ServerList.txt" -Append
}

Cela vous donnera une belle liste séparée par des points-virgules avec le nom, le nom distingué et le lastLogonTimeStamp de tous les objets informatiques de votre Active Directory.

La liste est imprimée sur la console et également enregistrée dans un fichier txt.

Vous pouvez ensuite coller le résultat dans Excel et effectuer tout le tri et le filtrage souhaité.

Accélérez la gestion de votre Office 365

Si vous disposez d'un AD hybride avec intégration Office 365, vous pouvez grandement simplifier la gestion de vos utilisateurs, de vos boîtes aux lettres et de vos licences !

Installez l'extension Easy365Manager sur l'outil Utilisateurs et ordinateurs AD et gérez tout dans un outil bien connu et consolidé. Soyez le gars intelligent :

Articles connexes