Преобразуем timestamp в нормальное время | Windows для системных администраторов

Преобразуем 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 от устаревших записей.

Еще записи по теме: Active Directory
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

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

Оставить комментарий
  1. Alex | 21.12.2011

    Почему то ругается в 2007 экселе на фрмулу =IF(A1>0, DATE(1601,1,1) +A1 /600000000/1440,»»)

    Ответить
  2. itpro | 21.12.2011

    Поправил формулу в статье на =IF(A1>0; DATE(1601;1; 1) +A1 /600000000/1440;" "), вроде работает

    Ответить
  3. Дмитрий | 12.02.2013

    эжта формула неправильная
    правильная такая:
    =ЕСЛИ(A1>0; A1/(8,64*10^11) — 109205;»»)

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00105 sec