Okay, I made it one step further. I had to convert the variable to a
VT_R8 variable. Now I can't seem to find any documentation on how this
relates to the date. I guess from here on out it's a Microsoft, not a
Perl question, but I'll post the code I have so far, because I know
others have run into this issue. At the end I printed out time so that
it was obvious that it was a different time format. Or maybe I just
have to pack() or unpack() it? Still researching...
########################################################
use strict;
use warnings;
no warnings qw(uninitialized);
use Win32::OLE qw(in);
use Win32::OLE::Variant;
use Tim::Date_Time;
my @dc = qw(dc1 dc2);
my %users;
foreach my $dc(@dc){
print "Checking $dc...\n\n";
my $ADUser = Win32::OLE->GetObject("LDAP://$dc/OU=Groups and
Users,OU=HQ,DC=domain,DC=com") || die;
foreach(in($ADUser)){
unless($_->{objectCategory} =~ /Group/i){
my $lastlogon =
Win32::OLE::Variant->new(VT_R8,$_->{lastLogon});
my $name = $_->{name};
print $lastlogon."\n";
$name =~ s/^CN=//;
push @{$users{$name}},$lastlogon;
}
}
}
open(OUTFILE,">lastlogon.csv") || die;
print "Finding last logon...\n";
foreach(sort keys %users){
my $name = $_;
print "$name => ";
my $lastlogon;
foreach my $logon(@{$users{$_}}){
print "$logon,";
if($logon > $lastlogon){
$lastlogon = $logon;
}
}
print "($lastlogon)\n";
$lastlogon = (Date_Time::SimpleDT($lastlogon))[0];
print OUTFILE "$name,$lastlogon\n";
}
print time;
close OUTFILE;
#########################################################
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]