Bir NTFS bölümünün ne zaman oluşturulduğunu belirlemek mümkün müdür?


16

Bir sürücünün başlatıldığında veya bir NTFS bölümünün ne zaman oluşturulduğunu belirlemenin çok yararlı olacağı bir istemcimiz var. Bir yerde zaman damgası değeri var mı? Herkes herhangi bir tavsiye döken olabilir, büyük mutluluk duyacağız.

Teşekkürler!

-slashp


Sadece bir fikir ama bir tarih / saat almak için birim UUID hesaplamasını tersine çevirebilir misiniz? (UUID'in nasıl oluşturulduğunu bilmiyorum, bu yüzden bulmak biraz araştırma gerektirecek ve hiç de mümkün olmayabilir.)
Chris Nava

1
@ChrisNava: NTFS'de kullanılan benzersiz kimlik 128 bit UUID değil rastgele 64 bit sayıdır. (Ayrıca, modern sistemler 1 zamana dayalı Uuıdlerin iki tür oluşturmaz; tip 4 rastgele bazlı Uuıdlerin gizlilik için tercih edilmektedir bu ise. Vardı tip 1 UUID'si olsa da, daha sonra ters bir hesaplama olmaz; zaman damgasıdır düz görüşte saklanır.)
user1686 11:12

Yanıtlar:


17

Evet. Hatta bir LAN üzerinden de yapabilirsiniz.

CIFS işlemi TRANS2_QFSINFOve bilgi seviyesi SMB_QUERY_FS_VOLUME_INFO. Bir birimin oluşturulma zamanını sorgulamak için yerel Windows NT API işlevi ZwQueryVolumeInformationFile(),FILE_FS_VOLUME_INFORMATIONFileFsVolumeInformation , bilgi sınıfı istendiğinde veri yapısı (neredeyse CIFS ile aynıdır, not) verir . Bu sorgunun çalışıp çalışmadığını sınamak, Microsoft'un sürücü geliştiricilerine sağladığı IFS sınamacının bir parçasıdır.

İlginçtir ki, hiç kimse bir birimi sorgulayan ve yaratma zaman damgasını insan tarafından okunabilir biçimde basan kullanışlı bir yardımcı program yazmamış gibi görünüyor. 1 Söyleyebildiğim kadarıyla alacağınız en yakın şey, SysInternals'ın procmonaracını kranklamak ve akan hacim bilgi sorgularını aramaktır. Belki de bunu okuyan biri, gelişmiş birvol komut .

Evet, hacim oluşturma zaman damgası olan düzgün başlatılmış ve sadece sıfır veya başka sabiti için ayarlanmamış. Kontrol etmedim, ancak bu bilgilerin depolanma yeri için eğitimli tahminim MFT girişinin $STANDARD_INFORMATIONniteliğidir $Volume. Diğer üç olası yeri düşünebilirim, ama bu en mantıklı yer.


1grawity 'in yarar sadece basit kullanımları da dahil olmak üzere biraz daha cilası, ihtiyacı FileTimeToSystemTime()ve GetTimeFormat()bunun olamaz Win32 kafalarında damgalarının kod çözme son kullanıcılar için kullanılabilir hale getirmek. ☺


Vay be, bu cevap için size +1 veriyorum çünkü tam olarak aradığım şey buydu. Ne yazık ki, ben sistem iç bilgisi olan bir Win32 API programcısı değilim ve hızlı bir çözüm arıyordu. Procmon ile iyi düşünülmüş. Yine de teşekkürler!!!
12'de

7
Gibi bir şey bu ? (çirkin kod uyarısı)
user1686 11:12

8

NTFS'ye yerleşik olarak bildiğim bir "cilt oluşturma tarihi" yoktur. Ancak, System Volume Informationbirimin kök dizinindeki dizinin oluşturulma tarihine bakarak oluşturma tarihine oldukça yakın bir şekilde yaklaşabilmelisiniz .


2
Bu bana çok iyi bir yaklaşım sağlıyor. Hızlı yanıtınız için teşekkür ederim! Şimdi yedeklerimize dahil olmayan sürücüyü kimin suçlayacağını biliyorum :).
12'de

0

Bu bir yerde ortaya çıkar. Bir Windows XP CD'sini başlatır ve kurtarma konsoluna erişirseniz, oradaki chkdsk sürümü, çalışmanın bitiminden sonra birim oluşturma tarihini yazdırır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.