Schrift
[thread]7093[/thread]

Share Abfrage mit E-Mail Report: Fehler, bei Reportausgabe....



<< >> 1 Eintrag, 1 Seite
Multikeule
 2005-07-01 10:06
#55873 #55873
User since
2005-07-01
1 Artikel
BenutzerIn
[default_avatar]
Hallochen, ich habe ein prignantes Problem...
ich habe ein Script geschrieben, welches in der Domäne alle Rechner aussließt, welche Freigaben diese besitzen.
Nachdem dies Passiert ist, wird ein Report über die Ergebnisse via E-Mail an die E-Mail Adresse geschickt.

Das Problem ist nun, dass ich zwar eine E-Mail bekomme, aber die gewünschten Ergebnisse nicht vorhanden sind!
Es ist bestimmt ein kleiner Fehler, der schnell behoben werden kann, aber ich fine diesen wie gesagt, leider nicht!!!

Kann mir vielleicht jemand helfen, weil ich pausenlos Druck von meinem Chef bekomme...

Danke Martin


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/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] = <VIEW1> ) {
$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 = <VIEW> ) {
@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 = <VIEW2> ) {
@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 = <COPY>;
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;
}
}


edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1120206821-->
<< >> 1 Eintrag, 1 Seite



View all threads created 2005-07-01 10:06.