【问题标题】:C# Log SMB file accessC# 记录 SMB 文件访问
【发布时间】:2018-01-03 13:43:15
【问题描述】:

我正在尝试创建一个通过 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();

....

But it does not work for windows 7 or lower. (Run-time requirements)

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

1º 编辑

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

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

2º 编辑

明确目的。我正在建立一个DLP application (Data Loss Prevention)。我需要监视和记录通过 Windows 共享(用户、文件名)访问的文件,并最终在用户请求文件时阻止此访问。

【问题讨论】:

  • 您可以查看 NET 系列命令 - net files - 给出了 list of open filesnet sessionthe list of sessions
  • Great Subbu,我现在正在查看文档,寻找基于事件的内容,因此可以通知我而不是连续运行命令。

标签: c# winapi wmi instrumentation wql


【解决方案1】:

【讨论】:

  • 嗨@sancho.s,谢谢回复。我在发帖之前已经看到了这个功能。这是列表中的第一个相关问题。虽然它接近我需要的东西,但它不是事件驱动的,并且不允许我取消读取请求。可以发个例子吗?
  • @ViniciusGonçalves - 你是对的。请查看更新的答案。
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 2012-02-12
相关资源
最近更新 更多