Показать полную графическую версию : Как преобразовать TimeStamp (hex) из реестра в нормальную дату?
Morpheus
31-03-2012, 22:00
Всем привет!
Много где в реестре встречается такой параметр
"TimeStamp"=hex:da,07,0b,00,00,00,15,00,03,00,28,00,06,00,8c,02
или
"InstallTimeStamp"=hex:d9,07,07,00,02,00,0e,00,04,00,35,00,39,00,9a,02
понятно, что здесь должна быть дата со временем, но совершенно непонятно как её вытащить.
Кто умеет? :) Спасибо!
Foreigner
31-03-2012, 23:52
Morpheus, Что-то я не уверен, что там дата.
$key = 'HKCU:\Software\Microsoft\Internet Explorer\ApprovedExtensionsMigration'
[byte[]] $x = get-itemproperty $key | % { $_.timestamp }
$encode = new-object system.text.asciiencoding
$encode.getstring($x)
Morpheus
01-04-2012, 00:19
Foreigner, у меня в этом разделе 16-символьный timestamp:
"Timestamp"=hex:f6,c4,93,4f,99,a8,cc,01
он как раз конвертится без проблем по схеме (http://forum.script-coding.com/viewtopic.php?id=3326).
Из f6,c4,93,4f,99,a8,cc,01 получаем 01cca8994f93c4f6, конвертим в DEC, получаем 129663865705448690, затем получаем дату:
http://s019.radikal.ru/i616/1203/26/d9d980c117b7.jpg
Как видите, дата абсолютно правильная, она совпадает с датой установки системы.
Проблема конвертнуть 32-символьный timestamp.
$key = 'HKCU:\Software\Microsoft\Internet Explorer\ApprovedExtensionsMigration'
$timestamp = (get-itemproperty $key).timestamp
[DateTime]::FromFileTimeUTC([BitConverter]::ToInt64($timestamp, 0))
Morpheus
01-04-2012, 00:50
Kazun, спасибо! Для 16-символьных всё ок, а для длинных ерунда получается.
http://s019.radikal.ru/i640/1203/4e/d5b2883f2643t.jpg (http://s019.radikal.ru/i640/1203/4e/d5b2883f2643.jpg)
Проблема конвертнуть 32-символьный timestamp. »
Тут, главное, понять, как она в этих 16 байтах хранится. Я ничего вразумительного не нашёл.
Morpheus
01-04-2012, 01:20
Iska, аналогично.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.