[英]How to detect file copy over local network with C#?
我必須使用.NET Framework創建一個簡單的應用程序,該應用程序可以檢測遠程用戶何時從運行該應用程序的計算機復制某些文件。
例如。
在機器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.