Install-Module

從存放庫下載一或多個模組,並將其安裝在本機電腦上。

Syntax

Install-Module
       [-Name] <String[]>
       [-MinimumVersion <String>]
       [-MaximumVersion <String>]
       [-RequiredVersion <String>]
       [-Repository <String[]>]
       [-Credential <PSCredential>]
       [-Scope <String>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-Force]
       [-AllowPrerelease]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-Module
       [-InputObject] <PSObject[]>
       [-Credential <PSCredential>]
       [-Scope <String>]
       [-Proxy <Uri>]
       [-ProxyCredential <PSCredential>]
       [-AllowClobber]
       [-SkipPublisherCheck]
       [-Force]
       [-AcceptLicense]
       [-PassThru]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

Cmdlet Install-Module 會從線上存放庫取得符合指定準則的一或多個模組。 Cmdlet 會驗證搜尋結果是否為有效的模組,並將模組資料夾複製到安裝位置。 安裝之後,不會自動匯入已安裝的模組。 您可以根據指定模組的最小、最大值和確切版本來篩選已安裝的模組。

如果安裝的模組具有相同的名稱或版本,或包含現有模組中的命令,則會顯示警告訊息。 確認您想要安裝模組並覆寫警告之後,請使用 -Force-AllowClobber 參數。 視您的存放庫設定而定,您可能需要回答模組安裝的提示,才能繼續。

這些範例會使用PowerShell 資源庫作為唯一已註冊的存放庫。 Get-PSRepository 會顯示已註冊的存放庫。 如果您有多個已註冊的存放庫,請使用 -Repository 參數來指定存放庫的名稱。

範例

範例 1:尋找並安裝模組

此範例會在存放庫中尋找模組,並安裝模組。

Find-Module -Name PowerShellGet | Install-Module

Find-Module 使用 Name 參數來指定 PowerShellGet 模組。 根據預設,系統會從存放庫下載最新版的模組。 物件會向下傳送至 Cmdlet 的 Install-Module 管線。 Install-Module 會在 中安裝所有使用者的 $env:ProgramFiles\PowerShell\Modules 模組。

範例 2:依名稱安裝模組

在此範例中,已安裝最新版的 PowerShellGet 模組。

Install-Module -Name PowerShellGet

Install-Module 使用 Name 參數來指定 PowerShellGet 模組。 根據預設,模組的最新版本會從存放庫下載並安裝。

範例 3:使用其最低版本安裝模組

在此範例中,已安裝 PowerShellGet 模組的最低版本。 MinimumVersion參數會指定應該安裝的模組最低版本。 如果有較新版本的模組可用,則會針對所有使用者下載並安裝該版本。

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

Install-Module 使用 Name 參數來指定 PowerShellGet 模組。 MinimumVersion參數會指定從存放庫下載2.0.1版並安裝。 因為 2.0.4 版可供使用,所以會針對所有使用者下載並安裝該版本。

範例 4:安裝特定版本的模組

在此範例中,會安裝特定版本的 PowerShellGet 模組。

Install-Module -Name PowerShellGet -RequiredVersion 2.0.0

Install-Module 使用 Name 參數來指定 PowerShellGet 模組。 RequiredVersion參數會指定下載並安裝所有使用者的 2.0.0版。

範例 5:僅為目前使用者安裝模組

此範例只會下載並安裝最新版的模組,僅適用于目前的使用者。

Install-Module -Name PowerShellGet -Scope CurrentUser

Install-Module 使用 Name 參數來指定 PowerShellGet 模組。 Install-Module會將最新版本的PowerShellGet下載並安裝到目前使用者的目錄中。 $home\Documents\PowerShell\Modules

參數

-AcceptLicense

對於需要授權的模組, AcceptLicense 會在安裝期間自動接受授權合約。 如需詳細資訊,請參閱 需要接受授權的模組

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

-AllowClobber

覆寫有關電腦上現有命令之安裝衝突的警告訊息。 覆寫與模組所安裝命令同名的現有命令。 AllowClobberForce 可以在命令中 Install-Module 一起使用。

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

-AllowPrerelease

可讓您安裝標示為發行前版本的模組。

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

-Confirm

在執行 Cmdlet 之前 Install-Module ,提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定有權安裝指定套件提供者或來源之模組的使用者帳戶。

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

-Force

安裝模組,並覆寫有關模組安裝衝突的警告訊息。 如果電腦上已有同名的模組存在, Force 允許安裝多個版本。 如果有具有相同名稱和版本的現有模組, Force 會覆寫該版本。 ForceAllowClobber 可以在命令中 Install-Module 一起使用。

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

-InputObject

用於管線輸入。 如果直接提供給 InputObject的值,就會擲回錯誤。 使用管線傳遞具有 InputObject 參數的物件。

Type:PSObject[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-MaximumVersion

指定要安裝的單一模組版本上限。 安裝的版本必須小於或等於 MaximumVersion。 如果您想要安裝多個模組,則無法使用 MaximumVersionMaximumVersionRequiredVersion 不能用在相同的 Install-Module 命令中。

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

-MinimumVersion

指定要安裝之單一模組的最低版本。 安裝的版本必須大於或等於 MinimumVersion。 如果有較新版本的模組可用,則會安裝較新版本。 如果您想要安裝多個模組,則無法使用 MinimumVersionMinimumVersionRequiredVersion 不能用在相同的 Install-Module 命令中。

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

-Name

指定要從線上資源庫安裝的模組確切名稱。 接受以逗號分隔的模組名稱清單。 模組名稱必須符合存放庫中的模組名稱。 使用 Find-Module 取得模組名稱的清單。

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

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

-Proxy

指定要求的 Proxy 伺服器,而不是直接連線到網際網路資源。

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

-ProxyCredential

指定具有使用 Proxy 參數所指定 Proxy 伺服器之權限的使用者帳戶。

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

-Repository

使用 存放庫 參數來指定用來下載及安裝模組的存放庫。 註冊多個存放庫時使用。 在 命令中 Install-Module 指定已註冊存放庫的名稱。 若要註冊存放庫,請使用 Register-PSRepository 。 若要顯示已註冊的存放庫,請使用 Get-PSRepository

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

指定要安裝的單一模組確切版本。 如果指定版本的存放庫中沒有相符專案,則會顯示錯誤。 如果您想要安裝多個模組,則無法使用 RequiredVersionRequiredVersion不能與MinimumVersionMaximumVersion相同的 Install-Module 命令中使用。

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

-Scope

指定模組的安裝範圍。 此參數可接受的值為 AllUsersCurrentUser

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:None
Accept pipeline input:False
Accept wildcard characters:False

-SkipPublisherCheck

可讓您安裝電腦上已經存在的較新版本模組。 例如,當現有模組由受信任的發行者數位簽署,但新版本不是由受信任的發行者數位簽署時。

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

-WhatIf

顯示執行命令時 Install-Module 會發生什麼情況。 Cmdlet 並不會執行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

PSRepositoryItemInfo

Find-Module會建立可將管線向下傳送至 Install-ModulePSRepositoryItemInfo物件。

String[]

PSObject[]

String

PSCredential

Uri

輸出

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

使用 PassThru 參數時, Install-Module 輸出模組的 PSRepositoryItemInfo 物件。 這是您從 Find-Module Cmdlet 取得的相同資訊。

備註

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

重要

從 2020 年 4 月起,PowerShell 資源庫已不再支援傳輸層安全性 (TLS) 1.0 和 1.1 版。 如果您不是使用 TLS 1.2 或更高版本,您在嘗試存取 PowerShell 資源庫時將會收到錯誤。 使用下列命令來確保您使用的是 TLS 1.2:

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

如需詳細資訊,請參閱 PowerShell 部落格中的公告 \(英文\)。

作為安全性最佳做法,請先評估模組的程式碼,然後再第一次執行任何 Cmdlet 或函式。 為了避免執行包含惡意程式碼的模組,安裝後的模組不會自動匯入。

如果 Name 參數指定的模組名稱不存在於存放庫中, Install-Module 則傳回錯誤。

若要安裝多個模組,請使用 Name 參數,並指定以逗號分隔的模組名稱陣列。 如果您指定多個模組名稱,則無法使用 MinimumVersionMaximumVersionRequiredVersionFind-Module會建立可將管線向下傳送至 Install-ModulePSRepositoryItemInfo物件。 管線是指定要在單一命令中安裝的多個模組的另一種方式。

根據預設, AllUsers 範圍的模組會安裝在 中 $env:ProgramFiles\PowerShell\Modules 。 當您安裝 PowerShell Desired State Configuration (DSC) 資源時,預設值會避免混淆。

如果模組安裝沒有 .psm1.psd1.dll 資料夾內同名,則無法匯入。 使用 Force 參數來安裝模組。

如果現有的模組版本符合 Name 參數所指定的名稱,而且未使用 MinimumVersionRequiredVersion 參數,則以無訊息方式繼續, Install-Module 但不會安裝模組。

如果現有模組的版本大於 MinimumVersion 參數的值,或等於 RequiredVersion 參數的值,則以無訊息方式繼續, Install-Module 但不會安裝模組。

如果現有的模組不符合 MinimumVersionRequiredVersion 參數所指定的值,命令中 Install-Module 就會發生錯誤。 例如,如果現有已安裝模組的版本低於 MinimumVersion 值,或不等於 RequiredVersion 值。

模組安裝也會安裝模組發行者所需的任何相依模組。 發行者會在模組資訊清單中指定必要的模組及其版本。