一、查看Windows系统中最近下载的软件安装记录
在日常的IT运维或安全审计工作中,了解一台计算机上近期安装了哪些软件是非常重要的。这不仅有助于排查未知来源的程序,还能用于合规性检查和系统故障排除。以下将从浅入深地介绍如何利用Windows自带工具和命令行方式来追踪软件安装记录。
1. 常见方法概述
使用“控制面板”中的“程序和功能”查看已安装程序列表通过“设置 > 应用 > 已安装的应用”查看UWP应用安装时间使用事件查看器(Event Viewer)查找系统日志中的安装行为查询注册表(Registry)中与安装相关的键值运行PowerShell脚本获取更详细的安装历史
2. 使用系统自带工具查看安装记录
工具名称用途说明操作路径控制面板 - 程序和功能列出所有传统桌面应用程序及其安装日期控制面板 > 程序 > 卸载程序设置 - 已安装的应用显示UWP应用的安装时间和版本信息Win + I > 应用 > 已安装的应用
3. 使用事件查看器追踪安装行为
Windows事件日志系统会记录许多与软件安装相关的信息,主要集中在“应用程序”和“系统”日志中。
# PowerShell命令筛选与安装相关的事件
Get-WinEvent -LogName "System" | Where-Object { $_.Id -eq 10000 -or $_.Id -eq 10015 } | Select TimeCreated, Id, Message
其中:
事件ID 10000:表示某个组件被安装事件ID 10015:表示服务被创建或修改
4. 查询注册表获取安装记录
Windows注册表中存储了大量关于软件安装的历史信息,常见的位置包括:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
每个子项代表一个已安装程序,包含 DisplayName、DisplayVersion 和 InstallDate 等字段。
5. 使用PowerShell获取安装历史
以下是一段可用于提取最近安装程序的PowerShell脚本示例:
$uninstallKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$programs = Get-ChildItem $uninstallKey | Get-ItemProperty
foreach ($program in $programs) {
if ($program.DisplayName -and $program.InstallDate) {
[PSCustomObject]@{
Name = $program.DisplayName
Version = $program.DisplayVersion
InstallDate = $program.InstallDate
}
}
}
6. 高级技巧:结合日志分析工具进行审计
对于需要长期监控或集中管理的企业环境,可考虑将事件日志转发到SIEM系统(如Splunk、ELK、QRadar等),实现自动化的软件安装审计。
graph TD
A[开始] --> B{是否需要图形界面?}
B -- 是 --> C[使用控制面板/设置]
B -- 否 --> D[使用PowerShell或事件查看器]
D --> E[导出日志或生成报告]
C --> F[手动查看安装列表]
E --> G[分析日志中的安装行为]
F --> H[结束]
G --> H