2013-02-22 58 views
0

电脑我使用有一个UNC文件。我与其他人建立了联系。 每隔可以通过ADRESS线\\文件倾翻打开该文件。可以记录unc连接吗?

知道我想要写在VS2010一个C#PROGRAMM该款腕表在我使用的Win7 32位的文件。如果任何一个打开的文件的PROGRAMM应在日志文件中,有人已经打开我的文件编写。

我试图用FileSystemWatcher的,但这只能看更改/省/ cration而不是开幕。

我读了一些关于“审计”的内容,并且我可以用这个(审计)来做到这一点(注意我的unc文件)。但是我试图找出如何在c#中使用审计,但是我没有发现许多。

所以我的问题:

是否有可能做我想做与“审核”?

有人在c#中使用审计工作,或有任何人有链接或somtihng向我展示它如何在c#中工作吗?

MFG山姆

Sry基因的英语不好

+0

这是你所需要的:[如何审计用户在Windows XP中访问文件,文件夹和打印机](http://support.microsoft.com/kb/310399)? – 2013-02-22 12:32:37

+0

[unc monitor with C#]可能重复(http://stackoverflow.com/questions/15019251/unc-monitor-with-c) – 2013-02-22 12:51:14

回答

1

您可能需要使用Audit Object Access。你有

的步骤如下:

  1. 启用在本地计算机策略审核对象访问
  2. 选中要效仿的对象审核。
  3. 从应用程序中使用EventLog.EntryWritten Event来检测该文件开幕活动

下面是一个简单的示例用法,但你必须在文档中挖掘,以捕捉和记录,因为你需要:

class Program 
{ 
    public static void Main() 
    { 

     EventLog myNewLog = new EventLog("Security", ".", "Microsoft Windows security"); 

     myNewLog.EntryWritten += new EntryWrittenEventHandler(MyOnEntryWritten); 
     myNewLog.EnableRaisingEvents = true; 

     Console.ReadLine(); 
    } 

    public static async void MyOnEntryWritten(object source, EntryWrittenEventArgs e) 
    { 
     await Task.Factory.StartNew(() => 
     { 
      if (e.Entry.InstanceId == 4656 || e.Entry.InstanceId == 4663) 
      { 
       Console.WriteLine(e.Entry.Message); 
      } 
     }); 
    } 
} 
+0

是的!谢谢 ! – Sam 2013-02-22 13:53:40