如何获取正在运行的进程的历史记录

如何获取正在运行的进程的历史记录

我需要获取 Windows 计算机上运行过哪些进程以及它们何时运行的历史记录。但是,我不能使用任何第三方软件,因为我无法保证它会一直运行。

有没有办法仅使用 Windows 内置功能来获取此信息?

答案1

当然可以。您可以使用 Windows 的内置事件日志记录功能(假设您使用的不是没有此功能的廉价版本)。

  1. Win+R并输入管理控制台打开组策略管理器
  2. 在左侧窗格中,导航至

    本地计算机策略 \ 计算机配置 \ Windows 设置 \ 安全设置 \ 本地策略 \ 审核策略

  3. 在右侧窗格中,双击“审计流程跟踪”并选中两个框

从现在开始,所有进程创建和删除(以及失败的尝试)都将出现在安全日志中。

要查看它们,请运行事件查看器。(按 Windows 键并开始输入“事件查看器”。)在左侧窗格中展开“Windows 日志”子树并单击“安全”。将显示所有安全事件。

在右侧窗格中,您可以设置过滤器来查找事件 ID(如 4688 或 4689)或任何其他支持的条件。

你可能会考虑不是启用失败日志记录,因为您正在寻找“运行了什么以及何时运行”,如果进程创建失败,则没有任何内容运行......但这取决于您。

您不仅限于在屏幕上阅读事件日志。符合您指定条件的事件日志条目可以触发 Windows“计划任务”。您还可以使用 PowerShell 脚本(或者,当然,使用普通程序)阅读事件日志,并根据发现的内容执行操作。

注意:David Postill 的回答对一些事件代码等提供了更详细的说明。不要忽视它!

答案2

如何获取正在运行的进程的历史记录

默认情况下,没有这样的历史记录,也不会记录在任何地方。

但是您可以在 Windows 安全事件日志中启用进程跟踪事件。

这将为您提供所需的信息。

笔记:


如何使用 Windows 安全日志中的进程跟踪事件

在 Windows 2003/XP 中,您只需启用进程跟踪审计策略即可获取这些事件。

在 Windows 7/2008+ 中,您需要启用审计进程创建,并可选地启用审计进程终止子类别,您可以在组策略对象中的高级审计策略配置下找到它们。

这些事件非常有价值,因为它们提供了系统上任何可执行文件每次作为进程启动时的全面审计跟踪。您甚至可以通过使用在两个事件中找到的进程 ID 将进程创建事件链接到进程终止事件来确定进程运行了多长时间。下面显示了这两个事件的示例。

在此处输入图片描述

来源如何使用 Windows 安全日志中的进程跟踪事件


如何启用审计流程跟踪

  1. 运行 gpedit.msc

  2. 选择“Windows 设置”>“安全设置”>“本地策略”>“审核策略”

在此处输入图片描述

  1. 右键单击“审计进程跟踪”,并选择“属性”

  2. 勾选“成功”,点击“确定”

在此处输入图片描述


什么是审计流程跟踪

此安全设置确定操作系统是否审核与进程相关的事件,例如进程创建、进程终止、句柄重复和间接对象访问。

如果定义了此策略设置,管理员可以指定是否仅审核成功、仅审核失败、同时审核成功和失败,或者根本不审核这些事件(即既不审核成功也不审核失败)。

如果启用了成功审计,则每次操作系统执行这些与进程相关的活动之一时都会生成一个审计条目。

如果启用了失败审核,则每次操作系统无法执行这些活动之一时都会生成一个审核条目。

默认值:无审计

重要提示:要更好地控制审计策略,请使用高级审计策略配置节点中的设置。有关高级审计策略配置的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=140969


进一步阅读

相关内容