Update-Module
將來自線上組件庫之指定模組的最新版本下載並安裝至本機電腦。
Syntax
Update-Module
[[-Name] <String[]>]
[-RequiredVersion <String>]
[-MaximumVersion <String>]
[-Credential <PSCredential>]
[-Scope <String>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-Force]
[-AllowPrerelease]
[-AcceptLicense]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdlet Update-Module
會從線上資源庫安裝模組的最新版本。 系統會提示您在安裝更新之前確認更新。 更新只會安裝于本機電腦上具有 Install-Module
的模組。 Update-Module
會搜尋 $env:PSModulePath
已安裝的模組。
Update-Module
未指定任何參數的 更新所有已安裝的模組。 若要指定要更新的模組,請使用 Name 參數。 您可以使用 RequiredVersion 參數來更新至模組的特定版本。
採用模組版本號碼的參數需要格式化為版本號碼的字串。
- 標準版本號碼的格式
x.y.z
為 x、y 和 z 是數位 - 發行前版本的格式為
x.y.z-<prerelease_label>
,<prerelease_label>
其中 是指派給該版本的任一字元串。
如果已安裝的模組已經是最新版本,則不會更新模組。 如果在 中 $env:PSModulePath
找不到模組,則會顯示錯誤。
若要顯示已安裝的模組,請使用 Get-InstalledModule
。
範例
範例 1:更新所有模組
此範例會將所有已安裝的模組更新為線上資源庫中的最新版本。
Update-Module
範例 2:透過名稱更新模組
本範例會將特定模組更新為線上資源庫中的最新版本。
Update-Module -Name SpeculationControl
Update-Module
會使用Name參數來更新特定模組的一個,即的一個是一個,即為一個。
範例 3:檢視假設Update-Module執行
此範例會執行假設狀況,以顯示執行時 Update-Module
會發生什麼情況。 此命令未執行。
Update-Module -WhatIf
What if: Performing the operation "Update-Module" on target "Version '2.8.0' of module
'Carbon', updating to version '2.8.1'".
What if: Performing the operation "Update-Module" on target "Version '1.0.10' of module
'SpeculationControl', updating to version '1.0.14'".
Update-Module
會使用 WhatIf 參數來顯示執行時 Update-Module
會發生什麼情況。
範例 4:將模組更新至指定版本
在此範例中,模組會更新為特定版本。 版本必須存在於線上資源庫中,否則會顯示錯誤。
Update-Module -Name SpeculationControl -RequiredVersion 1.0.14
Update-Module
會使用Name參數來指定模組,即一個是一個,是一個。」是一個。 RequiredVersion參數會指定1.0.14 版。
範例 5:在不確認的情況下更新模組
此範例不會要求確認,以從線上資源庫將模組更新為最新版本。 如果已安裝模組, Force 參數會重新安裝模組。
Update-Module -Name SpeculationControl -Force
Update-Module
會使用Name參數來指定模組,即一個是一個,是一個。」是一個。 Force參數會更新模組,而不要求使用者確認。
參數
-AcceptLicense
如果套件需要授權合約,請在安裝期間自動接受授權合約。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AllowPrerelease
可讓您使用標示為發行前版本的較新模組來更新模組。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
在執行 之前 Update-Module
,提示您確認。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
指定有權更新模組的使用者帳戶。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
強制更新每個指定的模組,而不提示要求確認。 如果已安裝模組, 則 Force 會重新安裝模組。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumVersion
指定單一模組的最新版本來更新。 如果您嘗試更新多個模組,則無法新增此參數。 MaximumVersion和RequiredVersion參數不能用於相同的命令中。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
指定要更新的一或多個模組名稱。 Update-Module
會搜尋 $env:PSModulePath
要更新的模組。 如果在 中 $env:PSModulePath
找不到指定模組名稱的相符專案,就會發生錯誤。
模組名稱中會接受萬用字元。 如果您將萬用字元新增至指定的名稱,而且找不到相符專案,則不會發生錯誤。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
傳回代表您正在使用之項目的物件。 根據預設,此 Cmdlet 不會產生任何輸出。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Proxy
指定要求的 Proxy 伺服器,而不是直接連線到網際網路資源。
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ProxyCredential
指定有權使用 Proxy 參數所指定 Proxy 伺服器的使用者帳戶。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-RequiredVersion
指定要將現有已安裝的模組更新至哪一個正確版本。 RequiredVersion指定的版本必須存在於線上資源庫中,否則會顯示錯誤。 如果在單一命令中更新多個模組,則無法使用 RequiredVersion。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Scope
指定模組的安裝範圍。 此參數可接受的值為 AllUsers 和 CurrentUser。 如果未指定 Scope ,則會在 CurrentUser 範圍內安裝更新。
AllUsers範圍需要提高的許可權,並在電腦所有使用者都能存取的位置中安裝模組:
$env:ProgramFiles\PowerShell\Modules
CurrentUser不需要提高的許可權,並將模組安裝在只能供電腦目前使用者存取的位置:
$HOME\Documents\PowerShell\Modules
未定義 範圍 時,會根據 PowerShellGet 版本設定預設值。
- 在 PowerShellGet 2.0.0 版和更新版本中,預設值為 CurrentUser,不需要提高安裝許可權。
- 在 PowerShellGet 1.x 版本中,預設值為 AllUsers,需要提高安裝許可權。
Type: | String |
Accepted values: | CurrentUser, AllUsers |
Position: | Named |
Default value: | CurrentUser |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
顯示執行時 Update-Module
會發生什麼情況。 不會執行此 Cmdlet。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
String[]
輸出
備註
PowerShell 包含的下列別名 Update-Module
:
- 所有平台:
upmo
針對 PowerShell 6.0 版和更新版本,預設安裝範圍一律為 CurrentUser。
CurrentUser 的$HOME\Documents\PowerShell\Modules
模組更新不需要提高的許可權。 AllUsers$env:ProgramFiles\PowerShell\Modules
的模組更新需要提高的許可權。
重要
從 2020 年 4 月起,PowerShell 資源庫已不再支援傳輸層安全性 (TLS) 1.0 和 1.1 版。 如果您不是使用 TLS 1.2 或更高版本,您在嘗試存取 PowerShell 資源庫時將會收到錯誤。 使用下列命令來確保您使用的是 TLS 1.2:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
如需詳細資訊,請參閱 PowerShell 部落格中的公告 \(英文\)。
Update-Module
會在 PowerShell 3.0 或更新版本的 PowerShell、Windows 7 或 Windows 2008 R2 和更新版本的 Windows 上執行。
如果未使用 Install-Module
安裝以Name參數指定的模組,就會發生錯誤。
您只能藉由執行 ,在從線上資源庫安裝的模組上執行 Update-Module
Install-Module
。
如果 Update-Module
嘗試更新正在使用中的二進位檔, Update-Module
會傳回識別問題處理常式的錯誤。 在進程停止之後,系統會通知使用者重試 Update-Module
。