如何使用c#来确定哪个帐户修改了共享文件夹中的文件

本文关键字:共享 修改 共享文件 文件夹 文件 何使用 | 更新日期: 2023-09-27 18:05:56

我正在尝试确定哪个用户帐户用于使用c#修改共享文件夹中的文件。

如果程序在拥有共享文件夹的计算机上运行,则可以。

如何使用c#来确定哪个帐户修改了共享文件夹中的文件

我可以想到两个选项来确定是哪个帐户修改了文件:

  1. Auditing:如果您开启了审计(通过本地安全策略),您可以设置共享文件夹对成功的写访问进行审计。这将告诉您哪些用户打开文件进行写访问,而不是那些实际执行写操作的用户。然后,从任何一台计算机上,您都可以监视具有共享文件夹的计算机上的安全日志,并查看哪些用户对这些文件具有写访问权限。

  2. 进程监控:您可以在具有共享文件夹的计算机上运行ProcMon,并让它将其日志写入文件。然后,您可以定期检查日志,查看对文件的实际写入。请注意,这将告诉您是哪个进程执行了写入操作,以及该进程在哪个用户下运行,但不一定是该进程当时模拟的是哪个用户。

  3. 组合:为了知道哪个用户执行了实际的写操作,您可能必须将审计日志和进程监视日志结合起来,以查看写线程在写操作时冒充的是哪个用户。

您应该创建包含FileSystemWatcherWindows Service。从这里您可以确定是哪个用户修改了引发OnChanged事件的文件

watcher.Changed += new FileSystemEventHandler(OnChanged);
private static void OnChanged(object source, FileSystemEventArgs e)
{
    // Specify what is done when a file is changed, created, or deleted.
    Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
}

FileSystemWatcher

监听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。