2018-01-03 14:43:27 -05:00

211 lines
4.5 KiB
Perl

#-----------------------------------------------------------
# winbackup.pl
#
# Change History
# 20120812 [fpi] % created from winver.pl
#
# References
#
# copyright 2012 M. DeGrazia, arizona4n6@gmail.com
#-----------------------------------------------------------
package winbackup;
use strict;
my %config = (hive => "Software",
osmask => 16,
hasShortDescr => 1,
hasDescr => 0,
hasRefs => 0,
version => 20120812);
sub getConfig{return %config}
sub getShortDescr {
return "Get Windows Backup";
}
sub getDescr{}
sub getRefs {}
sub getHive {return $config{hive};}
sub getVersion {return $config{version};}
my $VERSION = getVersion();
sub pluginmain {
my $class = shift;
my $hive = shift;
::logMsg("Launching winbackup v.".$VERSION);
::rptMsg("winbackup v.".$VERSION);
::rptMsg("(".getHive().") ".getShortDescr()."\n");
my $reg = Parse::Win32Registry->new($hive);
my $root_key = $reg->get_root_key;
my $key_path = "Microsoft\\Windows\\CurrentVersion\\WindowsBackup\\ScheduleParams\\TargetDevice";
my $key;
if ($key = $root_key->get_subkey($key_path)) {
::rptMsg($key_path);
::rptMsg("LastWrite Time ".gmtime($key->get_timestamp())." (UTC)");
::rptMsg("");
my $name;
eval {
$name = $key->get_value("PresentableName")->get_data();
};
if ($@) {
# ::rptMsg("PresentableName value not found.");
}
else {
::rptMsg(" PresentableName = ".$name);
}
my $uniquename;
eval {
$uniquename = $key->get_value("UniqueName")->get_data();
};
if ($@) {
# ::rptMsg("UniqueName value not found.");
}
else {
::rptMsg(" UniqueName = ".$uniquename);
}
my $devlabel;
eval {
$devlabel = $key->get_value("Label")->get_data();
};
if ($@) {
# ::rptMsg("Label value not found.");
}
else {
::rptMsg(" Label = ".$devlabel);
}
my $vendor;
eval {
$vendor = $key->get_value("DeviceVendor")->get_data();
};
if ($@) {
# ::rptMsg("DeviceVendor value not found.");
}
else {
::rptMsg(" DeviceVendor = ".$vendor);
}
my $deviceproduct;
eval {
$deviceproduct = $key->get_value("DeviceProduct")->get_data();
};
if ($@) {
# ::rptMsg("DeviceVendor value not found.");
}
else {
::rptMsg(" DeviceProduct = ".$deviceproduct);
}
my $deviceversion;
eval {
$deviceversion = $key->get_value("DeviceVersion")->get_data();
};
if ($@) {
# ::rptMsg("DeviceVendor value not found.");
}
else {
::rptMsg(" DeviceVersion = ".$deviceversion);
}
my $devserial;
eval {
$devserial = $key->get_value("DeviceSerial")->get_data();
};
if ($@) {
# ::rptMsg("DeviceSerial value not found.");
}
else {
::rptMsg(" DeviceSerial = ".$devserial);
}
}
else {
::rptMsg($key_path." not found.");
}
#status
::rptMsg("");
$key_path = "Microsoft\\Windows\\CurrentVersion\\WindowsBackup\\Status";
if ($key = $root_key->get_subkey($key_path)) {
# ::rptMsg("{name}");
::rptMsg($key_path);
::rptMsg("LastWrite Time ".gmtime($key->get_timestamp())." (UTC)");
::rptMsg("");
my $lastresulttime;
eval {
$lastresulttime = $key->get_value("LastResultTime")->get_data();
};
if ($@) {
# ::rptMsg("LastSuccess value not found.");
}
else {
my @vals = unpack("VV",$lastresulttime);
my $lrt = ::getTime($vals[0],$vals[1]);
::rptMsg(" LastResultTime = ".gmtime($lrt)." (UTC)");
}
my $lastsuccess;
eval {
$lastsuccess = $key->get_value("LastSuccess")->get_data();
};
if ($@) {
# ::rptMsg("LastSuccess value not found.");
}
else {
my @vals = unpack("VV",$lastsuccess);
my $ls = ::getTime($vals[0],$vals[1]);
::rptMsg(" LastSuccess = ".gmtime($ls)." (UTC)");
}
my $lasttarget;
eval {
$lasttarget = $key->get_value("LastResultTarget")->get_data();
};
if ($@) {
# ::rptMsg("LastResultTarget value not found.");
}
else {
::rptMsg(" LastResultTarget = ".$lasttarget);
}
my $LRTPrestName;
eval {
$LRTPrestName = $key->get_value("LastResultTargetPresentableName")->get_data();
};
if ($@) {
# ::rptMsg("LastResultTargetPresentableName value not found.");
}
else {
::rptMsg(" LastResultTargetPresentableName = ".$LRTPrestName);
}
my $LRTTargetLabel;
eval {
$LRTTargetLabel = $key->get_value("LastResultTargetLabel")->get_data();
};
if ($@) {
# ::rptMsg("LastResultTargetLabel value not found.");
}
else {
::rptMsg(" LastResultTargetLabel = ".$LRTTargetLabel);
}
}
else {
::rptMsg($key_path." not found.");
}
}
1;