【发布时间】: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 files。net session给the list of sessions。 -
Great Subbu,我现在正在查看文档,寻找基于事件的内容,因此可以通知我而不是连续运行命令。
标签: c# winapi wmi instrumentation wql