要获取完整软件清单,应依次使用设置查看用户级应用、控制面板获取传统软件注册信息、PowerShell导出AppX与Win32_Product全量数据,以及注册表读取64位/32位软件详情,四法互补覆盖所有安装类型。

你需要一份包含所有已安装软件名称、版本号、发布者及安装日期的完整清单,用于装机归档、IT审计或迁移前核对,而不是只看图标或快捷方式列表。
通过设置查看应用和组件基础信息
这一步适合快速浏览当前用户级安装的主流应用,包括Microsoft Store下载的应用和部分桌面程序,但不显示版本号和发布者详情。
点击任务栏“开始”→选择齿轮图标打开“设置”→左侧点“应用”→右侧选“已安装的应用”。
等待页面加载完成,在右上角搜索框输入关键词(如“Chrome”)可即时过滤;点击任意条目,右侧会显示版本号、发布者、安装日期、大小等字段——但仅限该应用支持暴露这些信息时才可见。
【注意】此界面无法查看系统级组件(如.NET Framework、OpenSSH)、驱动程序或绿色版软件。
用控制面板获取传统桌面软件完整注册信息
这是获取.exe/.msi安装程序权威数据的最可靠路径,直接读取注册表Uninstall项,含版本、发布者、安装日期、磁盘占用四列,且全部支持卸载。
按 Win + R 打开运行框→输入 appwiz.cpl →回车。
列表加载完毕后,鼠标悬停在“安装日期”列标题上单击一次,即可按时间升序排列(最早安装在前),再单击切换为降序(最新安装在前);同理,“大小”列可快速识别占用空间大的软件。
勾选左上方“显示更新”,可展开看到Windows功能组件(如WSL、.NET 8 Runtime),但其中灰色不可选条目(如“Microsoft Visual C++ 2015-2022 Redistributable”)为系统依赖项,【切勿单独卸载】。
用PowerShell批量导出含版本号的全量清单
若需生成可存档、可比对的文本文件,必须使用PowerShell命令——它能同时抓取AppX包(Store应用)与Win32_Product(MSI安装程序),并强制输出版本字段。
第一步:右键“开始”按钮→选择“终端(管理员)”。
第二步:执行以下命令导出Microsoft Store应用清单:
Get-AppxPackage | Select-Object Name, PackageFullName, Version, InstallLocation | Sort-Object Name | Out-File "$env:USERPROFILE\Desktop\AppxList.txt" -Encoding UTF8
第三步:执行以下命令导出传统桌面程序版本信息:
Get-WmiObject -Query "SELECT Name, Version, Vendor, InstallDate FROM Win32_Product" | Sort-Object Name | Out-File "$env:USERPROFILE\Desktop\Win32List.txt" -Encoding UTF8
两份文件将生成在桌面,打开即可看到每款软件的精确版本号、厂商名和安装日期;【注意】Win32_Product查询会触发WMI重校验,可能使某些程序短暂卡顿,建议在空闲时段执行。
读取注册表获取64位与32位软件全量记录
此方法覆盖绝大多数标准安装软件,包括被Win32_Product遗漏的非MSI程序(如部分国产办公套件),且自动过滤KB补丁条目,结果更干净。
方法一:导出64位软件列表
在管理员终端中执行:
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Where-Object {$_.DisplayName -and $_.DisplayName -notmatch '^KB\d+'} | Sort-Object DisplayName | Out-File "$env:USERPROFILE\Desktop\InstalledApps_64bit.txt" -Encoding UTF8
方法二:导出32位软件列表
在同一终端中执行:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Where-Object {$_.DisplayName -and $_.DisplayName -notmatch '^KB\d+'} | Sort-Object DisplayName | Out-File "$env:USERPROFILE\Desktop\InstalledApps_32bit.txt" -Encoding UTF8
执行完毕后,检查桌面两个文本文件,确认中文名称未乱码、DisplayVersion字段有实际数值(非空白或“N/A”)。

















