Ich versuche, ein einfaches Protokoll von Dateien über SMB übertragen.C# Log SMB Dateizugriff
Dies funktioniert mit Windows 8 oder höher:
var scope = new ManagementScope(@"\\.\root\Microsoft\Windows\SMB");
var query = new WqlEventQuery(
@"SELECT *
FROM
__InstanceOperationEvent WITHIN 1
WHERE
TargetInstance ISA 'MSFT_SmbOpenFile'"
);
ManagementEventWatcher watcher = new ManagementEventWatcher(scope, query);
watcher.EventArrived += new EventArrivedEventHandler(HandleEvent);
watcher.Start();
....
But it does not work for windows 7 or lower. (Run-time requirements)
Gibt es eine ähnliche Lösung, die mit Windows 7 kompatibel ist zumindest?
1º bearbeiten
Es sieht möglich, da diese Windows 7-Modul diese Aufgabe hat:
Computerverwaltung (Ich sehe diese Daten auf Windows 7)
2º Bearbeiten
Um den Zweck zu verdeutlichen. Ich baue eine DLP application (Data Loss Prevention). Ich muss Dateien überwachen und protokollieren, auf die über Windows-Freigabe (Benutzer, Dateiname) zugegriffen wird, und diesen Zugriff in dem Moment blockieren, in dem der Benutzer die Datei anfordert.
Sie können sich die NET-Befehlsfamilie anschauen - 'net files' - gibt die [Liste der geöffneten Dateien] (https://technet.microsoft.com/en-us/library/bb490702.aspx). 'net session' gibt [die Liste der Sitzungen] (https: // technet.microsoft.com/en-us/library/bb490711.aspx). – Subbu
Great Subbu, ich schaue mir jetzt die Dokumentation an und suche nach etwas Ereignisbasiertem, damit ich benachrichtigt werden kann, anstatt den Befehl nacheinander auszuführen. –