carnap64 0 Geschrieben 21. Juni 2024 Melden Geschrieben 21. Juni 2024 (bearbeitet) 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 21. Juni 2024 von carnap64 Zitieren
NilsK 2.978 Geschrieben 21. Juni 2024 Melden Geschrieben 21. Juni 2024 Moin, ich habe nur schnell geguckt und bin kein PS-Spezi, aber mein Verdacht ist, dass dein Skript in einer Endlosschleife 5 Sekunden schläft. Gruß, Nils Zitieren
cj_berlin 1.394 Geschrieben 21. Juni 2024 Melden Geschrieben 21. Juni 2024 Moin, Du suchst Register-ObjectEvent (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn 1 Zitieren
daabm 1.384 Geschrieben 21. Juni 2024 Melden Geschrieben 21. Juni 2024 War da nicht was, daß Code von ChatGPT i.d.R. "halbfertig" ist? 1 Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.