pin 命令 (winget)
winget pin 命令允许你限制 Windows 程序包管理器将包升级到特定范围的版本,它也可以完全阻止升级包。 固定的包仍可自行升级,并且可从Windows 程序包管理器外部进行升级。
固定类型
WinGet 支持三种类型的包固定:
固定:已从
winget upgrade --all
中排除包,但允许winget upgrade <package>
。 可以使用--include-pinned
参数来允许winget upgrade --all
包含固定的包。阻止:已阻止
winget upgrade --all
或winget upgrade <package>
包,必须取消固定包才能让 WinGet 执行升级。--force
选项可用于替代固定的行为。限制:已将包固定到特定版本或版本范围。 可以指定要将包固定到的确切版本,也可以使用通配符
*
作为最后一个版本部分来指定版本范围。 例如,如果已将包固定到版本1.2.*
,则1.2.0
与1.2.x
之间的任何版本都被视为有效。--force
选项可用于替代固定的行为。
使用情况
winget pin <subcommand> <options>
选项
可以使用以下选项。
选项 | 说明 |
---|---|
-?、--help | 获取有关此命令的更多帮助。 |
--wait | 提示用户在退出前按任意键。 |
--logs,--open-logs | 打开默认日志位置。 |
--verbose, --verbose-logs | 用于替代日志记录设置并创建详细日志。 |
--nowarn,--ignore-warnings | 禁止警告输出。 |
--disable-interactivity | 禁用交互式提示。 |
--proxy | 设置要用于此执行的代理。 |
--no-proxy | 禁用此执行使用代理。 |
子命令
pin 命令支持以下子命令。
子命令 | 说明 |
---|---|
add | 添加新固定。 |
删除 | 删除包固定。 |
list | 列出当前固定。 |
reset | 重置固定 |
add
add 子命令用于添加新固定。 此子命令要求指定要固定的确切包。 如果存在任何不明确性,系统会提示你进一步将 add 子命令筛选到具体应用程序。
用法:
winget pin add [[-q] <query>] [<options>]
参数
Argument | 说明 |
---|---|
-q、--query | 用于搜索应用的查询。 |
选项
这些选项允许你根据需要自定义添加固定。
选项 | 说明 |
---|---|
--id | 将搜索限制为应用程序的 ID。 |
--name | 将搜索限制为应用程序的名称。 |
--moniker | 将搜索限制为针对应用程序列出的名字对象。 |
--tag | 将搜索限制为针对应用程序列出的标记。 |
--cmd,--command | 将搜索限制为应用程序的命令。 |
-e、--exact | 在查询中使用确切的字符串,包括检查是否区分大小写。 它不会使用子字符串的默认行为。 |
-v、--version | 让你可以指定要固定的确切版本。 通配符 * 可用作最后一个版本部分。 将固定行为更改为 gating 。 |
-s、--source | 将搜索限制为所提供的源名称。 必须后跟源名称。 |
--header | 可选 Windows-Package-Manager REST 源 HTTP 标头。 |
--authentication-mode | 指定身份验证窗口首选项(无提示、无提示首选或交互)。 |
--authentication-account | 指定用于身份验证的帐户。 |
--accept-source-agreements | 用于接受源许可协议,并避免出现提示。 |
--force | 直接运行命令并继续处理非安全相关问题。 |
--blocking | 阻止升级,直到删除固定,从而防止替代参数。 将固定行为更改为 blocking 。 |
--installed | 固定特定的已安装版本 |
-?、--help | 获取有关此命令的更多帮助。 |
--wait | 提示用户在退出前按任意键。 |
--logs, --open-logs | 打开默认日志位置。 |
--verbose, --verbose-logs | 用于替代日志记录设置并创建详细日志。 |
--nowarn,--ignore-warnings | 禁止警告输出。 |
--disable-interactivity | 禁用交互式提示。 |
--proxy | 设置要用于此执行的代理。 |
--no-proxy | 禁用此执行使用代理。 |
示例
以下示例为应用程序添加了固定。 添加此固定将阻止在调用 winget upgrade --all
时升级此包。 将 --include-pinned
参数与 winget upgrade --all
一起使用,以包含任何固定的包。
winget pin add powertoys
以下示例使用应用程序 ID 为应用程序添加了阻止固定。 添加阻止固定将阻止在调用 winget upgrade --all
或 winget upgrade <package>
时升级此包。 需要取消阻止包才能让 WinGet 执行升级。
winget pin add --id Microsoft.PowerToys --blocking
以下示例使用应用程序 ID 为应用程序添加了限制固定。 添加限制固定将阻止在特定版本或限制通配符范围之外升级包版本。
winget pin add --id Microsoft.PowerToys --version 0.70.*
删除
remove 子命令用于删除固定。 此子命令要求指定要删除的确切包固定。 如果存在任何不明确性,系统会提示你进一步将 remove 子命令筛选到具体应用程序。
用法:
winget pin remove [[-q] <query>] [<options>]
参数
Argument | 说明 |
---|---|
-q、--query | 用于搜索应用的查询。 |
选项
这些选项允许你根据需要自定义删除固定。
选项 | 说明 |
---|---|
--id | 将搜索限制为应用程序的 ID。 |
--name | 将搜索限制为应用程序的名称。 |
--moniker | 将搜索限制为针对应用程序列出的名字对象。 |
-s、--source | 将搜索限制为所提供的源名称。 必须后跟源名称。 |
--tag | 将搜索限制为针对应用程序列出的标记。 |
--cmd,--command | 将搜索限制为应用程序的命令。 |
-e、--exact | 在查询中使用确切的字符串,包括检查是否区分大小写。 它不会使用子字符串的默认行为。 |
--header | 可选 Windows-Package-Manager REST 源 HTTP 标头。 |
--authentication-mode | 指定身份验证窗口首选项(无提示、无提示首选或交互)。 |
--authentication-account | 指定用于身份验证的帐户。 |
--accept-source-agreements | 用于接受源许可协议,并避免出现提示。 |
--installed | 固定特定的已安装版本。 |
-?、--help | 获取有关此命令的更多帮助。 |
--wait | 提示用户在退出前按任意键。 |
--logs, --open-logs | 打开默认日志位置。 |
--verbose, --verbose-logs | 用于替代日志记录设置并创建详细日志。 |
--nowarn,--ignore-warnings | 禁止警告输出。 |
--disable-interactivity | 禁用交互式提示。 |
--proxy | 设置要用于此执行的代理。 |
--no-proxy | 禁用此执行使用代理。 |
示例
以下示例删除了应用程序的固定。
winget pin remove powertoys
以下示例使用应用程序 ID 删除了应用程序的固定。
winget pin remove --id Microsoft.PowerToys
list
list 子命令用于列出所有当前固定。
用法:
winget pin list [[-q] <query>] [<options>]
参数
Argument | 说明 |
---|---|
-q、--query | 用于搜索应用的查询。 |
选项
这些选项允许你根据需要自定义列出固定。
选项 | 说明 |
---|---|
--id | 将搜索限制为应用程序的 ID。 |
--name | 将搜索限制为应用程序的名称。 |
--moniker | 将搜索限制为针对应用程序列出的名字对象。 |
-s、--source | 将搜索限制为所提供的源名称。 必须后跟源名称。 |
--tag | 将搜索限制为针对应用程序列出的标记。 |
--cmd,--command | 将搜索限制为应用程序的命令。 |
-e、--exact | 在查询中使用确切的字符串,包括检查是否区分大小写。 它不会使用子字符串的默认行为。 |
--header | 可选 Windows-Package-Manager REST 源 HTTP 标头。 |
--authentication-mode | 指定身份验证窗口首选项(无提示、无提示首选或交互)。 |
--authentication-account | 指定用于身份验证的帐户。 |
--accept-source-agreements | 用于接受源许可协议,并避免出现提示。 |
-?、--help | 获取有关此命令的更多帮助。 |
--wait | 提示用户在退出前按任意键。 |
--logs, --open-logs | 打开默认日志位置。 |
--verbose, --verbose-logs | 用于替代日志记录设置并创建详细日志。 |
--nowarn,--ignore-warnings | 禁止警告输出。 |
--disable-interactivity | 禁用交互式提示。 |
--proxy | 设置要用于此执行的代理。 |
--no-proxy | 禁用此执行使用代理。 |
示例
以下示例列出了所有当前固定。
winget pin list
以下示例列出了特定的包固定。
winget pin list --id Microsoft.PowerToys
reset
reset 子命令用于重置所有固定。
使用不含 --force
参数的此子命令将显示要删除的固定。
若要重置所有固定,请包含 --force
参数。
用法:
winget pin reset [<options>]
选项
这些选项允许你自定义重置图钉以满足需求。
选项 | 说明 |
---|---|
--force | 直接运行命令并继续处理非安全相关问题。 |
-s、--source | 将搜索限制为所提供的源名称。 必须后跟源名称。 |
-?、--help | 获取有关此命令的更多帮助。 |
--wait | 提示用户在退出前按任意键。 |
--logs, --open-logs | 打开默认日志位置。 |
--verbose, --verbose-logs | 用于替代日志记录设置并创建详细日志。 |
--nowarn,--ignore-warnings | 禁止警告输出。 |
--disable-interactivity | 禁用交互式提示。 |
--proxy | 设置要用于此执行的代理。 |
--no-proxy | 禁用此执行使用代理。 |
示例
以下示例显示了将重置的所有固定。
winget pin reset
以下示例重置了所有现有固定。
winget pin reset --force