菜鸟科技网

Windows卸载程序命令有哪些?

在Windows操作系统中,卸载程序通常可以通过图形界面的“设置”或“控制面板”完成,但对于需要批量操作、远程管理或自动化脚本场景的用户,命令行工具提供了更高效的解决方案,Windows卸载程序命令主要分为两类:基于PowerShell的cmdlet命令和传统的命令行工具(如wmic和命令提示符),本文将详细介绍这些命令的使用方法、适用场景及注意事项,帮助用户根据需求选择合适的卸载方式。

Windows卸载程序命令有哪些?-图1
(图片来源网络,侵删)

PowerShell命令卸载程序

PowerShell是Windows系统管理的核心工具,其Get-PackageUninstall-Package cmdlet可轻松管理已安装的程序,需通过管理员权限启动PowerShell(右键点击“开始”菜单,选择“Windows PowerShell(管理员)”或“Terminal(管理员)”)。

查看已安装程序

使用Get-Package命令可列出所有通过Windows Installer安装的程序:

Get-Package | Format-Table Name, Version, ProviderName -AutoSize

若需筛选特定程序,可通过管道符结合Where-Object

Get-Package | Where-Object {$_.Name -like "*Adobe*"} | Format-Table Name, Version

卸载程序

通过程序名称卸载时,需确保名称精确匹配,例如卸载“7-Zip”程序:

Windows卸载程序命令有哪些?-图2
(图片来源网络,侵删)
Uninstall-Package -Name "7-Zip" -Force

若程序名称包含空格或特殊字符,需用引号包裹,对于通过其他包管理器(如Chocolatey、winget)安装的程序,需先安装对应的包管理器模块,再使用其专用cmdlet卸载。

使用winget命令(Windows 10/11推荐)

Windows Package Manager(winget)是微软推出的命令行工具,支持通过ID、名称或源卸载程序,首先查看已安装程序列表:

winget list

通过程序ID卸载(如卸载Google Chrome,ID为Google.Chrome):

winget uninstall Google.Chrome

若需强制卸载(跳过确认提示),添加--accept-package-agreements--accept-source-agreements参数:

Windows卸载程序命令有哪些?-图3
(图片来源网络,侵删)
winget uninstall --id Microsoft.VisualStudioCode --accept-package-agreements --accept-source-agreements

传统命令行工具卸载

使用WMIC命令

Windows Management Instrumentation Command-line (WMIC)工具可通过Windows Management Instrumentation (WMI)接口管理程序,首先查看所有已安装程序:

wmic product get name, version

卸载程序时,需使用程序的IdentifyingNumber(GUID)或名称,例如卸载“Notepad++”:

wmic product where name="Notepad++" call uninstall

注意:WMIC命令对程序名称的匹配要求严格,且部分现代程序可能无法通过此方式卸载。

使用MSIEXEC命令

对于通过Windows Installer (.msi)安装的程序,可使用msiexec.exe命令卸载,需先通过以下命令获取程序的产品代码:

wmic product get name, identifyingnumber

然后使用产品代码卸载:

msiexec /x {产品代码} /quiet /norestart

参数说明:/x表示卸载,/quiet静默模式,/norestart禁止自动重启,若程序已提供卸载入口(如通过控制面板显示的“卸载”命令),可直接调用其卸载字符串:

msiexec /uninstall "C:\Program Files\Example\uninstall.msi" /quiet

批量卸载与脚本自动化

批量卸载程序

通过PowerShell脚本可批量卸载多个程序,例如创建一个包含程序名称的数组,循环执行卸载:

$programsToUninstall = "Adobe Reader", "Skype", "Spotify"
foreach ($program in $programsToUninstall) {
    Uninstall-Package -Name $program -Force -ErrorAction SilentlyContinue
}

结合CSV文件卸载

若需从CSV文件读取程序列表,可使用Import-Csv命令:

$programsList = Import-Csv -Path "C:\path\to\programs.csv" -Header "Name"
foreach ($row in $programsList) {
    Uninstall-Package -Name $row.Name -Force
}

CSV文件格式示例:
| Name |
|---------------|
| Google Chrome |
| Mozilla Firefox|

注意事项与最佳实践

  1. 权限管理:所有卸载命令均需管理员权限执行,否则会提示“拒绝访问”。
  2. 程序匹配:命令行卸载对程序名称的匹配要求较高,建议先通过Get-Packagewinget list确认准确名称。
  3. 依赖关系:卸载前需检查程序是否为其他软件的依赖项,避免系统功能异常。
  4. 日志记录:通过msiexec卸载时,可添加/L*v C:\log.txt参数生成详细日志,便于排查问题。
  5. 第三方工具:对于顽固程序,可结合Revo Uninstaller等第三方工具的命令行功能(如RevoUninstallersilent.exe /program="Program Name")。

相关问答FAQs

Q1:为什么使用PowerShell卸载程序时提示“找不到程序”?
A1:通常是由于程序名称与Get-Package返回的名称不完全匹配所致,建议先通过Get-Package | Format-Table Name -AutoSize查看精确名称,或尝试使用winget list搜索程序,部分程序(如便携式应用)可能未通过Windows Installer安装,无法通过Uninstall-Package卸载。

Q2:如何静默卸载程序且不显示任何提示?
A2:不同工具的静默参数不同,对于winget,需添加--silent--accept-package-agreements参数;对于msiexec,使用/quiet/passive(显示进度条但不需用户交互);PowerShell的Uninstall-Package默认静默,但可通过-Verbose参数查看详细日志,若需完全隐藏输出,可将命令重定向到$nullUninstall-Package -Name "Program" -Force | Out-Null

分享:
扫描分享到社交APP
上一篇
下一篇