Преобразуем timestamp в нормальное время

Многим администраторам Active Directory периодически приходится обращаться к тем или иным полям учетных объектов домена, содержащих метку времени (timestamp). Обычно такая задача возникает, когда нужно определить время последнего входа пользователя в домен, или последней регистрации компьютера в Active Directory. Эта информация содержится в поле Lastlogontimestamp .

Все бы хорошо, но проблема заключается в том, что формат времени, в котором хранится метка времени – UTC. Т.е. вместо привычной даты и времени вы увидите нечто следующее:

129639007827858663

Естественно, чтобы сразу понять какая это дата, нужно обладать определенными навыками и феноменальными вычислительными способностями головного мозга.

Однако выход есть и для простых системных администраторов, лично я использую следующие три методики:

1) Можно воспользоваться оснасткой adsiedit.msc , обновленной в Windows 7, которая автоматически преобразует UTC время в нормальную дату, однако это время скопировать не удастся, т.к. при редактировании оно опять будет в неудобоваримом формате. Преобразуем Lastlogontimestamp в нормальное время

2) Для преобразования значения Lastlogontimestamp в нормальный формат даты, можно воспользоваться утилитой w32tm.exe (мы уже пользовались этой командой, когда говорили о том, как с помощью w32tm настроить синхронизацию с внешним NTP сервером )

Синтаксис ее таков:

w32tm /ntte (lastLogon attribute value)

Например:

C:>w32tm /ntte 129639007827858663

Вернет:
150045 03:33:02.7858663 — 24.10.2011 9:33:02
Узнаем значение Lastlogontimestamp с помощью w32tm
3) В случае необходимости массового преобразования значений Lastlogontimestamp из формата UTC, можно воспользоваться Excel. Формула преобразования будет выглядеть так

=IF(A1>0; DATE(1601;1; 1) +A1 /600000000/1440;" ")

, где A1 – ячейка, содержащая Timestamp

Мне лично нравится преобразование Lastlogontimestamp в нормальное время с помощью Excel, а в сочетании с методикой извлечения информации из Active Directory прямо в Excel , узнать время последнего входа в систему всех пользователей (компьютеров) домена стало еще проще, тем самым можно периодически очищать базу AD от устаревших записей.

EnglishRussianUkrainian