вторник, 4 сентября 2012 г.

Преобразование Active Directory Time Integer в читабельный формат


1. Console (local time):
    C:\>w32tm.exe /ntte 129781739223786671

2. Excel(UTC):
    =A1/(8.64*10^11) – 109205 время в UTC

    =A1/(8.64*10^11) - 109205 + time(3,0,0) локальное время(UTC +3)
     (8.64*10^11) кол-во наносекунд в сутках, деленное на 100.

     109205 количество дней между 1601 и 1900 годами.

3. PowerShell (UTC / local):
    PS C:\>$lastlogontimestamp = “129781739223786671”
    PS C:\>[DateTime]::FromFileTimeutc($lastlogontimestamp)

    PS C:\>[DateTime]::FromFileTime($lastlogontimestamp)

4. Bash:
    UNIXTimeStamp = $((($WindowsTimeStamp/10000000)-11676009600))

    date -d "1970-01-01 $UNIXTimeStamp sec GMT"



PS
"LastLogon" и "LastLogonTimeStamp" синхронизируются промеж DC раз в 14 дней!

Для "accountExpires" используется другое магическое число: 11644473600 - число секунд с 31-12-1601.

Комментариев нет: