Jump to content

carnap64

Members
  • Gesamte Inhalte

    1
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von carnap64

  1. 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?
×
×
  • Neu erstellen...