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上看到这些信息)
2º编辑
澄清目的.我正在构建一个DLP应用程序(数据丢失防护).我需要监视和记录通过Windows共享(用户,文件名)访问的文件,并最终在用户请求文件时阻止此访问.
诚然,这是部分答案。虽然它可能有用,但不适合评论。
看来你可以尝试使用Win32_ConnectionShare和Win32_ServerConnection。例如,它就用在这里。
不过,我不确定您是否可以使用它来捕获事件。结合您的所有要求是具有挑战性的(这就是您设置赏金的原因!)
相关信息:
https://www.codeproject.com/Articles/17803/A-PC-Audit-Application-in-C
是否可以使用 .Net 框架以编程方式记录对 Windows 共享(SMB 共享)的访问?
https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx
使用 C# 的服务 SACL || 使用 C# 获取具有 ACCESS_SYSTEM_SECURITY 权限的服务的句柄
https://www.netfort.com/blog/auditing-file-access-on-file-servers/
https://blogs.technet.microsoft.com/mspfe/2013/08/26/auditing-file-access-on-file-servers/
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365433(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/bb726966.aspx