use Win32::TieRegistry( Delimiter=>"/" ); @servers = @ARGV; # Names of NT print servers $sdir = ("C:\\TEMP"); $output = ("$sdir\\printers.TXT"); open(OUTFILE, ">$output") || die ("cannot open output file ", $output, "\n"); print ("Looking for Printers.......please wait.\n"); foreach $pserver (@servers) # Performs a loop for each server name { $remoteKey = $Registry->{"//$pserver/LMachine/SYSTEM/CurrentControlSet/Control/Print/Printers/"} || die "Can't read the printer key on $pserver: $^E\n";; @printers = $remoteKey->SubKeyNames; foreach $printer (@printers) { &prtcheck } } sub prtcheck { $remoteKey = $Registry->{"//$pserver/LMachine/SYSTEM/CurrentControlSet/Control/Print/Printers/$printer/"} || die "Can't read the printer key on $pserver: $^E\n";; $driver = $remoteKey->GetValue("Printer Driver") || return(); print OUTFILE ("\\\\$pserver\\$printer\t$driver\n"); print ("\\\\$pserver\\$printer\t$driver\n"); }