Qu'est-ce qu'un horodatage FILETIME/LDAP ?
Un FILETIME (également appelé horodatage LDAP ou Active Directory) est une valeur de 64 bits représentant le nombre d'intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). Il est largement utilisé dans les API Microsoft Windows, les métadonnées du système de fichiers NTFS, Active Directory et les attributs d'annuaire LDAP tels que 'whenCreated', 'pwdLastSet', 'accountExpires' et 'lastLogonTimestamp'. L'horodatage est stocké sous la forme d'un nombre décimal à 18 chiffres. Par exemple, 133855488000000000 représente le 1er janvier 2025 à 00:00:00 UTC. Contrairement aux horodatages Unix (qui comptent les secondes depuis 1970), FILETIME utilise une époque beaucoup plus ancienne et une résolution beaucoup plus fine (ticks de 100 nanosecondes).
Comment utiliser le convertisseur FILETIME
- 1Pour convertir FILETIME en date : saisissez la valeur à 18 chiffres dans le champ de saisie. L'outil affiche instantanément la date correspondante aux formats ISO 8601, UTC, heure locale et horodatage Unix.
- 2Pour convertir une date en FILETIME : passez à l'onglet 'Date to FILETIME', sélectionnez l'année, le mois, le jour, l'heure, la minute, la seconde et le fuseau horaire à l'aide des sélecteurs déroulants, puis lisez la valeur FILETIME générée.
- 3L'horloge en direct en haut affiche l'horodatage FILETIME et Unix actuel, mis à jour toutes les 10 secondes.
- 4Cliquez sur le bouton Copier à côté de n’importe quelle valeur pour la copier dans votre presse-papiers.
Cas d'utilisation courants
Dépannage d'Active Directory
Décodez les attributs AD tels que 'pwdLastSet', 'accountExpires', 'lastLogonTimestamp' et 'lockoutTime' pour comprendre quand les événements se sont produits.
Analyse du système de fichiers NTFS
Convertissez les horodatages des fichiers NTFS ($MFT records, $STANDARD_INFORMATION, $FILE_NAME) lors d'une analyse médico-légale ou d'une récupération de fichiers.
Développement d'API Windows
Déboguez les valeurs FILETIME renvoyées par les API Windows telles que GetFileTime(), GetSystemTimeAsFileTime() et FindFirstFile().
Interprétation des requêtes LDAP
Traduisez les horodatages à 18 chiffres des résultats de recherche LDAP en dates lisibles par l'homme à des fins de reporting et d'audit.
Questions fréquentes
Quelle est la différence entre FILETIME et l’horodatage Unix ?
Les horodatages Unix comptent les secondes depuis le 1er janvier 1970 (UTC). FILETIME compte des intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). Pour convertir : Unix_seconds = (FILETIME - 116444736000000000) / 10000000.
Comment puis-je obtenir le FILETIME actuel sous Windows ?
Dans PowerShell : [DateTime]::UtcNow.ToFileTimeUtc() renvoie le FILETIME actuel. Dans un fichier batch, vous pouvez utiliser PowerShell en ligne : powershell -c "[DateTime]::UtcNow.ToFileTimeUtc()". En C/C++, utilisez GetSystemTimeAsFileTime(). En C#, utilisez DateTime.UtcNow.ToFileTimeUtc().
Quelle est la date maximale qu'un FILETIME peut représenter ?
Le FILETIME maximum (2^63 - 1 = 9223372036854775807) correspond approximativement à l'année 30828. Cependant, la plupart des utilisations pratiques restent bien dans le siècle en cours.
Quelle est la valeur 'Never Expires' dans Active Directory ?
Les valeurs 0 et 9223372036854775807 (0x7FFFFFFFFFFFFFFF) signifient toutes deux 'never' ou 'not set' pour l'attribut accountExpires dans Active Directory. La valeur 0 signifie généralement que l'attribut n'a pas été défini.
Existe-t-il d'autres formats d'horodatage LDAP ?
Oui. Active Directory utilise également le format 'Generalized Time' (e.g., 20250101000000.0Z) pour des attributs tels que 'whenCreated' et 'whenChanged'. Il s'agit d'une chaîne de 18 caractères au format YYYYMMDDHHmmss.fZ, à ne pas confondre avec l'entier de 18 chiffres FILETIME.