可通过powershell、wmic、注册表导出或get-package四种方式获取windows已安装程序完整列表:powershell命令全面覆盖32/64位软件并支持csv导出;wmic兼容性强,可生成html或txt格式;注册表导出捕获绿色/便携软件;get-package补充包管理器安装的程序。

如果您需要在Windows系统中获取当前已安装的所有程序的完整列表,并将其导出为可查看或存档的文本文件,则可以通过系统内置命令工具实现。以下是几种直接有效的操作方式:
一、使用PowerShell命令获取已安装程序列表
PowerShell提供了Get-ItemProperty cmdlet,可读取注册表中关于已安装软件的信息,覆盖32位与64位程序,结果较全面且无需额外工具。
1、以管理员身份运行PowerShell:右键“开始”按钮 → 选择“Windows PowerShell(管理员)”或“终端(管理员)”。
2、输入以下命令并按回车执行:
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 | Format-Table -AutoSize
3、若需导出为CSV文件,执行以下命令:
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 | Export-Csv -Path "$env:USERPROFILE\Desktop\InstalledPrograms.csv" -NoTypeInformation -Encoding UTF8
二、使用wmic命令导出软件清单(兼容性高)
wmic是Windows Management Instrumentation Command-line工具,在所有Windows版本(包括Win7至Win11)中均可用,不依赖PowerShell,适合基础环境或受限策略场景。
1、以管理员身份运行命令提示符:右键“开始”按钮 → 选择“命令提示符(管理员)”或“终端(管理员)”。
2、输入以下命令并按回车执行:
wmic /output:"%USERPROFILE%DesktopInstalledPrograms.html" product get name,version,vendor,installstate
3、该命令将生成一个HTML格式文件,保存于桌面,双击即可用浏览器打开查看。
4、如需纯文本格式,执行:
wmic product get name,version,vendor,installstate > "%USERPROFILE%DesktopInstalledPrograms.txt"
三、通过注册表导出全部Uninstall项(含隐藏/非标准安装程序)
部分绿色软件、便携版或静默部署程序可能未写入WMI或PowerShell可枚举路径,但只要向注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall或HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall写入了卸载信息,即可被此方法捕获。
1、按下Win+R,输入regedit,回车打开注册表编辑器。
2、导航至以下两个路径:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionUninstall
3、右键左侧对应路径 → 选择“导出” → 指定保存位置为桌面,文件名设为Uninstall_Registry_Backup.reg → 保存类型选“注册表文件”。
4、使用文本编辑器(如记事本)打开该.reg文件,手动筛选含"DisplayName"和"DisplayVersion"的区块,提取软件名称与版本信息。
四、使用PowerShell结合Get-Package命令(适用于支持PackageManagement的系统)
Get-Package命令可枚举通过Windows Package Manager(winget)、MSI、Chocolatey等包管理器安装的程序,补充传统注册表方法的盲区。
1、确保已安装PackageManagement模块:在PowerShell中运行Get-Module -ListAvailable PackageManagement,若无输出则需先执行Install-Module PackageManagement -Force -AllowClobber。
2、执行以下命令列出所有已知来源的已安装包:
Get-Package | Select-Object Name, Version, ProviderName, Source | Sort-Object Name | Format-Table -AutoSize
3、导出为CSV文件:
Get-Package | Select-Object Name, Version, ProviderName, Source | Export-Csv -Path "$env:USERPROFILE\Desktop\Packages_via_GetPackage.csv" -NoTypeInformation -Encoding UTF8











