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
NilsK 3.046 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
cj_berlin 1.508 Geschrieben 21. Juni 2024 Melden Geschrieben 21. Juni 2024 Moin, Du suchst Register-ObjectEvent (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn 1
daabm 1.431 Geschrieben 21. Juni 2024 Melden Geschrieben 21. Juni 2024 War da nicht was, daß Code von ChatGPT i.d.R. "halbfertig" ist? 1
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden