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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 53870
Url: https://administrator.de/contentid/53870
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo geneon!
Dem Vorschlag von Supaman schließe ich mich an, wobei das Script dann natürlich etwas zu modifizieren wäre:
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 ...
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 ...