在 Windows winget 中设置忽略软件更新的方法 & 通过 Winget 升级已安装的软件/包
官方方法:使用 winget pin 命令
最新版本的 winget 提供了一个官方方法来忽略特定软件的更新,这就是使用 winget pin 命令 3:
winget pin add --id 软件包ID例如,如果您想忽略 Microsoft Teams 和 Microsoft Office 的更新:
winget pin add --id Microsoft.Teams
winget pin add --id Microsoft.Office设置后,当您运行 winget upgrade --all 时,被固定(pin)的应用将被跳过,不会被更新 2。
查看已固定的软件包
要查看所有已固定的软件包列表:
winget pin list取消固定软件包
如果将来您想恢复对软件包的更新:
winget pin remove --id 软件包ID强制更新所有软件包(包括已固定的)
如果您想临时忽略固定设置,一次性更新所有软件包:
winget upgrade --all --force永久阻止更新
如果您想永久阻止某个软件包的更新,可以使用 --blocking 参数:
winget pin add --id 软件包ID --blocking其他替代方法
如果您使用的是较旧版本的 winget 或需要更灵活的控制,还可以使用以下方法:
使用 PowerShell 脚本筛选更新
使用 PowerShell 可以更精细地控制要忽略的应用 3:
Get-WinGetPackage | Where-Object {
($_.IsUpdateAvailable -eq $true) -and
($_.Id -ne 'Microsoft.Teams') -and
($_.Id -ne 'Microsoft.Office')
} | ForEach-Object {
Update-WinGetPackage -Id $_.ID
}通过 Winget 升级已安装的软件/包
# Update all packages
winget update --all