Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateien überwachen

Frage Netzwerke

Mitglied: Hoffi

Hoffi (Level 1) - Jetzt verbinden

13.09.2007, aktualisiert 23.11.2007, 7541 Aufrufe, 4 Kommentare

Batch Datei ?

Hallo zusammen,

ich habe das Problem in unserem Netzwerk, das manche Dateien (Excle Mappen oder PDFs usw.) einfach gelöscht sind, und niemand will es gewesen sein, somit kann ich mindestens 3 mal täglich die Dateien über die Datensicherung wiederherstellen.

Nun habe ich mir ein altes Notebook (Windows XP SP2) eingerichtet und im Serverraum platziert. Jetz wollte ich gerne ein komplettes Netzlaufwerk "überwachen". Ich benötige hier kein riesen Tool oder so (hab auch schon manche getestet) sondern quasi bloß ein Logfile, das dann geschrieben wird, sobald sich eine Datei in diesem Verzeichnis ändert (also umbenannt, gelöscht, verschoben) wird.

Im Logfile sollte lediglich der Dateiname, Benutzername, Datum angezeigt werden.

Windows bringt zwar ein eigenes Tool mit, aber das geht bei uns nicht so toll (liegt auch unter anderem an unseren Server 2000).

Kennt jemand ein Batch Script, das dies bewerkstelligen kann?

Alternativ könnte ich das Notebook auch mit Linux ausstatten, falls es dort besser funktionieren sollte...

Bin für jeden Tip dankbar.

Grüße

Hoffi
Mitglied: Bitsqueezer
04.11.2007 um 02:25 Uhr
Hallo Hoffi,

da ich das gleiche Problem habe (Überwachung eines Ordners mit einfachsten Bordmitteln), habe ich mich mal an die Umsetzung in VBScript gemacht. Das folgende Skript kann in einem beliebigen Scheduler in entsprechend sinnvollen Abständen ausgeführt werden und sollte mit allen Windows-Versionen, die VBScript unterstützen, funktionieren. Das Skript generiert am Ende jeweils einen Alert für alle hinzugekommenen und einen für alle gelöschten Dateien seit dem letzten Aufruf. Der Benutzerkontext, unter dem das Skript ausgeführt wird, benötigt lediglich Schreibrechte auf C:\WINDOWS\Debug.

Gruß

Christian


01.
' Dateiüberwachung in einem Verzeichnis 
02.
' ************************************* 
03.
' V1.0  02.Nov.2007 
04.
' Letzte Änderung: 02.Nov.2007 
05.
06.
' Autor: Christian Coppes 
07.
' kann in SCOM oder anderen Schedulern (z.B. "Geplante Tasks") zur Überwachung von Verzeichnissen eingesetzt werden 
08.
09.
' Die Datei muß mit irgendeiner Art von Scheduler in regelmäßigen Abständen aufgerufen werden. 
10.
' Je nach Größe des Zielverzeichnisses sollte man die Zeit nicht zu kurz wählen, damit das Skript nicht 
11.
' läuft, während eine alte Instanz noch nicht fertig ist. 
12.
' Es empfiehlt sich, einen Wert von ca. 1 Minute nicht zu unterschreiten. 
13.
' Mit den Konstanten unten kann man die Parameter an eigene Bedürfnisse anpassen. 
14.
15.
' Funktionsweise: Per CMD-"dir"-Befehl wird der Inhalt des gewünschten Verzeichnisses 
16.
' unter Verwendung von FILEMASK abwechselnd in die Datei DIRFILE0 und DIRFILE1 eingetragen. 
17.
18.
' Zur Feststellung, welche Datei zuletzt verwendet wurde, dient die Datei SWITCHFILE0, die dann 
19.
' abwechselnd in SWITCHFILE1 umbenannt wird. 
20.
21.
' Es wird daraufhin festgestellt, welche die neuere DIRFILE ist, um die Änderung gegenüber der älteren 
22.
' zu protokollieren. 
23.
24.
' Die beiden DIRFILEs werden in jeweils ein Array eingelesen, die ältere Datei immer in "Zeile0", 
25.
' die neuere immer in "Zeile1". 
26.
27.
' Mit Hilfe des VBScript-Filter-Befehls wird dann Zeile für Zeile verglichen, welche Zeile in der älteren 
28.
' Datei nicht vorhanden ist und diese in das Array "Hinzu1" eingefügt. Umgekehrt wird dann der Vergleich 
29.
' durchgeführt, um Zeilen, die in der neueren Datei nicht mehr enthalten sind, in "Weg1" zu schreiben. 
30.
31.
' Zuletzt wird für beide Gruppen je ein Event im Application Event Log angelegt. Über die Konstanten kann 
32.
' man festlegen, ob auch die entfernten Dateien protokolliert werden und welche Art von Event dabei 
33.
' generiert werden soll. 
34.
35.
' Darüber hinaus wird nur ein Event generiert für alle hinzugekommenen und ein Event für alle gelöschten 
36.
' Dateien, um die Anzahl der Events nicht zu groß werden zu lassen. 
37.
38.
' Die Events können dann beispielsweise mit SCOM (Microsoft System Center Operations Manager) ausgewertet werden. 
39.
40.
' Folgende DOS-Batchdatei prüft ebenfalls auf Dateiunterschiede. 
41.
' Dies ist die VBS-Version, die ein wenig komfortabler ist. 
42.
43.
'@echo off 
44.
'if not exist Switch1.txt (if not exist Switch0.txt (echo 1 >Switch0.txt)) 
45.
'if exist Switch0.txt (set DirFile=Content0.txt) else (set DirFile=Content1.txt) 
46.
'dir Logs /b /o /a-d err*.log 1>%DirFile% 2>Null 
47.
'if exist Content0.txt (if exist Content1.txt (fc Content0.txt Content1.txt >Unterschied.log)) 
48.
'if exist Switch1.txt (ren Switch1.txt Switch0.txt) else (ren Switch0.txt Switch1.txt) 
49.
'echo On 
50.
 
51.
' Verzeichnis (absolut oder relativ zum Skriptpfad), in dem die Dateien protokolliert werden sollen 
52.
Const LOGDIR = "Z:\Public\Compare\Logs" 
53.
' Dateien, die gesucht werden sollen 
54.
Const FILEMASK = "err*.log" 
55.
' Art der verwendeten Logbucheinträge, 0 = Success, 1 = Error, 2 = Warning, 4 = Information 
56.
Const NEWEVENT = 1 
57.
Const DELEVENT = 2 
58.
 
59.
' Diese temporären Dateien werden für den Vergleich benötigt. 
60.
' Das Script muß in diesen Verzeichnissen Schreibrechte haben. 
61.
Const DIRFILE0 = "C:\Windows\Debug\Content0.txt" 
62.
Const DIRFILE1 = "C:\Windows\Debug\Content1.txt" 
63.
Const SWITCHFILE0 = "C:\Windows\Debug\Switch0.txt" 
64.
Const SWITCHFILE1 = "C:\Windows\Debug\Switch1.txt" 
65.
 
66.
' NewDel = 1: Alle Unterschiede protokollieren 
67.
' NewDel = 0: Nur neu hinzugekommene Dateien protokollieren 
68.
Const NewDel = 1 
69.
 
70.
Dim i, j, EventStr, AnzHinzu, AnzWeg 
71.
Dim Datei,SwitchFile, DirFile 
72.
Dim objFSO, objShell 
73.
 
74.
Dim Zeile0(), Zeile1() 
75.
Dim Hinzu, Hinzu1() 
76.
Dim Weg, Weg1() 
77.
Dim DummyFile 
78.
 
79.
Set objFSO   = CreateObject("Scripting.FileSystemObject") 
80.
Set objShell = CreateObject("WScript.Shell") 
81.
82.
' Wurde schon eine Switchdatei erstellt? 
83.
If ((Not objFSO.FileExists(SWITCHFILE0))  And _ 
84.
    (Not objFSO.FileExists(SWITCHFILE1))) Then 
85.
   ' Switch-Datei erzeugen 
86.
   Set SwitchFile=objFSO.OpenTextFile(SWITCHFILE0,2,true) 
87.
   SwitchFile.WriteLine "1"   ' Dummyinhalt 
88.
   SwitchFile.Close 
89.
End If 
90.
 
91.
' Schalterdatei prüfen und den Dateinamen für das Inhaltsverzeichnis 
92.
' entsprechend einstellen (abwechselndes Schreiben) 
93.
If objFSO.FileExists(SWITCHFILE0) Then 
94.
   DirFile=DIRFILE0 
95.
Else 
96.
   DirFile=DIRFILE1 
97.
End If 
98.
 
99.
' Alle Err-Dateien aus dem Ordner sortiert in eine der beiden Content- 
100.
' Dateien schreiben 
101.
objShell.Run("%windir%\system32\cmd.exe /c dir "+ LOGDIR +" /b /o /a-d " + FILEMASK + " 1>"+DirFile+" 2>Null") 
102.
 
103.
' Am Ende der Ausführung Schalter für den nächsten Durchlauf "umlegen" 
104.
If objFSO.FileExists(SWITCHFILE0) Then 
105.
   'Datei umbenennen 
106.
   objFSO.MoveFile SWITCHFILE0 , SWITCHFILE1 
107.
Else 
108.
   objFSO.MoveFile SWITCHFILE1 , SWITCHFILE0 
109.
End If 
110.
 
111.
' ***************************************************** 
112.
' Dateivergleich zwischen Content0.txt und Content1.txt 
113.
' ***************************************************** 
114.
 
115.
' In "Zeile0" immer die ältere Datei einlesen und 
116.
' in "Zeile1" immer die neuere 
117.
If DirFile = DIRFILE0 Then 
118.
   DirFileAlt = DIRFILE1 
119.
   DirFileNeu = DIRFILE0 
120.
Else 
121.
   DirFileAlt = DIRFILE0 
122.
   DirFileNeu = DIRFILE1 
123.
End If 
124.
 
125.
'DIRFILE0 zeilenweise lesen 
126.
Set DummyFile=objFSO.OpenTextFile(DirFileAlt,1,true) 
127.
i=0 
128.
Do until DummyFile.AtEndOfStream 
129.
  ReDim Preserve Zeile0(i) 
130.
  Zeile0(i)=DummyFile.ReadLine 
131.
  i=i+1 
132.
Loop 
133.
DummyFile.Close 
134.
Set DummyFile=Nothing 
135.
 
136.
'DIRFILE1 zeilenweise lesen 
137.
Set DummyFile=objFSO.OpenTextFile(DirFileNeu,1,true) 
138.
i=0 
139.
Do until DummyFile.AtEndOfStream 
140.
  ReDim Preserve Zeile1(i) 
141.
  Zeile1(i)=DummyFile.ReadLine 
142.
  i=i+1 
143.
Loop 
144.
DummyFile.Close 
145.
Set DummyFile=Nothing 
146.
 
147.
' Hinzugekommene Dateien in das Array "Hinzu1" schreiben 
148.
AnzHinzu=-1 
149.
For i = 0 To UBound(Zeile1) 
150.
   Hinzu = Filter(Zeile0,Zeile1(i),True) 
151.
   If UBound(Hinzu)=-1 Then 
152.
      AnzHinzu = AnzHinzu + 1 
153.
      ReDim Preserve Hinzu1(AnzHinzu) 
154.
      Hinzu1(AnzHinzu)=Zeile1(i) 
155.
   End If 
156.
Next 
157.
 
158.
' Entfernte Dateien in das Array "Weg1" schreiben 
159.
If NewDel = 1 then 
160.
	AnzWeg=-1 
161.
	For i = 0 To UBound(Zeile0) 
162.
	   Weg = Filter(Zeile1,Zeile0(i),True) 
163.
	   If UBound(Weg)=-1 Then 
164.
	      AnzWeg = AnzWeg + 1 
165.
	      ReDim Preserve Weg1(AnzWeg) 
166.
	      Weg1(AnzWeg)=Zeile0(i) 
167.
	   End If 
168.
	Next 
169.
End If 
170.
 
171.
If AnzHinzu > -1 Then 
172.
   ' Event für hinzugekommene Dateien in das Logbuch schreiben 
173.
   EventStr = "Neu hinzugekommene Dateien vom Typ "+FILEMASK+" :" + vbCrLF 
174.
   EventStr = EventStr + Join(Hinzu1,vbCrLf) 
175.
   objShell.LogEvent NEWEVENT, EventStr 
176.
   'WScript.Echo("EventHinzu: "+EventStr) 
177.
End If 
178.
 
179.
 
180.
If NewDel = 1 Then 
181.
   If AnzWeg > -1 Then 
182.
       EventStr = "Entfernte Dateien vom Typ "+FILEMASK+" :" + vbCrLF 
183.
	   EventStr = EventStr + Join(Weg1,vbCrLf) 
184.
       ' Event für entfernte Dateien in das Logbuch schreiben 
185.
	   objShell.LogEvent DELEVENT, EventStr 
186.
       'WScript.Echo("EventWeg: "+EventStr) 
187.
   End If 
188.
End If
Bitte warten ..
Mitglied: Hoffi
14.11.2007 um 13:18 Uhr
Hallo,

Danke für das Script, klappt bestens.

TOP...

Grüße

Hoffi
Bitte warten ..
Mitglied: therookie
23.11.2007 um 08:37 Uhr
Hallo,

ich habe das gleiche Problem mit den verschwundenen Dateien. Ich habe das Script hier zwar noch nicht getestet, aber geht das nicht ein bisschen an der Zielstellung vorbei?

Das Script zeigt das wichtigste doch gar nicht an, nämlich wenn Dateien gelöscht wurden, wer diese gelöscht hat.

Hast Du dafür schon ein Lösung, oder wie machst Du das jetzt?
Bitte warten ..
Mitglied: Bitsqueezer
23.11.2007 um 10:47 Uhr
Hallo,

Du kannst nur das überwachen, was auch irgendwo gespeichert wird. Das Script überprüft lediglich, welche Datei hinzugefügt oder gelöscht wurde und das Wann liegt zwischen der jeweiligen Ausführung des Skriptes.

Um festzustellen, wer etwas hinzugefügt oder gelöscht hat, kannst Du höchstens eine Überwachung per NTFS auf den Ordner hinzufügen. Ich habe mit der NTFS-Überwachung aber auch noch nicht gearbeitet und weiß nicht, ob das damit klappt.

Gruß

Christian
Bitte warten ..
Ähnliche Inhalte
Windows Server
Zugriff auf exe Datei überwachen
gelöst Frage von sardldbWindows Server2 Kommentare

Hallo Zusammen Ich habe lange gegoogelt und mir auch ProcessMonitor heruntergeladen und ausprobiert. Leider komme ich nicht auf mein ...

Batch & Shell
Verzeichniss überwachen Datei kopieren und umbenennen
gelöst Frage von fischle63Batch & Shell6 Kommentare

Hallo, Habe folgendes Problem: In einem Verzeichniss sind Dateien mit dem Suffix ".nd" enthalten. Bsp. "00000010.nd" Ich brauche eine ...

Erkennung und -Abwehr
Überwachen welche Dateien auf USB Stick-Festplatte kopiert werden
Frage von daniel.buchner77Erkennung und -Abwehr4 Kommentare

Hallo, ich suche nach einer Möglichkeit zu Protokollieren was ein User auf einen USB Stick/Festplatte kopiert hat. Grundsätzlich sind ...

Windows Server
Kopiervorgänge überwachen
Frage von john-doeWindows Server6 Kommentare

Hallo Zusammen Kennt jemand eine Software die Kopiervorgänge überwachen kann und bei einer größeren Datenbewegung Alarm schlägt. Die Software ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 3 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 6 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...