分享方式:


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 已安裝的模組。

這是Microsoft.PowerShell.PSResourceGet中 Cmdlet 的 Proxy Cmdlet Update-PSResource 。 如需詳細資訊,請參閱 Update-PSResource

範例

範例 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 參數來指定 module, 而為[一元][Control]。 RequiredVersion參數會指定1.0.14版。

範例 5:在不確認的情況下更新模組

此範例不會要求確認從線上資源庫將模組更新為最新版本。 如果已安裝模組, Force 參數會重新安裝模組。

Update-Module -Name SpeculationControl -Force

Update-Module 會使用 Name 參數來指定 module, 而為[一元][Control]。 Force參數會更新模組,而不要求使用者確認。

參數

-AcceptLicense

如果套件需要授權合約,請在安裝期間自動接受授權合約。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AllowPrerelease

可讓您使用標示為發行前版本的較新模組來更新模組。

Proxy Cmdlet 會將此參數對應至 的 Update-PSResource發行前版本參數。

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

Proxy Cmdlet 會使用此參數的值來建立 NuGet 版本搜尋字串,以搭配 的 Update-PSResourceVersion參數使用。

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 Cmdlet 會忽略此參數,因為它不受 支援 Update-PSResource

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ProxyCredential

Proxy Cmdlet 會忽略此參數,因為它不受 支援 Update-PSResource

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-RequiredVersion

Proxy Cmdlet 會使用此參數的值來建立 NuGet 版本搜尋字串,以搭配 的 Update-PSResourceVersion參數使用。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Scope

指定模組的安裝範圍。 此參數可接受的值為 AllUsersCurrentUser。 如果未指定 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[]

String

PSCredential

Uri

輸出

Object

備註

PowerShell 包含下列的 Update-Module 別名:

  • 所有平台:
    • upmo

針對 PowerShell 6.0 版和更新版本,預設安裝範圍一律為 CurrentUserCurrentUser$HOME\Documents\PowerShell\Modules 模組更新不需要提高的許可權。 AllUsers$env:ProgramFiles\PowerShell\Modules 模組更新需要提高的許可權。

PowerShell 資源庫不再支援傳輸層安全性 (TLS) 1.0 和 1.1 版。 您必須使用 TLS 1.2 或更高版本。 使用下列命令來確保您使用的是 TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

Update-Module 在 PowerShell 3.0 或更新版本的 PowerShell、Windows 7 或 Windows 2008 R2 和更新版本的 Windows 上執行。

如果您以 Name 參數指定的模組未使用 Install-Module 安裝,就會發生錯誤。

您只能 Update-Module 藉由執行 ,在從線上資源庫安裝的模組上執行 Install-Module

如果 Update-Module 嘗試更新正在使用中的二進位檔, Update-Module 則傳回識別問題處理常式的錯誤。 在進程停止之後,系統會通知使用者重試 Update-Module