共用方式為


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 參數。 視您的存放庫設定而定,您可能需要回答模組安裝的提示,才能繼續。

採用模組版本號碼的參數需要格式化為版本號碼的字串。

  • 標準版本號碼的格式 x.y.z 為 x、y 和 z 是數位
  • 發行前版本的格式為 x.y.z-<prerelease_label><prerelease_label> 其中 是指派給該版本的任一字元串。

這些範例會使用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

範例 6:安裝模組的最新發行前版本

此範例示範當該版本是發行前版本時,如何安裝最新版的模組。 安裝發行前版本需要 AllowPrerelease 參數。

Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease

使用這個方法,您會取得可用的最新版本。 如果最新版本不是發行前版本,您會取得模組的最新穩定版本。

範例 7:安裝模組的特定發行前版本

此範例示範如何安裝模組的特定發行前版本。 Cmdlet Find-Module 可用來在PowerShell 資源庫中尋找模組的發行前版本。

發行前版本的格式 <version_number>-<prerelease_label> 為 。

Find-Module PSReadLine -AllVersions -AllowPrerelease | Select-Object -First 5

Version        Name             Repository       Description
-------        ----             ----------       -----------
2.2.6          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.5          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.4-beta1    PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.3          PSReadLine       PSGallery        Great command line editing in the PowerS…
2.2.2          PSReadLine       PSGallery        Great command line editing in the PowerS…

Install-Module -Name PSReadLine -RequiredVersion 2.2.4-beta1 -AllowPrerelease

針對RequiredVersion參數的值,請使用PowerShell 資源庫中顯示的版本。

參數

-AcceptLicense

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

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

-AllowClobber

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

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

在執行 Cmdlet 之前 Install-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 允許安裝多個版本。 如果有具有相同名稱和版本的現有模組, Force 會覆寫該版本。 ForceAllowClobber 可以在命令中 Install-Module 一起使用。

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

-InputObject

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

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

-MaximumVersion

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

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

-MinimumVersion

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

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

-Name

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

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

-PassThru

Type:SwitchParameter
Position:Named
Default value:False
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

-Repository

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

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

-RequiredVersion

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

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

-Scope

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

AllUsers範圍會在電腦所有使用者可存取的位置安裝模組:

$env:ProgramFiles\PowerShell\Modules

CurrentUser會將模組安裝在只有電腦目前使用者可存取的位置。 例如:

$HOME\Documents\PowerShell\Modules

未定義 範圍 時,會根據 PowerShellGet 版本設定預設值。

  • 在 PowerShellGet 1.x 版本中,預設值為 AllUsers,需要提高安裝許可權。
  • 針對 PowerShell 6 或更高版本中的 PowerShellGet 2.0.0 版和更新版本:
    • 預設值為 CurrentUser,不需要提高安裝許可權。
    • 如果您是在提升許可權的會話中執行,則預設值為 AllUsers
Type:String
Accepted values:CurrentUser, AllUsers
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipPublisherCheck

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

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

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required: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 取得的相同資訊。

備註

PowerShell 包含的下列別名 Install-Module

  • 所有平台:
    • inmo

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 參數,並指定以逗號分隔的模組名稱陣列。 如果您指定多個模組名稱,則無法使用MinimumVersionMaximumVersion 或 RequiredVersion Find-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 值。

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