Email Benachrichtigung wenn Festplattenplatz unterschritten wird
hallo,
ich suche ein einfaches, resourcenschonendes und kostenloses (auch kommerziell) Tool, welches den Speicherplatz auf den Festplatten überwacht und eine Email-Benachrichtigung verschickt, sobald eine vorher definierte Grenze unterschritten wird.
Ein Tool wie spiceworks ist zu aufwendig... und VB-Skripte sind auch nicht der Hit (aufgrund von Sicherheitsbeschränkungen bei manchen Kunden).
Alternativ wäre eine Batch-Datei möglich... Versand würde dann mittels bmail erfolgen.
Es muß als Dienst oder Task laufen können... ohne Interaktion mit dem Desktop.
Es muß auf den gängigen Windows-Systemen laufen (XP, 7, 2003 Server, 2008 Server).
Habt ihr eine Idee?
ich suche ein einfaches, resourcenschonendes und kostenloses (auch kommerziell) Tool, welches den Speicherplatz auf den Festplatten überwacht und eine Email-Benachrichtigung verschickt, sobald eine vorher definierte Grenze unterschritten wird.
Ein Tool wie spiceworks ist zu aufwendig... und VB-Skripte sind auch nicht der Hit (aufgrund von Sicherheitsbeschränkungen bei manchen Kunden).
Alternativ wäre eine Batch-Datei möglich... Versand würde dann mittels bmail erfolgen.
Es muß als Dienst oder Task laufen können... ohne Interaktion mit dem Desktop.
Es muß auf den gängigen Windows-Systemen laufen (XP, 7, 2003 Server, 2008 Server).
Habt ihr eine Idee?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 168419
Url: https://administrator.de/forum/email-benachrichtigung-wenn-festplattenplatz-unterschritten-wird-168419.html
Ausgedruckt am: 24.12.2024 um 16:12 Uhr
11 Kommentare
Neuester Kommentar
Hallöchen,
hast du schon mal über WMI nachgedacht?
Auch wenn ein VBScript hier meine erste Wahl wäre, ist es mit Batch oder Powershell auch möglich, Eine WMI-Abfrage zu starten.
Je nach Auftreten eines Events in den Logs, in dem Fall das Unterschreiten eines gewissen Festplattenplatzes, lässt du dir eine E-Mail senden.
Auf die gleiche Art und Weise lässt sich auch der freie Platz abfragen, so kannst du selber definieren, ab wann du eine E-Mail bekommst.
Gruß
Dominique
hast du schon mal über WMI nachgedacht?
Auch wenn ein VBScript hier meine erste Wahl wäre, ist es mit Batch oder Powershell auch möglich, Eine WMI-Abfrage zu starten.
Je nach Auftreten eines Events in den Logs, in dem Fall das Unterschreiten eines gewissen Festplattenplatzes, lässt du dir eine E-Mail senden.
Auf die gleiche Art und Weise lässt sich auch der freie Platz abfragen, so kannst du selber definieren, ab wann du eine E-Mail bekommst.
Gruß
Dominique
Auf Server-Betriebssystem liefert Microsoft ein solches "Tool" mit. Nennt sich "Kontingentverwaltung".
Für Clients macht das imho keinen Sinn, dort legt man keine Daten in den Mengen ab, wie auf einem Server. Wenn du es dennoch überwachen willst, würd ich die Überwachung vom Server aus machen, sonst wird das schnell unübersichtlich.
Cheers,
jsysde
Für Clients macht das imho keinen Sinn, dort legt man keine Daten in den Mengen ab, wie auf einem Server. Wenn du es dennoch überwachen willst, würd ich die Überwachung vom Server aus machen, sonst wird das schnell unübersichtlich.
Cheers,
jsysde
moin,
was hat denn jetzt die KontingentVerwaltung mit dem Freien HDD-Platz zu tun?
5 Wiederherstellungspunkte und die Kontingentverwaltung zuckt gar net rum. - na so was!
fur knapp unter 2 GB reicht
Für Größer als 2 Gb gucks Du Hier, erst paar Tage her.
Gruß Phil
was hat denn jetzt die KontingentVerwaltung mit dem Freien HDD-Platz zu tun?
5 Wiederherstellungspunkte und die Kontingentverwaltung zuckt gar net rum. - na so was!
fur knapp unter 2 GB reicht
@echo off&setlocal
for /f "tokens=3" %%i in ('dir /ad /-c^|findstr /c:" Verzeichnis(se)"^|findstr /e /c:" Bytes frei"') do set "DirSize=%%i"
:: Maximum auf der Linken Vergleichsseite 2147483647 bytes
if %Dirsize% gtr 2147483647 goto :Mail
goto :eof
:Mail
::hier kommt dein Mailsendeding hin
Für Größer als 2 Gb gucks Du Hier, erst paar Tage her.
Gruß Phil
Wieder was dazu gelernt.
Werde ich mir gleich mal anschauen
Werde ich mir gleich mal anschauen
was hat denn jetzt die KontingentVerwaltung mit dem Freien HDD-Platz zu tun?
Ähh, du richtest dir für ne komplette Partition ein Kontingent ein und lässt dir bei weniger als n% freiem Platz ne Mail schicken?
Davon abgesehen: Afaik meckert jedes Windows-System, wenn auf einem Laufwerk "nur geringer Speicherplatz" zur Verfügung steht und verewigt das auch im Eventlog. Was man wiederum per Scheduler (Vista/7/2008/R2) oder eventtriggers (XP/2003/R2) abfangen könnte; letzteres kann man in Kombination mit blat auch als Mailbenachrichtigung aufbauen.
Cheers,
jsysde
Hallo @all,
ich denke auch, dass die Kontingentverwaltung ein geeignetes Mittel wäre. Auf XP ist sie schon vorhanden, auf meinem Windows 7 Ultimate auch, wie das mit den Home-Versionen aussieht weiß ich nicht, die Server-Betriebssysteme haben das bestimmt an Bord.
@pieh-ejdsch:
Batchskripte, die ständig im Hintergrund laufen, erzeugen eine hohe Prozessorlast und sind deshalb eher ungeeignet.
Man kann in der Kontingentverwaltung eine Obergrenze für einen User einstellen, wie viel Festplattenspeicher er benutzen darf und eine etwas niedriger liegende Grenze, ab deren Überschreitung ein Alarm ausgelöst wird.
In beiden Fällen wird eine Alarmmeldung erzeugt und ins Eventlog ein Eintrag geschrieben.
Und hier könnte man jetzt ein WMI-Feature nutzen, die permanenten Event Consumer, die einmalig über ein VBScript installiert werden müssen.
Zunächst wird ein EventConsumer erstellt, dann ein Filter und schließlich ein Binding zwischen diesen beiden.
WMI stellt mehrere vordefinierte EventConsumer zur Verfügung, der praktischste ist der
Im folgenden Script habe ich dafür
Das Script habe ich für einen anderen Anwendungsfall entwickelt, nämlich das Beenden des Sicherheitscenter-Dienstes unter XP. Das ganze ist aber eine Art allgemeines Framework zum Installieren von permanenten Event Consumern. Es müssen nur die Zeilen 13 bis 16 angepasst werden. Man muss also den Namen des NT-Eventlogs kennen, in dem die Events bzgl. Überschreiten der eingestellten Warngrenze bzw. Erreichen der Obergrenze eingetragen werden, sowie die EventID dieser Events. Aus dem String
Hier also erstmal der Installer für den Permanent EventConsumer. Das Script muss mit Adminrechten ausgeführt werden, aber wie gesagt nur einmalig.
Falls auf dem ausführenden System Outlook oder ein Exchange-Server installiert ist, kann das folgende Script, der Eventhandler, verwendet werden, um die EMail zu verschicken.
Das Script stammt von hier und wurde von mir angepasst. Erwähnenswert ist hier die Konvertierung des WMI-DateTime-Formats in eine lesbare Form im Unterprogramm
Der Eventhandler wird unter dem Benutzerkonto SYSTEM in Session 0 ausgeführt. Die Session 0 spielt unter Vista und Windows 7 eine Rolle, weil dort alle Anwenderprogramme und der Desktop in Session 1 laufen. Dadurch ist keine Benutzerinteraktion möglich, da von einem Prozessen in Session 0 nicht mit Prozessen in Session 1 kommuniziert werden kann. Es ist deshalb auch ratsam, normalen Benutzern den Zugriff auf die Scriptdatei über NTFS-Rechte zu verbieten.
Natürlich ist es möglich, Script Nr. 1 so umzustricken, dass statt
Genauere Informationen finden sich auf folgenden Seiten:
http://msdn.microsoft.com/en-us/library/aa392395%28v=VS.85%29.aspx
http://blogs.technet.com/b/heyscriptingguy/archive/2010/12/06/learn-how ...
http://www.codeproject.com/KB/system/PermEvtSubscriptionMOF.aspx
http://msdn.microsoft.com/en-us/library/aa394226%28v=vs.85%29.aspx
http://www.codeproject.com/KB/system/WQLByExample.aspx
Gruß
Friemler
ich denke auch, dass die Kontingentverwaltung ein geeignetes Mittel wäre. Auf XP ist sie schon vorhanden, auf meinem Windows 7 Ultimate auch, wie das mit den Home-Versionen aussieht weiß ich nicht, die Server-Betriebssysteme haben das bestimmt an Bord.
@pieh-ejdsch:
Batchskripte, die ständig im Hintergrund laufen, erzeugen eine hohe Prozessorlast und sind deshalb eher ungeeignet.
Man kann in der Kontingentverwaltung eine Obergrenze für einen User einstellen, wie viel Festplattenspeicher er benutzen darf und eine etwas niedriger liegende Grenze, ab deren Überschreitung ein Alarm ausgelöst wird.
In beiden Fällen wird eine Alarmmeldung erzeugt und ins Eventlog ein Eintrag geschrieben.
Und hier könnte man jetzt ein WMI-Feature nutzen, die permanenten Event Consumer, die einmalig über ein VBScript installiert werden müssen.
Zunächst wird ein EventConsumer erstellt, dann ein Filter und schließlich ein Binding zwischen diesen beiden.
WMI stellt mehrere vordefinierte EventConsumer zur Verfügung, der praktischste ist der
CommandLineEventConsumer
. Wenn das im Filter angegebene Ereignis eintritt (hier: In einem bestimmten Eventlog taucht ein bestimmter Event auf), kann der CommandLineEventConsumer
ein Programm starten.Im folgenden Script habe ich dafür
CSCRIPT.exe
, also den Windows Scripting Host für die Konsole genommen. Dem aufgerufenen Programm können Parameter übergeben werden. Das sind hier der Name eines VBScript, das sich im gleichen Verzeichnis wie der Installer befinden muss und auch dort verbleiben muss, sowie die Daten, die sich aus dem Eventlog-Eintrag gewinnen lassen.Das Script habe ich für einen anderen Anwendungsfall entwickelt, nämlich das Beenden des Sicherheitscenter-Dienstes unter XP. Das ganze ist aber eine Art allgemeines Framework zum Installieren von permanenten Event Consumern. Es müssen nur die Zeilen 13 bis 16 angepasst werden. Man muss also den Namen des NT-Eventlogs kennen, in dem die Events bzgl. Überschreiten der eingestellten Warngrenze bzw. Erreichen der Obergrenze eingetragen werden, sowie die EventID dieser Events. Aus dem String
strEventDescription
in Zeile 13 wird der Name der WMI-EventConsumer- und der WMI-Filterinstanz sowie der Dateiname des zu startenden VBScripts erzeugt. Das VBScript müsste in dem Fall SecurityCenterStoppedEventHandler.vbs
heißen. Das Pollingintervall in Zeile 16 gibt das Zeitintervall an, in dem das NT-Eventlog auf neu generierte Events abgefragt wird. Selbst bei einem Wert, wie hier, von einer Sekunde, erzeugt das nur eine geringe Prozessorlast.Hier also erstmal der Installer für den Permanent EventConsumer. Das Script muss mit Adminrechten ausgeführt werden, aber wie gesagt nur einmalig.
' ===========================================
' Run this script with administrative rights!
' ===========================================
'/////////////////////////////// Configure script's job ///////////////////////////////
'******************** Customize according to your specific needs **********************
'------------------ Set event description and job related variables -------------------
strEventDescription = "Security Center Stopped"
strEventLog = "Application"
strEventID = "2"
strPollingIntervall = "1"
'----------------------------- Set WMI Event Filter query -----------------------------
strEventFilterQuery = "SELECT * FROM __InstanceCreationEvent" _
& " WITHIN " & strPollingIntervall _
& " WHERE TargetInstance ISA 'Win32_NTLogEvent'" _
& " AND TargetInstance.LogFile='" & strEventLog & "'" _
& " AND TargetInstance.EventIdentifier='" & strEventID & "'"
'-------------- Set WMI Namespace where the monitored event will occure ---------------
strEventNamespace = "root\Cimv2"
'----------- Set parameters which should be passed to Event Handler script ------------
strEventHandlerParam = """" _
& "%TargetInstance.LogFile%" _
& """" _
& " " _
& """" _
& "%TargetInstance.RecordNumber%" _
& """" _
& " " _
& """" _
& "%TargetInstance.SourceName%" _
& """" _
& " " _
& """" _
& "%TargetInstance.EventIdentifier%" _
& """" _
& " " _
& """" _
& "%TargetInstance.EventCode%" _
& """" _
& " " _
& """" _
& "%TargetInstance.EventType%" _
& """" _
& " " _
& """" _
& "%TargetInstance.Type%" _
& """" _
& " " _
& """" _
& "%TargetInstance.Category%" _
& """" _
& " " _
& """" _
& "%TargetInstance.CategoryString%" _
& """" _
& " " _
& """" _
& "%TargetInstance.TimeGenerated%" _
& """" _
& " " _
& """" _
& "%TargetInstance.TimeWritten%" _
& """" _
& " " _
& """" _
& "%TargetInstance.ComputerName%" _
& """" _
& " " _
& """" _
& "%TargetInstance.User%" _
& """" _
& " " _
& """" _
& "%TargetInstance.Message%" _
& """"
'**************************************************************************************
'//////////////////////////////// Set script variables ////////////////////////////////
'- Set Event Handler path, quote it and prepare it and its working directory for WMI --
Set FSO = CreateObject("Scripting.FileSystemObject")
strEventHandlerWD = Replace(FSO.GetParentFolderName(WScript.ScriptFullName), "\", "\\")
strEventHandler = Replace(strEventDescription, " ", "") & "EventHandler.vbs"
strEventHandler = """" & strEventHandlerWD & "\\" & strEventHandler & """"
Set FSO = Nothing
'----------------------- Test for existing Event Handler script -----------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(Replace(Replace(strEventHandler, "\\", "\"), """", "")) Then
MsgBox "The Event Handler script " & vbCRLF _
& Replace(strEventHandler, "\\", "\") & vbCRLF _
& "does not exist. Please create it.", _
vbExclamation, _
"Missing Event Handler script"
End If
Set FSO = Nothing
'-------------------------- Build parameters for CScript.exe --------------------------
strCScriptParam = strEventHandler & " " & strEventHandlerParam
'---------------- Get path of Windows Directory and prepare it for WMI ----------------
Set WshShell = WScript.CreateObject("WScript.Shell")
strWinDir = Replace(WshShell.ExpandEnvironmentStrings("%SystemRoot%"), "\", "\\")
Set WshShell = Nothing
'---------------------- Set path of CScript.exe prepared for WMI ----------------------
setCScriptPath = strWinDir & "\\System32\\cscript.exe"
'////////////////////////// Install permanent Event Consumer //////////////////////////
'------- Get WMI Scripting API object (SWbemServices), Namespace: Subscription --------
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" _
& "\\" & strComputer & "\root\Subscription")
'------------------------------ Create the Event Filter -------------------------------
Set objFilterClass = objWMIService.Get("__EventFilter")
Set objFilter = objFilterClass.SpawnInstance_()
objFilter.Name = strEventDescription & " Event Filter"
objFilter.EventNamespace = strEventNamespace
objFilter.QueryLanguage = "WQL"
objFilter.Query = strEventFilterQuery
Set EventFilterPath = objFilter.Put_()
'----------------------- Create the Commandline Event Consumer ------------------------
Set objEventConsumerClass = objWMIService.Get("CommandLineEventConsumer")
Set objEventConsumer = objEventConsumerClass.SpawnInstance_()
objEventConsumer.Name = strEventDescription & " Commandline Event Consumer"
objEventConsumer.CommandLineTemplate = setCScriptPath & " " & strCScriptParam
objEventConsumer.ExecutablePath = setCScriptPath
objEventConsumer.WorkingDirectory = strEventHandlerWD
objEventConsumer.ShowWindowCommand = 0
Set CommandlineEventConsumerPath = objEventConsumer.Put_()
'------------------ Bind Event Filter to Commandline Event Consumer -------------------
Set objBindingClass = objWMIService.Get("__FilterToConsumerBinding")
Set objBinding = objBindingClass.SpawnInstance_()
objBinding.Filter = EventFilterPath
objBinding.Consumer = CommandlineEventConsumerPath
objBinding.Put_()
Falls auf dem ausführenden System Outlook oder ein Exchange-Server installiert ist, kann das folgende Script, der Eventhandler, verwendet werden, um die EMail zu verschicken.
Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory.
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).
Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication
Const cdoNTLM = 2 'NTLM
Set listArgs = WScript.Arguments
If listArgs.Count = 14 Then
strSenderName = "Your Name"
strSenderEMail = "YourEMailAddress@Provider.com"
strRecipientEMail = "RecipientEMailAddress@Provider.com"
strSMTPServer = "Your.SMTP.Server"
intSMTPPort = 465
strSMTPUserName = "YourSMTPUserName"
strSMTPPassWord = "YourSMTPPassword"
strSubject = "Ereignis aufgetreten"
strMailBody = "Logfile : " & listArgs(0) & vbCRLF & _
"RecordNo : " & listArgs(1) & vbCRLF & _
"Source : " & listArgs(2) & vbCRLF & _
"EventID : " & listArgs(3) & vbCRLF & _
"EventCode: " & listArgs(4) & vbCRLF & _
"EventType: " & listArgs(5) & " (" & listArgs(6) & ")" & vbCRLF & _
"Category : " & listArgs(7) & " (" & ConvertCategory(listArgs(8)) & ")" & vbCRLF & _
"GenTime : " & ConvertDateTime(listArgs(9)) & vbCRLF & _
"WriteTime: " & ConvertDateTime(listArgs(10)) & vbCRLF & _
"Computer : " & listArgs(11) & vbCRLF & _
"LogedUser: " & ConvertUser(listArgs(12)) & vbCRLF & _
"Message : " & listArgs(13) & vbCRLF
strAttachmentFile = ""
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = strSubject
objMessage.From = """" & strSenderName & """ <" & strSenderEMail & ">"
objMessage.To = strRecipientEMail
objMessage.TextBody = strMailBody
If strAttachmentFile <> "" Then
objMessage.AddAttachment strAttachmentFile
End If
'==This section provides the configuration information for the remote SMTP server.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTPServer
'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = strSMTPUserName
'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strSMTPPassWord
'Server port (typically 25 or 465 (SMTP over SSL))
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = intSMTPPort
'Use SSL for the connection (False or True)
Select Case intSMTPPort
Case 25 :
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
Case 465:
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End Select
'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
'==End remote SMTP server configuration section==
objMessage.Send
Set objMessage = Nothing
End If
Set listArgs = Nothing
WScript.Quit
Function ConvertCategory(strCategory)
If strCategory = "<null>" Then
ConvertCategory = "Keine"
Else
ConvertCategory = strCategory
End If
End Function
Function ConvertUser(strUserName)
If strUserName = "<null>" Then
ConvertUser = "Nicht zutreffend"
Else
ConvertUser = strUserName
End If
End Function
Function ConvertDateTime(strDateTime)
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
dateTime.Value = strDateTime
strResult = dateTime.GetVarDate(True)
Set dateTime = Nothing
ConvertDateTime = strResult
End Function
ConvertDateTime
.Der Eventhandler wird unter dem Benutzerkonto SYSTEM in Session 0 ausgeführt. Die Session 0 spielt unter Vista und Windows 7 eine Rolle, weil dort alle Anwenderprogramme und der Desktop in Session 1 laufen. Dadurch ist keine Benutzerinteraktion möglich, da von einem Prozessen in Session 0 nicht mit Prozessen in Session 1 kommuniziert werden kann. Es ist deshalb auch ratsam, normalen Benutzern den Zugriff auf die Scriptdatei über NTFS-Rechte zu verbieten.
Natürlich ist es möglich, Script Nr. 1 so umzustricken, dass statt
CSCRIPT.exe
die Konsole, also CMD
gestartet wird, um ein Batchfile auszuführen, in dem z.B. mit BLAT
die EMail verschickt wird. Dann läßt sich das ganze auch auf Systemen verwenden, auf denen der Windows Scripting Host aus Sicherheitsgründen deaktiviert ist. Um den Installer laufen zu lassen muss er natürlich einmalig kurz aktiviert werden.Genauere Informationen finden sich auf folgenden Seiten:
http://msdn.microsoft.com/en-us/library/aa392395%28v=VS.85%29.aspx
http://blogs.technet.com/b/heyscriptingguy/archive/2010/12/06/learn-how ...
http://www.codeproject.com/KB/system/PermEvtSubscriptionMOF.aspx
http://msdn.microsoft.com/en-us/library/aa394226%28v=vs.85%29.aspx
http://www.codeproject.com/KB/system/WQLByExample.aspx
Gruß
Friemler
Hallo eccos01,
Gruß
Friemler
Zitat von @eccos01:
2.das VB-Skripte sagt mir gar nix... hab keinen Schimmer für was das jetzt genau ist.
Eben dafür:2.das VB-Skripte sagt mir gar nix... hab keinen Schimmer für was das jetzt genau ist.
6. Wie kan ich denn aneinen Eintrag im Ereignisprotokoll ein Event (Auslösen eienr Email) hängen ?
Du musst es halt ein bisschen anpassen. Außerdem ist mein Posting lang, klar, aber wenn Du es liest, weißt Du bescheid.Zitat von @Friemler:
Wenn das im Filter angegebene Ereignis eintritt (hier: In einem bestimmten Eventlog taucht ein bestimmter Event auf), kann der
Wenn das im Filter angegebene Ereignis eintritt (hier: In einem bestimmten Eventlog taucht ein bestimmter Event auf), kann der
CommandLineEventConsumer
ein Programm starten.4. Was hat die Kontingentverwaltung (die den Platzverbrauch eines Users beschränkt) mit dem freien Platz auf dem Gesamtsystem zu tun?
Das hat jsysde schon in diesem Posting beantwortet.5. Läßt sich die Warnung des Betriebssystems bzgl. "geringem Speicherplatz" konfigurieren? Wirkt sich das nicht nur auf die Systemplatte aus?
Wenn Du das noch selbst herausfindest, hast Du die Lösung so gut wie. Ich kann dazu leider nichts sagen.Gruß
Friemler