gpt4 book ai didi

c# - 是否可以使用 .Net 框架以编程方式记录对 Windows 共享(SMB 共享)的访问?

转载 作者:可可西里 更新时间:2023-11-01 14:47:22 24 4
gpt4 key购买 nike

只是想知道是否有可能找出谁从 Windows 共享中读取了文件(最好使用 .NET,但 win32 native 可以)?

我想做的是创建类似 awstats 的东西对于 Windows 共享,这样我就可以看到谁在访问什么以及哪些是最受欢迎的文件。

我对更改不感兴趣 - 我只想记录访问(随时间)以及 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 中。如果在网络路径中检测到变化,则触发上面的代码。

关于c# - 是否可以使用 .Net 框架以编程方式记录对 Windows 共享(SMB 共享)的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com