powershell可直接导出完整已安装软件清单:通过读取注册表uninstall键获取32/64位win32程序,用get-appxpackage获取microsoft store应用,可选win32_product类验证msi程序,并支持合并导出为csv格式。
直接用 powershell 读取注册表和系统接口,就能导出完整、准确的已安装软件清单。关键在于覆盖不同安装方式:传统 win32 程序(.exe/.msi)、microsoft store 应用(appx)、以及 windows 可选功能或语言包。不需要第三方工具,也不依赖图形界面。
导出传统桌面程序(32位 + 64位)
这类软件大多通过 MSI 或自解压安装器部署,信息登记在注册表 `Uninstall` 键中。PowerShell 需分别读取两个路径,避免遗漏:以管理员身份打开“终端(管理员)”,依次执行:
- 导出 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\Installed_32bit.txt" -Encoding UTF8 - 导出 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\Installed_64bit.txt" -Encoding UTF8
注意:自动过滤掉 KB 开头的 Windows 更新补丁,只保留真实应用;输出为 UTF-8 编码,中文名称不会乱码。
导出 Microsoft Store 应用(AppX 包)
这类应用不写入传统卸载项,必须用 Get-AppxPackage 获取,包括预装、用户安装及系统级组件:在同一个管理员终端中运行:
- Get-AppxPackage | Select-Object Name, PackageFullName, Version, InstallLocation | Sort-Object Name | Out-File "$env:USERPROFILE\Desktop\AppxList.txt" -Encoding UTF8
结果包含包名、完整标识符(用于重装)、版本号和安装路径,适合后续批量部署或排查。
补充导出 MSI 安装程序(可选,较慢但更权威)
Win32_Product 类会触发所有 MSI 包的重新验证,耗时较长,仅建议在需要精确匹配 MSI 数据库时使用:
- Get-WmiObject Win32_Product | Select-Object Name, Version, Vendor, InstallDate | Sort-Object Name | Export-Csv "$env:USERPROFILE\Desktop\MSI_Programs.csv" -NoTypeInformation -Encoding UTF8
⚠️ 提示:该命令可能卡顿数分钟,且仅返回 MSI 安装的应用,不包含 EXE 安装或绿色软件。
合并查看或导出为 CSV(统一格式)
如果希望一份文件汇总全部 Win32 程序(含 32/64 位),可用以下命令一次性导出结构化 CSV:- $apps = @(); $apps += Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*; $apps += Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*; $apps | Where-Object {$_.DisplayName -and $_.DisplayName -notmatch '^KB\d+'} | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Sort-Object DisplayName | Export-Csv "$env:USERPROFILE\Desktop\AllApps.csv" -NoTypeInformation -Encoding UTF8
生成的 CSV 文件可直接用 Excel 打开,支持筛选、排序和去重,适合审计或迁移前核对。











