pin 指令(winget)

這個wingetpin指令可以限制Windows 封裝管理員將套件升級到特定版本範圍,或是完全阻止它升級套件。 固定的包裹仍upgrade可能獨立存在,並可從Windows 封裝管理員外升級。

釘選類型

WinGet 支援三種類型的封裝釘選:

  • 釘選 (Pinning):將封裝從 winget upgrade --all 排除,但允許 winget upgrade <package>。 您可以使用 --include-pinned 引數來讓 winget upgrade --all 包含釘選的封裝。

  • 阻擋:該套件被阻擋在 winget upgrade --allwinget upgrade <package>,你必須解除固定,讓 WinGet 執行一個 upgrade。 --force這個選項可以用來覆寫 pin的行為。

  • 限制 (Gating):封裝會釘選到特定版本或版本範圍。 您可以指定您想要將封裝釘選到其中的確切版本,或是利用萬用字元 * 作為版本的最後部分來指定版本範圍。 例如,如果封裝要釘選至版本 1.2.*,則 1.2.01.2.x 之間的任何版本都會被視為有效版本。 --force這個選項可以用來覆寫 pin的行為。

使用方式

winget pin <subcommand> <options>

選項

可用選項如下。

選項 描述
-?--help 取得此命令的其他說明。
--wait 提示使用者在結束之前按任何鍵。
--logs--open-logs 開啟預設記錄位置。
--verbose--verbose-logs 用於覆寫記錄設定,並建立詳細資訊記錄。
--nowarn--ignore-warnings 隱藏警告輸出。
--disable-interactivity 停用互動式提示。
--proxy 設定此執行所要使用的 Proxy。
--no-proxy 停用此執行的 Proxy。

子命令

pin 指令支援以下子指令。

子命令 描述
add 新增一個 pin.
remove 移除一個包裹 pin。
list 列出目前的釘選。
reset 重設釘選

新增

add子指令會新增一個 pin。 此子指令要求你指定精確的套件為 pin。 如果有任何歧義,系統會提示你進一步篩選 add 該子指令到特定的應用程式。

Usage :

winget pin add [[-q] <query>] [<options>]

引數

論點 描述
-q--query 用來搜尋應用程式的查詢。

選項

這些選項可讓您自訂新增釘選的方式,以符合您的需求。

選項 描述
--id 將搜尋限制為應用程式的識別碼。
--name 將搜尋限制為應用程式的名稱。
--moniker 將搜尋限制為針對應用程式列出的別名。
--tag 將搜尋限制為針對應用程式所列出的標籤。
--cmd--command 將搜尋限制為應用程式的命令。
-e--exact 在查詢中使用確切字串,包括檢查是否區分大小寫。 其不會使用子字串的預設行為。
-v--version 讓你能為 pin 指定一個確切的版本。 萬用字元 * 可用來作為版本的最後部分。 改變 pin 行為為 gating
-s--source 將搜尋限制為提供的來源名稱。 後面必須加上來源名稱。
--header 選用性的 Windows-Package-Manager REST 來源 HTTP 標頭。
--authentication-mode 指定驗證視窗喜好設定 (silent、silentPreferred 或 interactive)。
--authentication-account 指定要用於驗證的帳戶。
--accept-source-agreements 用於接受來源授權合約且避免提示。
--force 直接執行命令,並繼續處理非安全性相關問題。
--blocking 阻止升級,直到移除, pin 避免覆寫參數。 改變 pin 行為為 blocking
--installed 釘選特定的已安裝版本
-?--help 取得此命令的其他說明。
--wait 提示使用者在結束之前按任何鍵。
--logs--open-logs 開啟預設記錄位置。
--verbose--verbose-logs 用於覆寫記錄設定,並建立詳細資訊記錄。
--nowarn--ignore-warnings 隱藏警告輸出。
--disable-interactivity 停用互動式提示。
--proxy 設定此執行所要使用的 Proxy。
--no-proxy 停用此執行的 Proxy。

範例

以下範例為應用加入了 a pin 。 新增此功能 pin 將防止該套件在呼叫 winget upgrade --all時升級。 使用 --include-pinned 引數搭配 winget upgrade --all 來包含任何已釘選的封裝。

winget pin add powertoys

以下範例為應用程式新增了使用其 ID 的阻擋 pin 。 新增阻擋 pin 會阻止該套件在呼叫 winget upgrade --allwinget upgrade <package>時升級。 你需要解除封裝,讓 WinGet 執行 upgrade。

winget pin add --id Microsoft.PowerToys --blocking

以下範例為應用程式新增了使用其 ID 的門檻 pin 。 新增門檻 pin 會阻止套件版本超出 upgrade 特定版本或門檻萬用卡範圍的升級。

winget pin add --id Microsoft.PowerToys --version 0.70.*

移除

remove 指令會移除一個 pin. 這個子指令要求你指定要移除的確切套件 pin 。 如果有任何歧義,系統會提示你進一步篩選 remove 該子指令到特定的應用程式。

Usage :

winget pin remove [[-q] <query>] [<options>]

引數

論點 描述
-q--query 用來搜尋應用程式的查詢。

選項

這些選項可讓您自訂移除釘選的方式,以符合您的需求。

選項 描述
--id 將搜尋限制為應用程式的識別碼。
--name 將搜尋限制為應用程式的名稱。
--moniker 將搜尋限制為針對應用程式列出的別名。
-s--source 將搜尋限制為提供的來源名稱。 後面必須加上來源名稱。
--tag 將搜尋限制為針對應用程式所列出的標籤。
--cmd--command 將搜尋限制為應用程式的命令。
-e--exact 在查詢中使用確切字串,包括檢查是否區分大小寫。 其不會使用子字串的預設行為。
--header 選用性的 Windows-Package-Manager REST 來源 HTTP 標頭。
--authentication-mode 指定驗證視窗喜好設定 (silent、silentPreferred 或 interactive)。
--authentication-account 指定要用於驗證的帳戶。
--accept-source-agreements 用於接受來源授權合約且避免提示。
--installed 釘選特定的已安裝版本。
-?--help 取得此命令的其他說明。
--wait 提示使用者在結束之前按任何鍵。
--logs--open-logs 開啟預設記錄位置。
--verbose--verbose-logs 用於覆寫記錄設定,並建立詳細資訊記錄。
--nowarn--ignore-warnings 隱藏警告輸出。
--disable-interactivity 停用互動式提示。
--proxy 設定此執行所要使用的 Proxy。
--no-proxy 停用此執行的 Proxy。

範例

以下範例移除了應用中的 a pin 。

winget pin remove powertoys

以下範例是利用應用程式的 ID 移除 a pin 。

winget pin remove --id Microsoft.PowerToys

清單

這個 list 子指令會列出所有目前的腳位。

Usage :

winget pin list [[-q] <query>] [<options>]

引數

論點 描述
-q--query 用來搜尋應用程式的查詢。

選項

這些選項可讓您自訂列出釘選的方式,以符合您的需求。

選項 描述
--id 將搜尋限制為應用程式的識別碼。
--name 將搜尋限制為應用程式的名稱。
--moniker 將搜尋限制為針對應用程式列出的別名。
-s--source 將搜尋限制為提供的來源名稱。 後面必須加上來源名稱。
--tag 將搜尋限制為針對應用程式所列出的標籤。
--cmd--command 將搜尋限制為應用程式的命令。
-e--exact 在查詢中使用確切字串,包括檢查是否區分大小寫。 其不會使用子字串的預設行為。
--header 選用性的 Windows-Package-Manager REST 來源 HTTP 標頭。
--authentication-mode 指定驗證視窗喜好設定 (silent、silentPreferred 或 interactive)。
--authentication-account 指定要用於驗證的帳戶。
--accept-source-agreements 用於接受來源授權合約且避免提示。
-?--help 取得此命令的其他說明。
--wait 提示使用者在結束之前按任何鍵。
--logs--open-logs 開啟預設記錄位置。
--verbose--verbose-logs 用於覆寫記錄設定,並建立詳細資訊記錄。
--nowarn--ignore-warnings 隱藏警告輸出。
--disable-interactivity 停用互動式提示。
--proxy 設定此執行所要使用的 Proxy。
--no-proxy 停用此執行的 Proxy。

範例

下列範例會列出所有目前的釘選。

winget pin list

以下範例列出一個特定的封裝 pin。

winget pin list --id Microsoft.PowerToys

重置

reset 子命令會重設所有釘選。

在不使用 --force 引數的情況下使用此子命令,將會顯示將移除的釘選。

若要重設所有釘選,請包含 --force 引數。

Usage :

winget pin reset [<options>]

選項

這些選項可讓您自訂重設釘選的方式,以符合您的需求。

選項 描述
--force 直接執行命令,並繼續處理非安全性相關問題。
-s--source 將搜尋限制為提供的來源名稱。 後面必須加上來源名稱。
-?--help 取得此命令的其他說明。
--wait 提示使用者在結束之前按任何鍵。
--logs--open-logs 開啟預設記錄位置。
--verbose--verbose-logs 用於覆寫記錄設定,並建立詳細資訊記錄。
--nowarn--ignore-warnings 隱藏警告輸出。
--disable-interactivity 停用互動式提示。
--proxy 設定此執行所要使用的 Proxy。
--no-proxy 停用此執行的 Proxy。

範例

下列範例會顯示將重設的所有釘選。

winget pin reset

下列範例會重設所有現有的釘選。

winget pin reset --force