über mich
mein motto

Visual C# 2008 - Das Videotraining von Lars Keller

followme

Get your 'feeds' on Follow me on Twitter Currently no podcasts available

recentcomments

Comment RSS

community

Community Leader / Insider Program VSTO Taskforce Just Community .NET Developer Group Braunschweig

Emailversand bei geringer Festplattenkapazität

23. April 2007 | Scripting 3

Nicki hat mich gefragt, ob ich eine Lösung für folgendes Problem hätte. Er wollte, dass ein regelmäßiger Task seine Festplattenkapazität abfragt und bei einer Unterschreitung eines Schwellwertes eine Warnung per Email verschickt wird.

Die Lösung des Problems besteht aus folgenden Punkten:

  1. einem VBS-Skript, welches die Festplattenkapazität abfragt und ggf. eine Warnmeldung generiert
  2. einer Batch-Datei, welche das VBS Skript aufruft und danach mit Blat ggf. eine Mail verschickt.
  3. dem SMTP Tool Blat.exe zum Verschicken der Email

Das VBS-Skript sieht folgendermaßen aus:

Option Explicit Dim objfs, drive, FreierSpeicher, message Set objfs = CreateObject("Scripting.FileSystemObject") Set Drive = objfs.GetDrive("C:\") FreierSpeicher = Drive.FreeSpace message = "Achtung die Festplatte ist bald voll!" ' 2000 = 2 GB If (FormatNumber(FreierSpeicher/1024^2,2) < 2000) then WScript.Echo message WScript.Quit(1) else 'WScript.Echo "test" WScript.Quit(0) end if

Bei dem Skript muss nur die Message und der Wert, ab wann eine Warnung verschickt werden soll, angepasst werden. In dem Beispiel oben wird eine Warnung generiert, wenn  2 GB (2000) unterschritten sind.

Die Batch-Datei, die die Email verschicken soll, sieht wie folgt aus:

@echo off rem Blat muss angepasst werden, die IP des SMTP Servers, so wie die richtige Emailadresse, Subject cscript //nologo festpl.vbs > mail.txt && goto exit blat -installSMTP localhost servername@domane.de blat mail.txt -to admin@domane.de -s "Festplattenkapazitaet Warnung" :exit echo "Es wurde keine Email verschickt"

Die Batch ruft das VBS Skript auf und erstellt die mail.txt. Das VBS Skript gibt 0 oder 1 zurück. Wenn es 0 zurück gibt, bedeutet das, dass keine Warnung verschickt werden muss und die Batch springt zum Exit Blog. Bei einer 1 erfolgt das Verschicken einer Email mit Blat.

Blat.exe ist ein Open Source Tool, mit dem man Emails verschicken kann. Evtl. fragt sich der eine oder andere Leser, warum ich das nicht direkt in dem VBS Skript erledigt habe. Da man aber nicht wissen kann, auf welchem Host-System das Skript laufen soll und welche Mail-Komponenten auf diesem zur Verfügung stehen (CDO etc.), benutze ich bei sowas gern Blat. Blat muss nur einmal konfiguriert werden, entweder macht man das einmal für das System oder es wird wie in der Batch beschrieben, bei jedem Aufruf konfiguriert.

In der Batch muss die IP des SMTP angegeben werden, die Email über die verschickt werden soll und der Adressat, an den die Warnung verschickt werden soll. Weitere Infos zu Blat findet man hier.

Batch & VBS: Festplattenkapazitaetencheck.zip (35,55 KB)

kick it on dotnet-kicks.de

Kommentare

23.04.2007 03:19:13 #

Hannes Preishuber | Antwort

geht auch einfacher mit cedonts bzw cdosys

http://www.devtrain.de/news.aspx?artnr=283

23.04.2007 04:36:40 #

Kai | Antwort

Kai

Hallo Lars,

warum verwendest du blat und nicht CDOSYS?

23.04.2007 06:15:35 #

Lars | Antwort

Lars

ich habe die Erfahrung gemacht, das unter Umständen CDOSYS nicht zur Verfügung steht, darum musste ich mal auf BLAT ausweichen und bin da hängen geblieben. Wink
Danke für Tipps!

Grüße
Lars

Kommentar schreiben


(Zeigt dein Gravatar icon)

biuquote
  • Kommentar
  • Live Vorschau
Loading