# Lists version, engine, and dat versions for Netshield servers listed in # specified infile to the specified outfile. # Usage checkdatall.pl [inputfile] [outputfile] # The input file should be a text file with one server per line # Simple Help can be obtained with or -? # Updated on 9.25.01 use strict; use Win32::TieRegistry; #define variables my ($dat,$engine,$ver,$infile,$outfile); if ($ARGV[0]){ if ($ARGV[0] eq '-?'){die "Usage checkdatall.pl [infile] [outfile]\n";} $ARGV[0]=~s/\\/\//g; $infile=$ARGV[0]; }else{ $infile='allservers.txt'; } if ($ARGV[1]){ $ARGV[1]=~s/\\/\//g; $outfile=$ARGV[1]; }else{ $outfile='checkdatall.log'; } open (IN,"<$infile") or die "Can't open file for read"; open (OUT,">$outfile") or die "Can't open file for write"; #Read the dat file version while (){ chomp; $Registry->Delimiter("/"); $ver=$Registry->{"//$_/HKEY_LOCAL_MACHINE/Software/Network Associates/TVD/NetShield NT/CurrentVersion//szProductVer"} or print OUT "Can\'t access registry on $_\n"; $dat=$Registry->{"//$_/HKEY_LOCAL_MACHINE/Software/Network Associates/TVD/NetShield NT/CurrentVersion//szVirDefVer"} or print OUT "Can\'t access registry on $_\n"; $engine=$Registry->{"//$_/HKEY_LOCAL_MACHINE/Software/Network Associates/TVD/NetShield NT/CurrentVersion//szEngineVer"} or print OUT "Can\'t access registry on $_\n"; print OUT "$_\tVersion:$ver\tEngine:$engine\tDat:$dat\n"; print "$_\tVersion:$ver\tEngine:$engine\tDat:$dat\n"; } close IN; close OUT;