必须启用进程审计(组策略中开启“进程创建/终止”),再通过事件查看器筛选安全日志中Event ID 4688(启动)和4689(退出)事件,按日期匹配时间戳并累加时长,或用PowerShell脚本自动统计。

要查看某款应用在 Windows 系统中每天的运行时长,不能依赖任务管理器实时界面或“应用历史记录”选项卡的粗略统计——它只显示累计 CPU 时间,且不按自然日切分。必须通过系统内置的日志机制提取带时间戳的进程启停事件,再按日期聚合计算。
用事件查看器筛选该应用的每日启动与退出记录
Windows 会在系统日志中记录每个进程的创建(Event ID 4688)和终止(Event ID 4689),前提是本地组策略已启用进程审计。这是唯一能还原真实每日运行时长的路径。
① 按 Win + R 输入 eventvwr.msc 回车,打开事件查看器。
② 左侧导航至 Windows 日志 → 安全;若右侧提示“没有可用事件”,说明进程审核未开启——此时需先以管理员身份运行组策略编辑器(gpedit.msc),进入“计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 系统审核策略 → 详细跟踪”,启用“进程创建”和“进程终止”并重启电脑。否则后续步骤无数据可查。
③ 在“安全”日志空白处右键 → “筛选当前日志”,在“事件ID”框中输入 4688,4689,在“关键字”栏勾选“审核成功”,点击确定。
④ 在筛选结果中,逐条检查“详细信息”标签页下的“SubjectUserName”(当前用户)、“ProcessName”(完整路径,如 C:\Program Files\Google\Chrome\Application\chrome.exe)和“TimeCreated”(精确到秒)。注意:4688 表示启动,4689 表示退出;同一进程的启动与退出时间差即为单次运行时长。
⑤ 手动按日期归类所有匹配记录,对同一天内的每对 4688/4689 时间戳做减法,累加得出当日总运行分钟数。例如 chrome.exe 在 10月27日有三次运行:09:12→10:05(53分钟)、13:20→14:18(58分钟)、16:01→17:33(92分钟),当日合计 203 分钟。
用 PowerShell 快速导出并按天统计指定进程运行时长
当应用启动频繁、手动筛选效率过低时,用脚本批量处理更可靠。以下命令仅需一次执行,自动提取最近7天内目标进程的每日运行总分钟数。
方法一:直接运行预置脚本(推荐)
以管理员身份打开 PowerShell,粘贴并执行:
$AppName = "chrome.exe"; $Days = 7; $Events = Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688,4689; StartTime=(Get-Date).AddDays(-$Days)} -ErrorAction SilentlyContinue | Where-Object { $_.Properties[5].Value -like "*\$AppName" -or $_.Properties[10].Value -like "*\$AppName" }; $Groups = $Events | Group-Object { $_.TimeCreated.Date } | ForEach-Object { $Date = $_.Name; $Starts = @(); $Stops = @(); foreach ($e in $_.Group) { if ($e.Id -eq 4688) { $Starts += $e.TimeCreated } elseif ($e.Id -eq 4689) { $Stops += $e.TimeCreated } }; $TotalSec = 0; for ($i=0; $i -lt [Math]::Min($Starts.Count,$Stops.Count); $i++) { if ($Stops[$i] -gt $Starts[$i]) { $TotalSec += ($Stops[$i] - $Starts[$i]).TotalSeconds } }; [PSCustomObject]@{Date=$Date;Minutes=[Math]::Round($TotalSec/60)} }; $Groups | Sort-Object Date -Descending
将 "chrome.exe" 替换为你想查的应用名(如 "notepad.exe" 或 "Teams.exe"),回车后立即输出类似:
Date Minutes
---- -------
2026-10-27 203
2026-10-26 142
2026-10-25 87
方法二:分步验证数据完整性(适合排查无结果情况)
先确认安全日志中是否存在该应用的 4688 事件:Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688; StartTime=(Get-Date).AddDays(-3)} | Where-Object { $_.Properties[5].Value -match "chrome" } -MaxEvents 5
若返回空,说明进程审计未启用或该应用从未被记录——此时脚本无法生成有效数据。
macOS 上查看某应用每日运行时间的替代方案
macOS 不提供原生的进程级每日运行时长统计,但可通过活动监视器的“能量”标签页观察近24小时的后台活跃度,或借助第三方工具如 Stats(开源免费)在菜单栏实时显示各 App 的今日 CPU 使用百分比折线图,间接反映活跃程度。
打开“活动监视器” → 切换到“能量”标签页 → 查看“12 小时”或“24 小时”列中目标应用的数值;该值越高,表示其在过去一天内越频繁唤醒 CPU,但不等于前台运行时长。
若需精确到分钟的每日前台使用时间,必须安装 Timing 或 RescueTime 类工具,它们通过辅助功能权限监听窗口焦点变化,才能区分“启动了但最小化”和“正在前台操作”的区别。

















