FILETIME・LDAP タイムスタンプ変換の使い方

18 桁の数値の読み方・特別な値・よくある質問・根拠

English

▶ FILETIME・LDAP タイムスタンプ変換を使う

使い方

  1. 18 桁の数か「pwdLastSet : 134…」の行を入れると日時が出ます。
  2. 0・無期限・負の値には、属性名から意味を添えます。
  3. 日時を選ぶと、FILETIME と LDAP フィルターの例が出ます。
  4. Get-ADUser や ldifde の出力を貼ると、まとめて表にします。
読める形式
形式中身
FILETIME(LDAP の Integer8)1343471220000000001601-01-01 00:00 UTC からの 100 ナノ秒の数。pwdLastSet・lastLogon・lastLogonTimestamp・accountExpires・badPasswordTime・lockoutTime など
16 進0x01DD2D4D7C4C800064 ビットの値。最上位ビットが立つ値は負(2 の補数)
期間(負の値)-36288000000000maxPwdAge・minPwdAge・lockoutDuration・lockOutObservationWindow。この例は 42 日
一般化時刻20260924083000.0ZwhenCreated・whenChanged など。末尾 Z は UTC
Unix 秒・ミリ秒17587026001970-01-01 UTC からの秒(10 桁)・ミリ秒(13 桁)
.NET DateTime.Ticks6390000000000000000001-01-01 からの 100 ナノ秒の数。FILETIME との差は 504911232000000000

「自動」は 10〜11 桁を Unix 秒、12〜14 桁を Unix ミリ秒、それ以外を FILETIME として読みます。FILETIME だと 2200 年より後になる数には、.NET の Ticks としての読み方も添えます。

特別な値(0・9223372036854775807・負の値)

accountExpires の 0 と 9223372036854775807 は無期限、pwdLastSet の 0 は「次回ログオン時にパスワード変更が必要」です。maxPwdAge などの負の値は期間です。

特別な値の一覧
属性意味
accountExpires9223372036854775807(0x7FFFFFFFFFFFFFFF)無期限。アカウント作成時の既定値
accountExpires0無期限。一度設定した期限を外したとき
pwdLastSet0次回ログオン時にパスワード変更が必要(「パスワードを無期限にする」が無いとき)
pwdLastSet-1(書き込み時)「次回ログオン時の変更」を外す
lastLogon・lastLogonTimestamp0記録なし
lockoutTime0ロックアウトされていない
msDS-UserPasswordExpiryTimeComputed9223372036854775807パスワードが期限切れにならない(無期限の設定・スマートカード必須・コンピューター/信頼アカウント・最大有効期間が無期限)
msDS-UserPasswordExpiryTimeComputed0pwdLastSet が 0 か未設定
maxPwdAge-9223372036854775808(0x8000000000000000)最大有効期間が無期限

パスワードの有効期限そのものは msDS-UserPasswordExpiryTimeComputed に入っています(細かいパスワードポリシーも反映)。lastLogon は DC ごとの値で、ほかの DC に複製されません。

よくある質問

pwdLastSet や lastLogonTimestamp の 18 桁を日付に変換するには?
1601 年 1 月 1 日(UTC)からの 100 ナノ秒単位の数なので、このツールに貼るか、PowerShell の [datetime]::FromFileTimeUtc(値)、または w32tm /ntte 値 で変換します。値は UTC なので、日本時間はその 9 時間後です。
lastLogonTimestamp が最終ログオンの日付とずれるのはなぜ?
前の値が「今 − msDS-LogonTimeSyncInterval(既定 14 日)」より古いときだけ書き換わるため、9〜14 日ほど遅れることがあります。正確な最終ログオンは、DC ごとに記録される lastLogon を全 DC で比べます。
accountExpires の 9223372036854775807 や 0 は何の意味?
どちらも無期限で、作成時の既定が 9223372036854775807、期限を外すと 0 になります。日付が入っているとき、ADUC はその 1 日前を「次の日の終わり」として表示します。
maxPwdAge や lockoutDuration がマイナスなのはなぜ?
日時ではなく期間で、100 ナノ秒単位の負の数で持つ決まりです(-36288000000000 は 42 日)。パスワードの期限は pwdLastSet に maxPwdAge の絶対値を足した日時です。
Excel で FILETIME を日付に変換するには?
値が A1 なら =A1/864000000000-109205 が UTC の日時で、日本時間は +9/24 を足します。Excel は 15 桁までなので、1 秒未満は正確ではありません。

根拠と確認日

根拠: Microsoft Learn(Active Directory Schema ほか)・[MS-ADTS]・[MS-SAMR]。最終確認日 2026-09-24。

原文へのリンク

ご利用上の注意・データの扱い

ご要望・不具合の報告(Google フォーム):いただいた内容をもとに直します。お返事はしていません。

サイト全体の運営者情報・免責事項はこちら、プライバシーポリシーはこちらです(すべてのツールで共通)。

更新履歴