#!/usr/local/bin/perl use Mail::Mailer; $from = "*\@*.de"; $to1="*\ @*.de"; if  ( length( $ARGV[0] ) == 1 ) { print "Usage: perl scankba.pl \"name of computer\""; exit 0; } else { } print "Starte scankba.pl Using $ARGV[0]\n"; $ii = $ARGV[0]; if  ( $ii eq "*" ) { $ii = ''; } #öffne Log File zur Datensicherung open( LOG, ">>scankba2.log" ) || die "Konnte die Log-datei nicht öffnen!"; $ActualDate = `date /T`; $ActualTime = `Time /T`; $ActualDate = "$ActualDate $ActualTime"; print LOG "Start: $ActualDate"; open(VIEW1, "net view /DOMAIN |" ) || die "Fehler\n"; $jj = 0; while ( $domain[$jj] = ) { $jj = $jj + 1; } for ( $kk = 11; $kk < $jj -2; $kk++ ) { $domain[$kk] =~ tr/\n//d; $domain[$kk] =~ tr/ //d; print "\nDer Domain \"$domain[$kk]\" wird getestet\n"; # Finde alle Computer open( VIEW, "net view /DOMAIN:$domain[$kk] |" ) || die "Error\n"; $j = 0; while ( $line = ) { @comps = split ( / /, $line ); if ( substr( $comps[0], 0, 2 ) eq "\\\\" and grep( /$ii/, $comps[0] ) ) { print "\nDer Computer \"$comps[0]\" wird getestet\n"; print "---------------\n"; $LIST[$kk][$j][0] = substr( $comps[0], 2, length( $comps[0] ) - 2 ); open( VIEW2, "net view $comps[0]|") || die "Fehler\n"; $k =1; while ( $line2 = ) { @shares = split ( / /, $line2 ); if ( grep( /Platte/, $line2 ) or grep( /Disk/, $line2 ) ) { print "Die Freigabe \"$shares[0]\" wird ueberprueft\n"; open( COPY, "copy /Y liemich.txt $comps[0]\\$shares[0]\\ |" ) || die "Fehler\n"; $line3 = ; if ( grep( /1/, $line3 ) ) { #open(LOESCHEN), "del $comps[0]\\shares[0]}}liesmich.txt |")|| die "Fehler\n"; $LIST[$kk][$j][$k] = $shares[0]; print LOG "Auf dem $comps[0] gibt es eine Freigabe \"$shares[0]\", die verwaltet werden kann\n"; print "Auf dem $comps[0] gibt es eine Freigabe \"$shares[0]\", die verwaltet werden kann\n"; $k = $k +1; } } }     $j = $j +1 } } print LOG "Ende\n"; #Schließen der LOG-Datei close(LOG) || die "Konnte die Log-Datei nicht schließen: $!\n"; &SendInfoMail; sub SendInfoMail { $subject = "ScanErgebnis"; $body = "Die Liste der Freigaben, die verwaltet werden können.\n"; $j = 0; for ( $kk = 11; $kk < $jj - 2; $kk++ ) { while ( $LIST[$kk][$j][0] ne "" ) { $k = 1; if ( $j eq 0 ) {             $body = "$body\nComputer   |       Freigabe\n";             $body = "$body----------------------------------\n";               }            while ( $LIST[$kk][$j][$k][0] ne "" ) {                $body = "$body$LIST[$kk][$j][0] | $LIST[$kk][$j][$k]\n";             $k  = "$k + 1";            }            $j = $j + 1;        }    } if ( $body eq "Die Liste der Freigaben, die verwaltet werden können\n" ) {  #exit 1; }    $body="$body\nDer Test wurde am $ActualDate ausgeführt\n"; $type = "smtp"; $server = "rbmail"; my $mailer = Mail::Mailer->new( $type, Server => $server ) or die "Unable to create new mailer object:$!\n"; $mailer->open( { From => $from, To => [ $to1 ], subject => $subject } ) or die "Unable to populate mailer obeject:$!\n"; print $mailer $body; print $mailer $LIST; $mailer->close; } }