簡體   English   中英

如何使用C#在本地網絡上檢測文件復制?

[英]How to detect file copy over local network with C#?

我必須使用.NET Framework創建一個簡單的應用程序,該應用程序可以檢測遠程用戶何時從運行該應用程序的計算機復制某些文件。

例如。

  • Machine1 (應用程序將在此處運行)
  • 機器2

機器2的用戶在MACHINE1和復印件訪問共享目錄中的一些文件,有些機器2目錄。

我需要記錄復制的文件名和請求復制的IP / DNS。

有一些Windows消息可以做到嗎?

甚至沒有IO類?

要求是我必須通過自定義應用程序執行此操作。

您無法從C#程序中檢測是否已訪問文件,沒有消息或公開的API會告訴您何時發生文件。 您需要在操作系統中上一個較低的級別。 通常的做法是將Windows本身設置為通過“ Computer Configuration\\Windows Settings\\Security Settings\\Advanced Audit Policy Configuration\\Audit Policies\\下的組策略進行監視,然后啟用“ Object Access: File Share

這將創建如下的審核日志條目

Log Name:      Security 
Source:        Microsoft-Windows-Security-Auditing 
Date:          8/14/2013 2:08:25 AM 
Event ID:      5145 
Task Category: Detailed File Share 
Level:         Information 
Keywords:      Audit Success 
User:          N/A 
Computer:      RootMS01.Reskit.com 
Description: 
A network share object was checked to see whether client can be granted desired access. 
Subject: 
        Security ID:           RESKIT\Administrator 
        Account Name:          Administrator 
        Account Domain:               RESKIT 
        Logon ID:              0x49199 
Network Information:    
        Object Type:           File 
        Source Address:               10.10.10.11 
        Source Port:           61361 
Share Information: 
        Share Name:            \\*\Shares 
        Share Path:            \??\C:\Shares 
        Relative Target Name:  UserHomeFolder\LSkywalker\Projects.txt 
Access Request Information: 
        Access Mask:           0x120089 
        Accesses:              READ_CONTROL 
                              SYNCHRONIZE 
                              ReadData (or ListDirectory) 
                              ReadEA 
                              ReadAttributes 
Access Check Results: 
        READ_CONTROL:  Granted by Ownership 
                              SYNCHRONIZE:   Granted by        D:(A;;FA;;;WD) 
                              ReadData (or ListDirectory):  Granted by        D:(A;;FA;;;WD) 
                              ReadEA: Granted by     D:(A;;FA;;;WD)

您可以在日志中看到已訪問的文件以及正在訪問該文件的計算機的IP,您所需要做的就是編寫一個C#程序, 程序讀取日志並提取所需的信息。

這是一篇詳細的technet文章,解釋了如何進行設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM