Mithilfe der Windows Powershell einen Ordner bzw. ein Verzeichnis auf Veränderungen überwachen

Mit diesem Skript kann man prüfen, ob gerade Dateien gelöscht, verändert oder umbenannt wurden

Grundlegendes

Oft ist es sinnvoll, dass man einen bestimmten Ordner oder eine bestimmte Netzwerkfreigabe auf Änderungen überwacht. Die Windows Powershell bietet hierzu ein sehr interessantes Objekt mit dem Namen FileSystemWatcher an. Hierzu lässt sich ein kleines Script implementieren, welches ständig einen Ordner auf Veränderungen beobachtet und mitprotokolliert, was gerade in diesem Ordner vor sich geht. Somit könnte man direkt auch live verfolgen, welche Daten dort gerade erzeugt, gelöscht oder verändert wurden.

Konfiguration des Scripts für die Überwachung

Zunächst im Script ist es wichtig, dass der zu überwachende Ordner auch existiert. Anschließend wird aus der Klasse daraus ein neues Objekt generiert, welches für die Überwachung des Ordners zuständig ist. Das Script beinhaltet eine While – Schleife, welche hier als Endlosschleife fungiert. Aus diesem Grund wird noch zusätzlich der Kommentar eingefügt, wie das Endlosscript abgebrochen werden kann. Mit der Methode “WaitForChanged” wird nun das Verzeichnis auf Veränderungen geprüft. Die komplette Beschreibung der Klasse bzw. des Objekts und dessen Methoden können direkt auf der Microsoft Seite nachgelesen werden. Das komplette basiert natürlich auf dem Dot.Net Framework.

# Das Verzeichnis muss natürlich existieren
# Über die Endlose While Schleife wird geprüft, ob es Änderungen am Verzeichnis gab.
$folder = ’l:\Projekte’
$timeout = 10

$FileSystemWatcher = New-Object System.IO.FileSystemWatcher $folder
Write-Host ”Press CTRL+C to abort monitoring $folder”
while ($true) {
 $result = $FileSystemWatcher.WaitForChanged(‘all’, $timeout)
 if ($result.TimedOut -eq $false)
 {

 Write-Warning (‘File {0} : {1}’ -f $result.ChangeType, $result.name)
 
 }
 }
Write-Host ’Monitoring aborted.’
Mit Der Windows PowerShell Einen Ordner überwachen
Mit Der Windows PowerShell Einen Ordner überwachen

Fazit

Damit ein Skript überhaupt ausgeführt werden darf, müssen natürlich noch die richtigen Richtlinien gesetzt werden. Das heißt es müssen die ExecutionPolicy in der PowerShell gesetzt werden. Des Weiteren könnte man sich zur Sicherheit auch überlegen, ob man das Skript signiert. Hier erhöht man die Sicherheit enorm.

Dieses kleine Skript ist auf alle Fälle ein toller Helfer, wenn man nur mal ein Verzeichnis auf Veränderung überwachen möchte. Natürlich könnte man noch viele Erweiterungen implementiert. So wäre es z.B. sinnvoll die Dateien zu zählen, oder bei einer bestimmten Aktion eine E-Mail zu versenden. Ich denke der Kreativität und möglichen Anwendung sind hier kaum Grenzen gesetzt.

Das könnte dich auch interessieren: