geneon
Goto Top

mail mit vbs

Hallo erstmal!

ich versuch hier ein vbScript zu schreiben das mir den ram und die Festplattenkapazität des pc's ausliest! Das funktioniert auch super nur soll wenn bestimmte werte erreicht sind eine mail geschickt werden!

hier das Script!

Computer = "Krakatoa"

msgbox computer,,"Ausgewählter Computer!"

strComputer = Computer
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colItems = objRefresher.AddEnum _
(objWMIService, "Win32_PerfFormattedData_PerfOS_Memory").objectSet
objRefresher.Refresh

For i = 1 to 1
For Each objItem in colItems
Wscript.Echo "Verfügbarer Ram in MB: " & objItem.AvailableMBytes
Wscript.Sleep 2000
objRefresher.Refresh
Next
Next

Set objWMIService = GetObject("winmgmts://" & Computer)

Set objLogicalDiskc = objWMIService.Get("Win32_LogicalDisk.DeviceID='c:'")
FreeSpacec = (objLogicalDiskc.FreeSpace / 1024 / 1024 / 1024)
FreeSpacec = round(FreeSpacec, 2)

Set objLogicalDiskd = objWMIService.Get("Win32_LogicalDisk.DeviceID='d:'")
FreeSpaced = (objLogicalDiskd.FreeSpace / 1024 / 1024 / 1024)
FreeSpaced = round(FreeSpaced, 2)

gb = " GB"
fs = "Free Space "
warningc = "warning! C:\ "
warningd = "warning! D:\ "

if FreeSpacec < 2.5 then
FreeSpacec = warningc & fs & FreeSpacec & gb
msgbox FreeSpacec,vbInformation, "Critical"
else
FreeSpacec = fs & FreeSpacec & gb
msgbox FreeSpacec,vbInformation, "Freier Speicherpaltz auf C:\"
end if

if FreeSpaced < 2.5 then
FreeSpaced = warningd & fs & FreeSpacec & gb
msgbox FreeSpaced,vbInformation, "Critical"
else
FreeSpaced = fs & FreesPaced & gb
msgbox FreeSpaced,vbInformation, "Freier Speicherplatz auf D:\"
end if

nun sollen die WErte FreeSpaced, FreeSpacec und objItem.AvailableMBytes als email verschickt werden!! ABER WIE??? bin am verzweifeln!

Danke im vorraus!

Content-Key: 53870

Url: https://administrator.de/contentid/53870

Printed on: April 23, 2024 at 09:04 o'clock

Member: Supaman
Supaman Mar 12, 2007 at 14:11:28 (UTC)
Goto Top
du könntest den mailtext mit blat versenden. ( www.blat.net )
Member: bastla
bastla Mar 12, 2007 at 15:02:29 (UTC)
Goto Top
Hallo geneon!

Dem Vorschlag von Supaman schließe ich mich an, wobei das Script dann natürlich etwas zu modifizieren wäre:
  • Falls es für mehrere Rechner verwendbar sein soll, bestimme den Computernamen mittels
Set WshNetwork = WScript.CreateObject("WScript.Network")  
Computer = WshNetwork.ComputerName
  • Ersetze "MsgBox"-Ausgaben durch "WScript.Echo" und fasse alle Ergebnisse oder "warnings" zu einer Zeile zusammen, also etwa
WScript.Echo FreeSpacec & " - " & FreeSpaced & " - " objItem.AvailableMBytes  
  • Beende das Script mit "WScript.Quit(1)" für den Fall, dass eine Mail verschickt werden muss und mit "WScript.Quit(0)" wenn alles ok ist.

  • Rufe das Script von der Commandline so auf:
cscript //nologo SpeicherCheck.vbs > Warnings.txt && goto :Weiter
echo Mail wird versandt ...
blat ...
:Weiter
echo Es geht weiter ...

Kurze Erklärung:
Das "WScript.Echo" unterscheidet zwischen Ausführung mit grafischer Oberfläche (zB per Doppelklick - dann wird eine MsgBox erstellt) und Aufruf über die Commandline - dann wird auf das Standardgerät (Bildschirm) ausgegeben, wobei diese Ausgabe auch in eine Datei umgeleitet werden kann (siehe Beispiel oben).


Für die Verwendung von "blat" gibt es auch im Forum eine Reihe von Beispielen, daher nur als Hinweis: Die Ausgabe des Scripts steht in der "Warnings.txt" und kann von dort in den Mail-Text übernommen werden.

Grüße
bastla

P.S.: Für mehr habe ich momentan leider nicht Zeit ...
Member: geneon
geneon Mar 13, 2007 at 06:59:25 (UTC)
Goto Top
Hey vielen herzlichen dank schoneinmal! ich werde blat gleich mal ausprobieren und mein quellcode auch modifiezieren! Herzlichen dank!
Member: geneon
geneon Mar 13, 2007 at 08:19:35 (UTC)
Goto Top
Danke hat super mit blat geklaptt! Vielen herlichen Dank!!!