只是想知道是否有可能弄清楚谁从Windows共享中读取了文件(理想情况下使用.NET,但Win32 native 可以这样做)?
我想做的是为Windows共享创建类似于awstats的内容,这样我就可以看到谁正在访问哪些文件以及哪些是最受欢迎的文件。
我对更改不感兴趣-我只想记录访问权限(随时间变化)以及ip/主机名和文件。
最佳答案
这是可以使用WMI进行的...在示例C#代码段下面,该代码用于识别谁当前访问了股票
using System.Management;
ManagementObjectSearcher search =
new ManagementObjectSearcher("root\\CIMV2","SELECT * FROM Win32_ConnectionShare");
foreach (ManagementObject MO in search.Get())
{
string antecedent = MO["antecedent"].ToString();
ManagementObject share = new ManagementObject(antecedent);
string dependent = MO["dependent"].ToString();
ManagementObject server = new ManagementObject(dependent);
string userName = server["UserName"].ToString();
string compname = server["ComputerName"].ToString();
string sharename = server["ShareName"].ToString();
}
不确定WMI的核心文件事件列表器。但是您可以很好地将其集成到NoramlFileSystemWatcher中。如果网络路径中检测到更改,则触发上述代码。