任务管理器显示正在运行的程序 - 如何查看已结束的程序?

MrS*_*eas 17 windows-10

即使程序已停止到任务管理器无法显示的程度,我如何找出我的计算机上正在运行的程序?

我不单独使用我的电脑,有时我很怀疑。

Dav*_*ill 38

我如何找出哪些程序在停止时正在运行

默认情况下,没有运行过哪些程序的日志。

但是,您可以在Windows 安全事件日志中启用进程跟踪事件(有关说明,请参见下文),以后您将可以使用此信息。

启用进程跟踪事件后,您可以使用以下 Powershell 命令来检查事件:

流程开始:

Get-EventLog Security | Where-Object {$_.EventID -eq 4688} | Format-List
Run Code Online (Sandbox Code Playgroud)

进程停止:

Get-EventLog Security | Where-Object {$_.EventID -eq 4689} | Format-List
Run Code Online (Sandbox Code Playgroud)

上述命令将事件信息转储到屏幕上。


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

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

在 Windows 7/2008+ 中,您需要启用 Audit Process Creation 和可选的 Audit Process Termination 子类别,您可以在组策略对象的 Advanced Audit Policy Configuration 下找到这些子类别。

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

在此处输入图片说明

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


如何启用审计流程创建

  1. 运行 gpedit.msc

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

    在此处输入图片说明

  3. 右键单击“审核过程跟踪”并选择“属性”

  4. 勾选“成功”并点击“确定”

    在此处输入图片说明


什么是审计过程跟踪

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

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

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

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

默认:无审计

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


Nirsoft 的 ExecutedProgramList 怎么样?我可以用那个吗?

ExecutedProgramList没有给出已执行程序的完整列表。

例如,它没有列出我当前从拇指驱动器运行的任何可移植程序,例如 Agent、Notepad++、GSNotes 以及自上次重新启动以来我运行的几乎所有 Cygwin 程序。

它不会列出任何不向链接中提到的位置写入任何内容的程序:

先前执行的程序列表是从以下数据源收集的:

  • 注册表项: HKEY_CURRENT_USER\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
  • 注册表项: HKEY_CURRENT_USER\Microsoft\Windows\ShellNoRoam\MUICache
  • 注册表项: HKEY_CURRENT_USER\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted
  • 注册表项: HKEY_CURRENT_USER\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
  • Windows 预取文件夹 (C:\Windows\Prefetch)

执行程序列表


进一步阅读


DrM*_*pik 3

Nirsoft 有一个小型免费应用程序ExecutedProgramList,它显示在您的系统上执行的程序和批处理文件的列表。请注意,由于 Windows 固有的限制,它并不总是能够显示应用程序上次启动的时间,并且正如 @DavidPostill 提到的,它可能会错过便携式应用程序。

它从 Windows 获取信息,因此不需要运行来编译其列表。