這個wingetpin指令可以限制Windows 封裝管理員將套件升級到特定版本範圍,或是完全阻止它升級套件。 固定的包裹仍upgrade可能獨立存在,並可從Windows 封裝管理員外升級。
釘選類型
WinGet 支援三種類型的封裝釘選:
釘選 (Pinning):將封裝從
winget upgrade --all排除,但允許winget upgrade <package>。 您可以使用--include-pinned引數來讓winget upgrade --all包含釘選的封裝。阻擋:該套件被阻擋在
winget upgrade --all或winget upgrade <package>,你必須解除固定,讓 WinGet 執行一個 upgrade。--force這個選項可以用來覆寫 pin的行為。限制 (Gating):封裝會釘選到特定版本或版本範圍。 您可以指定您想要將封裝釘選到其中的確切版本,或是利用萬用字元
*作為版本的最後部分來指定版本範圍。 例如,如果封裝要釘選至版本1.2.*,則1.2.0到1.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 --all 或 winget 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