C#记录SMB文件访问

Vin*_*ves 5 c# wmi winapi instrumentation wql

我正在尝试通过SMB传输文件的简单日志.

这适用于Windows 8或更高版本:

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();

....
Run Code Online (Sandbox Code Playgroud)

但它不适用于Windows 7或更低版​​本.(运行时要求)

是否有类似的解决方案至少与Windows 7兼容?

1º编辑

看起来可能因为此Windows 7模块执行此任务:

计算机管理(我在Windows 7上看到这些信息)

MMC.EXE

2º编辑

澄清目的.我正在构建一个DLP应用程序(数据丢失防护).我需要监视和记录通过Windows共享(用户,文件名)访问的文件,并最终在用户请求文件时阻止此访问.