C#日志SMB文件访问
我想通过SMB传输文件的简单日志。C#日志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共享(用户,文件名)访问的文件,并最终在用户请求文件时阻止此访问。
无可否认,这是一个部分答案。它可能是有用的,但它不适合评论。
看来你可以尝试Win32_ConnectionShare
和Win32_ServerConnection
。例如,使用here。
不过,我不确定你可以用它来捕捉事件。 结合所有您的要求是具有挑战性的(这就是为什么你设置的赏金!)
相关信息:
https://www.codeproject.com/Articles/17803/A-PC-Audit-Application-in-C
https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx
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://*.com/a/154758/2707864
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365433(v=vs.85).aspx
Hi @ sancho.s,tks for reply。我在发布之前看过这个功能。这是列表中的第一个相关问题。虽然它接近我需要的东西,但它不是事件驱动的,并且不允许我取消读取请求。你能举个例子吗? –
@ViniciusGonçalves - 你说得对。请参阅最新的答案。 –
您可以查看NET系列命令 - “net files” - 给出[打开的文件列表](https://technet.microsoft.com/zh-cn/library/bb490702.aspx)。 'net session'给出[会话列表](https:// technet。microsoft.com/en-us/library/bb490711.aspx)。 – Subbu
伟大的Subbu,我现在正在查看文档,寻找基于事件的事件,所以我可以被通知而不是连续运行命令。 –