windows - Procmon 的命令行版本
问题描述
我正在使用 Windows 7,我想监视新的 Process Create 事件。(即为每个创建的进程获取一个条目,并提供有关它的完整详细信息。)我在 Procmon 中成功地做到了这一点,但我想在 shell 中做到这一点,并在没有 GUI 的情况下获得文本输出。
是否有执行此操作的 CLI 命令?例如,我可以告诉它“请用某某路径列出某某类型的所有事件”,它会无限期地运行,将这些进程的详细信息写入标准输出?
解决方案
您可以使用Microsoft.Diagnostics.Tracing.TraceEvent nuget 包构建自己的。它是ETW(Windows 事件跟踪)事件的包装器,它开发了我的 Microsoft。
以下是显示所有进程启动和停止事件的一些示例 C# 控制台应用程序代码:
using System;
using Microsoft.Diagnostics.Tracing.Parsers;
using Microsoft.Diagnostics.Tracing.Session;
namespace ProcMon
{
class Program
{
static void Main(string[] args)
{
if (TraceEventSession.IsElevated() != true)
{
Console.WriteLine("To turn on ETW events you need to be Administrator, please run from an Admin process.");
return;
}
using (var session = new TraceEventSession("whatever"))
{
// handle console CTRL+C gracefully
Console.CancelKeyPress += (sender, e) => session.Stop();
// we filter on events we need
session.EnableKernelProvider(KernelTraceEventParser.Keywords.Process);
session.Source.Kernel.ProcessStart += data =>
{
Console.WriteLine("START Id:" + data.ProcessID + " Name:" + data.ProcessName);
};
session.Source.Kernel.ProcessStop += data =>
{
// stop has no name
Console.WriteLine("STOP Id:" + data.ProcessID);
};
// runs forever, press CTRL+C to stop
session.Source.Process();
}
}
}
}
推荐阅读
- python - 在熊猫数据框中为给定的列值创建顺序 ID
- reactjs - 在 React 中对 props 的属性进行 Props 验证
- django - 如何在外部 python 脚本 django 中导入模块
- craftcms - 如何添加资产字段
- php - PHP - 在 3 维数组中循环提供有线输出
- google-apps-script - 从一个电子表格更新到另一个电子表格时附加多行
- angular - 寻找使用 ngrx 8 沉浸式生产的示例
- javascript - 未填充 Google Analytics(分析)自定义维度
- java - 哪个更快:标准查询或本机查询?
- reactjs - 如何理解 Reactjs 中用于从服务器获取数据的端点