Install-Module
從存放庫下載一或多個模組,並將其安裝在本機計算機上。
語法
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
Install-Module
Cmdlet 會從在線存放庫取得一或多個符合指定準則的模組。 Cmdlet 會驗證搜尋結果是否為有效的模組,並將模組資料夾複製到安裝位置。 安裝之後不會自動匯入已安裝的模組。
您可以根據指定模組的最小、最大值和確切版本來篩選已安裝的模組。
這是 Microsoft.PowerShell.PSResourceGet中 Get-InstalledPSResource
Cmdlet 的 Proxy Cmdlet。 如需詳細資訊,請參閱 Install-PSResource。
範例
範例 1:尋找並安裝模組
此範例會在存放庫中尋找模組,並安裝模組。
Find-Module -Name PowerShellGet | Install-Module
Install-Module
Cmdlet。
Install-Module
為 $env:ProgramFiles\PowerShell\Modules
中的所有使用者安裝模組。
範例 2:依名稱安裝模組
在此範例中,已安裝最新版的 PowerShellGet 模組。
Install-Module -Name PowerShellGet
範例 3:使用其最低版本安裝模組
在此範例中,已安裝 PowerShellGet 模組的最低版本。 MinimumVersion 參數會指定應安裝的模組最低版本。 如果有較新版本的模組可用,則會針對所有使用者下載並安裝該版本。
Install-Module -Name PowerShellGet -MinimumVersion 2.0.1
範例 4:安裝特定版本的模組
在此範例中,已安裝特定版本的 PowerShellGet 模組。
Install-Module -Name PowerShellGet -RequiredVersion 2.0.0
範例 5:僅針對目前使用者安裝模組
此範例只會下載並安裝最新版的模組,僅適用於目前的使用者。
Install-Module -Name PowerShellGet -Scope CurrentUser
Install-Module
下載並安裝最新版的 PowerShellGet 到目前使用者的目錄中,$HOME\Documents\PowerShell\Modules
。
範例 6:安裝模組的最新發行前版本
此範例示範當該版本是發行前版本時,如何安裝模組的最新版本。 安裝發行前版本需要 AllowPrerelease 參數。
Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease
使用此方法時,您會取得可用的最新版本。 如果最新版本不是發行前版本,您會取得模組的最新穩定版本。
範例 7:安裝模組的特定發行前版本
此範例示範如何安裝模組的特定發行前版本。
Find-Module
Cmdlet 可用來在 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 會在安裝期間自動接受許可協定。 如需詳細資訊,請參閱 模組要求接受授權。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-AllowClobber
覆寫有關電腦上現有命令之安裝衝突的警告訊息。
覆寫與模組所安裝命令名稱相同的現有命令。
AllowClobber 和 Force 可以在 Install-Module
命令中一起使用。
Proxy Cmdlet 會將此參數的值轉換為 Install-PSResource
Cmdlet 的 NoClobber 參數。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-AllowPrerelease
可讓您安裝標示為發行前版本的模組。
Proxy Cmdlet 會將此參數對應至 Install-PSResource
的 發行前版本 參數。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Confirm
在執行 Install-Module
Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Credential
指定有權為指定的套件提供者或來源安裝模組的用戶帳戶。
類型: | PSCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Force
Proxy Cmdlet 會忽略此參數,因為 Install-PSResource
不支援此參數。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
用於管線輸入。 如果直接提供給 InputObject 的值,就會擲回錯誤。 使用管線傳遞具有 InputObject 參數的物件。
類型: | PSObject[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-MaximumVersion
Proxy Cmdlet 會使用此參數的值來建立 NuGet 版本搜尋字串,以搭配 Install-PSResource
的 Version 參數使用。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-MinimumVersion
Proxy Cmdlet 會使用此參數的值來建立 NuGet 版本搜尋字串,以搭配 Install-PSResource
的 Version 參數使用。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
指定要從在線資源庫安裝之模組的確切名稱。 接受以逗號分隔的模組名稱清單。 模組名稱必須符合存放庫中的模組名稱。 使用 Find-Module
來取得模組名稱的清單。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-PassThru
使用 PassThru 參數時,Install-Module
輸出模組的 PSRepositoryItemInfo 物件。 這是您從 Find-Module
Cmdlet 取得的相同資訊。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Proxy
Proxy Cmdlet 會忽略此參數,因為 Install-PSResource
不支援此參數。
類型: | Uri |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ProxyCredential
Proxy Cmdlet 會忽略此參數,因為 Install-PSResource
不支援此參數。
類型: | PSCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Repository
使用 Repository 參數,指定要從中下載並安裝模組的存放庫名稱。 註冊多個存放庫時使用。 在 Install-Module
命令中指定已註冊存放庫的名稱。 若要註冊存放庫,請使用 Register-PSRepository
。
若要顯示已註冊的存放庫,請使用 Get-PSRepository
。
類型: | String[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RequiredVersion
Proxy Cmdlet 會使用此參數的值來建立 NuGet 版本搜尋字串,以搭配 Install-PSResource
的 Version 參數使用。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Scope
指定模組的安裝範圍。 此參數的可接受值 AllUsers 和 CurrentUser。
AllUsers 範圍會在電腦所有使用者可存取的位置安裝模組:
$env:ProgramFiles\PowerShell\Modules
CurrentUser 會將模組安裝在只能存取電腦目前使用者的位置。 例如:
$HOME\Documents\PowerShell\Modules
未定義 範圍 時,會根據PowerShellGet版本設定預設值。
- 在 PowerShellGet 1.x 版本中,預設值為 AllUsers,需要提高安裝許可權。
- 針對 PowerShell 6 或更新版本中的 PowerShellGet 2.0.0 版和更新版本:
- 默認值為 CurrentUser,不需要提高安裝許可權。
- 如果您是在提升權限的工作階段中執行,預設值為 AllUsers。
類型: | String |
接受的值: | CurrentUser, AllUsers |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SkipPublisherCheck
Proxy Cmdlet 會先將此參數轉換成 AuthenticodeCheck,再呼叫 Install-PSResource
。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Install-Module
命令時會發生什麼情況。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
PSRepositoryItemInfo
Find-Module
會建立 PSRepositoryItemInfo 物件,以便將管線向下傳送至 Install-Module
。
String[]
PSObject[]
輸出
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 參數,並指定以逗號分隔的模組名稱陣列。 如果您指定多個模組名稱,則無法使用 MinimumVersion、MaximumVersion或 RequiredVersion。
Find-Module
會建立 PSRepositoryItemInfo 物件,以便將管線向下傳送至 Install-Module
。 管線是指定要在單一命令中安裝的多個模組的另一種方式。
根據預設,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 值。
Install-Module
也會安裝模組發行者所指定的任何相依模組。
發行者會在模組指令清單中列出所需的模組及其版本。