Převést časové razítko na normální čas

Mnoho správců služby Active Directory musí pravidelně odkazovat na určitá pole objektů účetnictví domény, která obsahují časové razítko. Obvykle takový úkol vzniká, když potřebujete určit čas posledního přihlášení uživatele k doméně nebo poslední registraci počítače ve službě Active Directory. Tyto informace jsou obsaženy v poli.  Lastlogontimestamp.

Všechno by bylo v pořádku, ale problém je, že formát času, ve kterém je časová známka uložena, je UTC. I.e. místo obvyklého data a času uvidíte něco jako následující:

129639007827858663

Samozřejmě, abyste mohli okamžitě pochopit, jaké to je datum, musíte mít určité dovednosti a fenomenální výpočetní schopnosti mozku.

Existuje však cesta ven pro jednoduché správce systému, osobně používám následující tři metody:

1) Můžete použít snap adsiedit.msc, aktualizován v systému Windows 7, který automaticky převádí čas UTC na normální datum, tento čas však nelze zkopírovat, protože při úpravách bude opět v nestravitelném formátu.

2) Chcete-li převést hodnotu Lastlogontimestamp na normální formát data, můžete použít nástrojw32tm.exe (tento příkaz jsme již použili, když jsme hovořili o tom, jak použít w32tm ke konfiguraci synchronizace s externím serverem NTP)

Jeho syntaxe je následující:

w32tm / ntte (hodnota atributu lastLogon)

Například:

C: \> w32tm / ntte 129639007827858663

Vrátí se:
150045 03: 33: 02.7858663 - 10.24.2011 9:33:02

3) Pokud potřebujete hromadně převést hodnoty Lastlogontimestamp z UTC, můžete použít Excel. Vzorec převodu bude vypadat takto

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

, kde A1 je buňka obsahující časové razítko

Osobně se mi líbí převod Lastlogontimestampu do normálního času pomocí Excelu a v kombinaci s metodou extrahování informací z Active Directory přímo do Excelu bylo ještě snazší zjistit poslední čas přihlášení všech uživatelů (počítačů) domény, čímž se pravidelně vymaže AD databáze zastaralé záznamy.