From: Charles Leeds Date: 2007-01-12T22:54:49+09:00 Subject: Re: Microsoft Timestamp (Active Directory) For just documentation purposes - here is some dirty sample code on how to get a Ruby DateTime from Active Directory: require 'win32ole' require 'date' # AD4Ruby require './ad4r/config.rb' # Import namespace for AD4R include ActiveDirectory myuser = User.find_by_logon('cll13291') highpart = myuser.ldap_object.__send__("Get", "lastLogon" ).HighPart lowpart = myuser.ldap_object.__send__("Get", "lastLogon" ).LowPart puts "HighPart: " + highpart.to_s puts "LowPart: " + lowpart.to_s intLogonTime = highpart * (2**32) + lowpart puts intLogonTime intLogonFloat = intLogonTime.to_f / (60 * 10000000 * 1440).to_f puts "%.9f" % intLogonFloat last_logon = intLogonFloat base = DateTime.new(1601,1,1,0,0,0) base += intLogonFloat p base p base.to_s # "2006-08-17T12:37:10Z" Charles Leeds wrote: > > How did you get the lastlogontimestamp attribute into integer format? > > Retrieving myuser.lastLogonTimestamp always gives me: > > # > > Which I have no idea how to deal with. > > Thanks, > > Charles Leeds > > Mikkel Bruun wrote: >> Amazing... >> >> Thanks a bunch >> >> Mikkel >> On Friday, August 18, 2006, at 3:03 AM, Berger, Daniel wrote: >> >>>> -----Original Message----- >>>> From: Mikkel Bruun [mailto:devlists-ruby-talk@devlists.com] >>>> Sent: Thursday, August 17, 2006 11:43 AM >>>> To: ruby-talk ML >>>> Subject: Microsoft Timestamp (Active Directory) >>>> >>>> >>>> Active Directory users contain an attribute called >>>> lastlogontimestamp... >>>> >>>> its in this format: >>>> 128002727440808261 >>>> >>>> How do I convert this to something more....nice??? >>>> >>> Leave it to Microsoft to come up with something this convoluted: >>> >>> http://www.microsoft.com/technet/scriptcenter/topics/win2003/lastlogon.m >>> >>> spx >>> >>> This seems to work: >>> >>> require 'date' >>> >>> last_logon = 128002727440808261 >>> >>> base = Date.new(1601, 1, 1) >>> base += last_logon / (60 * 10000000 * 1440) >>> >>> p base.to_s # "2006-08-17" >>> >>> Regards, >>> >>> Dan >>> >>> >>> This communication is the property of Qwest and may contain >>> confidential or >>> privileged information. Unauthorized use of this communication is >>> strictly >>> prohibited and may be unlawful. If you have received this >>> communication >>> in error, please immediately notify the sender by reply e-mail and >>> destroy >>> all copies of the communication and any attachments. >>> >>> >> >> >> Mikkel Bruun >> >> www.strongside.dk - Football Portal(DK) >> ting.minline.dk - Buy Old Stuff!(DK) >> >> >> >> > > > > >