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>]
说明
cmdlet Install-Module
从联机存储库获取符合指定条件的一个或多个模块。 cmdlet 验证搜索结果是否为有效模块,并将模块文件夹复制到安装位置。 安装后不会自动导入已安装的模块。
可以根据指定模块的最低版本、最大版本和确切版本来筛选安装的模块。
如果安装的模块具有相同的名称或版本,或者包含现有模块中的命令,则会显示警告消息。 确认要安装模块并重写警告后,请使用 -Force
和 -AllowClobber
参数。 根据存储库设置,可能需要回答模块安装继续的提示。
这些示例使用 PowerShell 库 作为唯一已注册的存储库。 Get-PSRepository
显示已注册的存储库。 如果有多个已注册的存储库,请使用 -Repository
参数指定存储库的名称。
示例
示例 1:查找并安装模块
此示例在存储库中查找一个模块并安装该模块。
Find-Module -Name PowerShellGet | Install-Module
使用 Find-Module
Name 参数指定 PowerShellGet 模块。 默认情况下,从存储库下载最新版本的模块。 对象在管道中向下发送到 Install-Module
cmdlet。 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
在运行 Install-Module
cmdlet 之前,会提示你进行确认。
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
用于管道输入。 如果值直接提供给 InputObject,则会引发错误。 使用管道传递具有 InputObject 参数的对象。
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MaximumVersion
指定要安装的单个模块的最大版本。 安装的版本必须小于或等于 MaximumVersion。 如果要安装多个模块,则不能使用 MaximumVersion。 不能在同一Install-Module
命令中使用 MaximumVersion 和 RequiredVersion。
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
为请求指定代理服务器,而不是直接连接到 Internet 资源。
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ProxyCredential
指定有权使用由 Proxy 参数指定的代理服务器的用户帐户。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Repository
使用 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
创建 PSRepositoryItemInfo 对象,这些对象可通过管道 Install-Module
向下发送到 。
String[]
PSObject[]
输出
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 参数并指定以逗号分隔的模块名称数组。 如果指定多个模块名称,则无法使用 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 值。
模块安装还将安装模块发布者所需的任何依赖模块。 发布者将在模块清单中指定所需的模块及其版本。