获取Windows PowerShell中指定时间范围内以管理员身份执行的历史命令报告
获取Windows PowerShell中指定时间范围内以管理员身份执行的历史命令报告
别担心,我给你整理了几个适合新手的实用方法,帮你找回那段时间里用管理员身份执行的命令:
方法一:直接查看PowerShell历史文件
管理员模式的PowerShell和普通用户的命令历史是分开存储的,你可以直接找到对应的历史文件查看:
- 打开文件资源管理器,导航到路径:
C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt - 用记事本打开这个文件,里面就是你所有在PowerShell(包括管理员模式)里执行过的命令,默认是按执行时间从早到晚排序的。
- 如果想快速筛选大概范围内的命令,可以用PowerShell本身来提取,比如取最近的50条:
注意:这个文件没有记录精确的执行时间,如果需要时间戳,得用下面的方法。Get-Content "C:\Users\<你的用户名>\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt" | Select-Object -Last 50
方法二:用Sysinternals的Process Monitor(Procmon)追踪
你提到的Sysinternals套件确实是Windows排查问题的神器,Procmon可以精准追踪管理员PowerShell的操作:
- 下载Procmon(属于Sysinternals套件,直接从微软官方渠道获取即可,无需安装)
- 打开Procmon后,点击顶部的「Filter」按钮,设置过滤规则:
- 选择「Process Name」→「is」→「powershell.exe」,点击「Add」
- 再添加一条规则:「User Name」→「is」→「你的管理员用户名」,点击「Add」
- 最后点击「Apply」,这样就只会显示PowerShell相关的操作记录了
- 在日志列表里找到「Command Line」列,这里会显示每条执行的具体命令,同时每条记录都带有精确的时间戳,你可以轻松按时间范围筛选出目标命令。
方法三:通过事件查看器提取日志
Windows自带的事件查看器也会记录PowerShell的执行事件,步骤很简单:
- 按下Win+R组合键,输入
eventvwr.msc回车,打开事件查看器 - 展开左侧的「Windows日志」→「应用程序」
- 点击右侧的「筛选当前日志」,在「事件ID」框里输入
4104(这个ID对应PowerShell的命令执行日志),然后点击「确定」 - 在筛选后的日志里,每条记录的「详细信息」中会包含命令内容、执行时间,以及执行该命令的用户身份(查看「SubjectUserName」字段就能确认是不是管理员身份)
小提醒:如果是刚操作完不久,这些方法都能拿到比较完整的记录;如果间隔时间太长,系统可能会自动清理部分旧日志哦。
备注:内容来源于stack exchange,提问作者ranemirusG




