通过进程监视Windows系统读/写操作?

时间:2013-06-14 00:22:26

标签: c# c++ c powershell io

我一直在搜索System.Diagnostics命名空间,寻找一种方法来监控不同进程完成的读写操作,但没有运气。

有谁知道用于获取此信息的类或接口?我尝试过Process类,事件跟踪类等,但没有找到任何东西。关于这一点,有一些关于此的帖子,但没有一个具体的答案或帖子来自5年多以前。我在Win7 / Win8上这样做。

我基本上需要跟踪特定文件中进程读取的总位数。

我想创建一个C / C#/ C ++应用程序来执行此操作,或者,如果有办法,可以直接将信息导入PowerShell脚本。

2 个答案:

答案 0 :(得分:1)

您可以使用WMI,例如您可以使用的Notepad.exe进程:

Get-WmiObject -Class "WIN32_Process" -Filter "name='notepad.exe'"

然后看看:

ReadOperationCount
ReadTransferCount 
WriteOperationCount
WriteTransferCount

您还可以使用C#访问WMI。

答案 1 :(得分:0)

您可以尝试从SysInternals中找到Filemon工具。他们当时提供了下载源,但它被删除了。可能你仍然可以通过谷歌找到它。

基本上这是通过驱动程序完成的,因此您必须将其实现为设备驱动程序并在文件系统上使用过滤器驱动程序。这是为NT / XP,但基本的想法仍然有用。

但这并不是微不足道的,所以我不知道这是不是你想要做的。

我没有看到从用户空间执行此操作的方法,因为如果可以轻松完成这将是一个很大的安全风险。