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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AllowClobber
覆寫有關電腦上現有命令之安裝衝突的警告訊息。
覆寫與模組所安裝命令同名的現有命令。
AllowClobber 和 Force 可以在命令中 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 會覆寫該版本。 Force 和 AllowClobber 可以在命令中 Install-Module
一起使用。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
用於管線輸入。
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MaximumVersion
指定要安裝的單一模組版本上限。 安裝的版本必須小於或等於 MaximumVersion。 如果您想要安裝多個模組,則無法使用 MaximumVersion。 MaximumVersion 和 RequiredVersion 不能用在相同的 Install-Module
命令中。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MinimumVersion
指定要安裝之單一模組的最低版本。 安裝的版本必須大於或等於 MinimumVersion。 如果有較新版本的模組可用,則會安裝較新版本。 如果您想要安裝多個模組,則無法使用 MinimumVersion。
MinimumVersion 和 RequiredVersion 不能用在相同的 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
指定要安裝的單一模組確切版本。 如果指定版本的存放庫中沒有相符專案,就會顯示錯誤。 如果您想要安裝多個模組,則無法使用 RequiredVersion。 RequiredVersion 不能用於與 MinimumVersion 或 MaximumVersion 相同的Install-Module
命令中。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Scope
指定模組的安裝範圍。 此參數可接受的值為 AllUsers 和 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: | 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-Module
的 PSRepositoryItemInfo 物件。
String[]
PSObject[]
輸出
Microsoft.PowerShell.Commands.PSRepositoryItemInfo
使用 PassThru 參數時, Install-Module
輸出模組的 PSRepositoryItemInfo 物件。 這是您從 Find-Module
Cmdlet 取得的相同資訊。
備註
Install-Module
在 PowerShell 5.0 或更新版本、Windows 7 或 Windows 2008 R2 和更新版本的 Windows 上執行。
作為安全性最佳做法,請先評估模組的程式代碼,然後再第一次執行任何 Cmdlet 或函式。 為了避免執行包含惡意代碼的模組,安裝后的模組不會自動匯入。
如果 Name 參數指定的模組名稱不存在於存放庫中, Install-Module
則傳回錯誤。
若要安裝多個模組,請使用 Name 參數,並指定以逗號分隔的模組名稱數位。 如果您指定多個模組名稱,則無法使用 MinimumVersion、 MaximumVersion 或 RequiredVersion。 Find-Module
會建立可將管線向下傳送至 Install-Module
的 PSRepositoryItemInfo 物件。 管線是指定要在單一命令中安裝的多個模組的另一種方式。
根據預設, AllUsers 範圍的模組會安裝在 中 $env:ProgramFiles\PowerShell\Modules
。 當您安裝PowerShell Desired State Configuration (DSC) 資源時,預設值會避免混淆。
如果模組安裝沒有 .psm1
、 .psd1
或 .dll
資料夾內同名,則無法匯入。 使用 Force 參數來安裝模組。
如果現有的模組版本符合 Name 參數所指定的名稱,而且未使用 MinimumVersion 或 RequiredVersion 參數,則以無訊息方式繼續, Install-Module
但不會安裝模組。
如果現有模組的版本大於 MinimumVersion 參數的值,或等於 RequiredVersion 參數的值,則以無訊息方式繼續, Install-Module
但不會安裝模組。
如果現有的模組不符合 MinimumVersion 或 RequiredVersion 參數所指定的值,命令中 Install-Module
就會發生錯誤。 例如,如果現有已安裝模組的版本低於 MinimumVersion 值,或不等於 RequiredVersion 值。
模組安裝也會安裝模組發行者所需的任何相依模組。 發行者會在模組指令清單中指定必要的模組及其版本。