Jump to content

Powershell-Skript tut anscheinend nichts


Empfohlene Beiträge

Hallo Forum,

ich habe folgendes Ziel: Ein Skript soll auf meinem Windowsrechner dauernd im Hintergrund laufen und eine
Netzwerkfreigabe (in meinem Fall: \\ syn\Public) auf Dateizugriffe überwachen (Datei erstellen, verändern, löschen).
Jeder registrierte Dateizugriff soll in einer Logdatei protokolliert werden.

Dazu habe ich mit ChatGPT folgendes Skript generieren lassen (die Variablen sind bereits angepasst):

 

# Variablen definieren
$NetworkSharePath = "\\syn\Public"
$LogFilePath = "C:\Users\carnap\Documents\Konfiguration\Watch_SYN\WatchPublicLog.txt"

# Funktionsdefinition zum Schreiben ins Logfile
function Write-Log {
    param (
        [string]$Message
    )
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logMessage = "$timestamp - $Message"
    Add-Content -Path $LogFilePath -Value $logMessage
}

# Ereignisüberwachung einrichten
$filter = @{
    Path = $NetworkSharePath
    Filter = '*'
    NotifyFilter = [System.IO.NotifyFilters]'FileName, LastWrite, CreationTime, DirectoryName'
}

# FileSystemWatcher erstellen
$watcher = New-Object System.IO.FileSystemWatcher -Property $filter

# Ereignisaktionen definieren
$watcher.Created += {
    Write-Log "Datei erstellt: $($_.FullPath)"
}
$watcher.Changed += {
    Write-Log "Datei geändert: $($_.FullPath)"
}
$watcher.Deleted += {
    Write-Log "Datei gelöscht: $($_.FullPath)"
}
$watcher.Renamed += {
    Write-Log "Datei umbenannt: $($_.OldFullPath) zu $($_.FullPath)"
}

# Überwachung starten
$watcher.EnableRaisingEvents = $true

# Überwachung in eine Endlosschleife setzen
try {
    Write-Log "Überwachung gestartet."
    while ($true) {
        Start-Sleep -Seconds 5
    }
} catch {
    Write-Log "Fehler: $($_.Exception.Message)"
} finally {
    Write-Log "Überwachung gestoppt."
    $watcher.EnableRaisingEvents = $false
}

 

Bitte nicht schimpfen, ich kann nicht programmieren. War nur mal so eine Idee, das mit ChatGPT zu versuchen ...

 

Danach öffne ich die Powershell-Konsole mit erweiterten Rechten und navigiere ins Verzeichnis, in dem das Skript liegt:

cd C:\Users\carnap\Documents\Konfiguration\Watch_SYN

Danach starte ich das Skript:

".\WatchPublic.ps1"

 

Test: Ich habe auf die Netzwerk-Freigabe einige Dateien rüberkopiert.

 

Erwartetes Verhalten: Es wird eine Logdatei in C:\Users\carnap\Documents\Konfiguration\Watch_SYN erstellt und die Dateizugriffe reingeschrieben.

 

Tatsächliches Verhalten: Nichts von dem passiert. Keine Fehlermeldung, gar nichts.

 

Übersehe ich etwas? Kann dieses Skript funktionieren?

bearbeitet von carnap64
Link zu diesem Kommentar

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...