42687
Goto Top

Meldung bei hinzufügen einer Datei in den Ordner come

Ich habe auf meinem Server Ordner mit dem name come z.b. \\server\come_%username% dies benutze ich zum Dateiaustausch zwischen den Benutzern, da nicht jeder Benutzer dem anderen in den Eigenen Dateien vorwerken kann. Also fügt der Benutzer1 einfach die Datei in das come verzeichnis von Benutzer2 also dann in \\server\come_Benutzer2 ein. Nun bräuchte ich eine script oder etwas anderes, was eine Meldung auf den Bildschirm gibt, sobald eine neue Datei in das come Verzeichnis eingeht. Danke für eure Hilfe.

Content-Key: 62299

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

Printed on: April 24, 2024 at 19:04 o'clock

Member: macadmin
macadmin Jun 25, 2007 at 21:02:26 (UTC)
Goto Top
Hi!

An was für eine Script Sprache hast Du gedacht.
Welche art von Benachrichtigung ?

Mit PHP könnte es was werden.
Member: bastla
bastla Jun 25, 2007 at 21:29:22 (UTC)
Goto Top
Hallo Peter161!

Basierend auf http://www.microsoft.com/technet/scriptcenter/resources/qanda/feb07/hey ... könnte es etwa so gehen:
strLW = "N:"  
strUserFolder = """" & strLW & "\\\\"""  
strComputer = "."  
Set objShell = CreateObject("Wscript.Shell")  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _  
        & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _  
            & "TargetInstance.GroupComponent= " _  
                & "'Win32_Directory.Name=" & strUserFolder & "'")  

Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    strNewFile = objLatestEvent.TargetInstance.PartComponent
    arrNewFile = Split(strNewFile, "=")  
    strFileName = arrNewFile(1)
    strFileName = Replace(strFileName, "\\", "\")  
    strFileName = Replace(strFileName, Chr(34), "")  
    MsgBox strFileName, vbExclamation, "Neue Datei ..."  
Loop
Da das Script clientseitig läuft, ist Voraussetzung, dass die Freigabe "\\server\come_%username%" auf einen Laufwerksbuchstaben, im Beispiel oben "N:" (siehe erste Zeile), gemapped wurde.

Es wird alle 10 Sekunden (siehe "WITHIN 10") geprüft, ob im angegebenen Laufwerk eine Datei (nicht Ordner) neu erstellt wurde und gegebenen Falls in einer Messagebox darauf hingewiesen.

Das Script läuft in einer Endlosschleife, sollte aber beim Abmelden / Herunterfahren problemlos beendet werden. Im Register "Prozesse" des Task-Managers ist es als "wscript.exe" zu finden (und zu beenden).

Zum Starten könntest Du es (oder eine Verknüpfung damit) im "Autostart" des Users platzieren.

Grüße
bastla
Mitglied: 42687
42687 Jun 26, 2007 at 12:14:01 (UTC)
Goto Top
ich habe es probiert, im Editor eingefügt und als wscript.exe gespeichert, das war doch so richtig, oder??? Dann habe ich es ausprobiert, erstens kommt keine Meldung und 2. kommt beim versuch zu schließen keine Rückmeldung Danke trozdem schonmal
Member: bastla
bastla Jun 26, 2007 at 12:51:50 (UTC)
Goto Top
Hallo Peter161!

Speichern musst Du mit Typ ".vbs", etwa "CheckFolder.vbs" - "wscript.exe" ist der Interpreter, der das Script ausführt (und deswegen im Taskmanager aufscheint).

Grüße
bastla
Mitglied: 42687
42687 Jun 26, 2007 at 13:37:02 (UTC)
Goto Top
hallo, danke erst einmal für die hilfe, jetzt geht es. Noch eine Frage: geht es das diese Fenster im Hintergrund ist oder gar nicht, weil es nervig ist das immer diese Fenster da ist. zumindesten auf der Taskleiste, aber das nervt auch
Member: bastla
bastla Jun 26, 2007 at 14:55:44 (UTC)
Goto Top
Hallo Peter161!

Verwende zum Starten des eigentlichen Scripts (im Beispiel "C:\Scripts\CheckFolder.vbs") dieses weitere VBScript:
R = WScript.CreateObject("WScript.Shell").Run("C:\Scripts\CheckFolder.vbs", 0, False)  

Grüße
bastla
Mitglied: 42687
42687 Jun 26, 2007 at 15:12:27 (UTC)
Goto Top
Hallo, danke für deine schnelle Hilfe! Damit ist der Fall erledigt!