Install-Module

从存储库下载一个或多个模块,并将其安装在本地计算机上。

语法

NameParameterSet (默认值)

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>]

InputObject

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

说明

Install-Module cmdlet 从联机存储库获取一个或多个满足指定条件的模块。 该 cmdlet 验证搜索结果是否为有效的模块,并将模块文件夹复制到安装位置。 安装后不会自动导入已安装的模块。 可以根据指定模块的最低版本、最大版本和确切版本筛选已安装的模块。

如果安装的模块具有相同的名称或版本,或包含现有模块中的命令,则会显示警告消息。 确认要安装模块并重写警告后,请使用 -Force-AllowClobber 参数。 根据存储库设置,可能需要回答模块安装提示才能继续。

这些示例使用 PowerShell 库 作为唯一注册的存储库。 Get-PSRepository 显示已注册的存储库。 如果有多个已注册的存储库,请使用 -Repository 参数指定存储库的名称。

示例

示例 1:查找并安装模块

本示例在存储库中查找模块并安装该模块。

Find-Module -Name PowerShellGet | Install-Module

使用 Find-ModuleName 参数指定 PowerShellGet 模块。 默认情况下,从存储库下载模块的最新版本。 该对象将管道向下发送到 Install-Module cmdlet。 Install-Module 为所有用户 $env:ProgramFiles\PowerShell\Modules安装该模块。

示例 2:按名称安装模块

在此示例中,安装了最新版本的 PowerShellGet 模块。

Install-Module -Name PowerShellGet

使用 Install-ModuleName 参数指定 PowerShellGet 模块。 默认情况下,从存储库下载并安装模块的最新版本。

示例 3:使用其最低版本安装模块

在此示例中,已安装 PowerShellGet 模块的最低版本。 MinimumVersion 参数指定应安装的模块的最低版本。 如果模块的较新版本可用,则会为所有用户下载并安装该版本。

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

使用 Install-ModuleName 参数指定 PowerShellGet 模块。 MinimumVersion 参数指定从存储库下载并安装版本 2.0.1。 由于版本 2.0.4 可用,因此为所有用户下载并安装该版本。

示例 4:安装模块的特定版本

在此示例中,安装了 PowerShellGet 模块的特定版本。

Install-Module -Name PowerShellGet -RequiredVersion 2.0.0

使用 Install-ModuleName 参数指定 PowerShellGet 模块。 RequiredVersion 参数指定为所有用户下载并安装版本 2.0.0

示例 5:仅为当前用户安装模块

此示例仅下载并安装最新版本的模块,仅适用于当前用户。

Install-Module -Name PowerShellGet -Scope CurrentUser

使用 Install-ModuleName 参数指定 PowerShellGet 模块。 Install-Module 将最新版本的 PowerShellGet 下载并安装到当前用户的目录中 $home\Documents\PowerShell\Modules

参数

-AcceptLicense

对于需要许可证的模块, AcceptLicense 会在安装过程中自动接受许可协议。 有关详细信息,请参阅 需要接受许可证的模块

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-AllowClobber

重写有关计算机上现有命令的安装冲突的警告消息。 覆盖与模块安装的命令同名的现有命令。 AllowClobberForce 可以在命令中 Install-Module 一起使用。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-AllowPrerelease

允许安装标记为预发行的模块。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

NameParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Confirm

在运行 Install-Module cmdlet 之前,提示你进行确认。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:cf

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Credential

指定有权为指定的包提供程序或源安装模块的用户帐户。

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Force

安装模块并替代有关模块安装冲突的警告消息。 如果计算机上已存在同名的模块, Force 允许安装多个版本。 如果有具有相同名称和版本的现有模块, 则强制 覆盖该版本。 ForceAllowClobber 可以在命令中 Install-Module 一起使用。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-InputObject

用于管道输入。 如果直接提供给 InputObject 的值,则会引发错误。 使用管道通过 InputObject 参数传递对象。

参数属性

类型:

PSObject[]

默认值:None
支持通配符:False
不显示:False

参数集

InputObject
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False

-MaximumVersion

指定要安装的单个模块的最大版本。 安装的版本必须小于或等于 MaximumVersion。 如果要安装多个模块,则不能使用 MaximumVersionMaximumVersionRequiredVersion 不能在同一 Install-Module 命令中使用。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

NameParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-MinimumVersion

指定要安装的单个模块的最低版本。 安装的版本必须大于或等于 MinimumVersion。 如果有较新版本的模块可用,则安装较新版本。 如果要安装多个模块,则不能使用 MinimumVersionMinimumVersionRequiredVersion 不能在同一 Install-Module 命令中使用。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

NameParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Name

指定要从联机库安装的模块的确切名称。 接受以逗号分隔的模块名称列表。 模块名称必须与存储库中的模块名称匹配。 用于 Find-Module 获取模块名称的列表。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False

参数集

NameParameterSet
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-PassThru

Install-Module cmdlet 从联机存储库获取一个或多个满足指定条件的模块。 该 cmdlet 验证搜索结果是否为有效的模块,并将模块文件夹复制到安装位置。 安装后不会自动导入已安装的模块。 可以根据指定模块的最低版本、最大版本和确切版本筛选已安装的模块。

如果安装的模块具有相同的名称或版本,或包含现有模块中的命令,则会显示警告消息。 确认要安装模块并重写警告后,请使用 -Force-AllowClobber 参数。 根据存储库设置,可能需要回答模块安装提示才能继续。

这些示例使用 PowerShell 库 作为唯一注册的存储库。 Get-PSRepository 显示已注册的存储库。 如果有多个已注册的存储库,请使用 -Repository 参数指定存储库的名称。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Proxy

指定请求的代理服务器,而不是直接连接到 Internet 资源。

参数属性

类型:Uri
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-ProxyCredential

指定有权使用 Proxy 参数指定的代理服务器的用户帐户。

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Repository

使用 Repository 参数指定用于下载和安装模块的存储库。 注册多个存储库时使用。 指定命令中 Install-Module 已注册的存储库的名称。 若要注册存储库,请使用 Register-PSRepository。 若要显示已注册的存储库,请使用 Get-PSRepository

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False

参数集

NameParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-RequiredVersion

指定要安装的单个模块的确切版本。 如果指定版本的存储库中没有匹配项,则会显示错误。 如果要安装多个模块,则不能使用 RequiredVersionRequiredVersion 不能与 Install-ModuleMaximumVersion 在同一命令中使用。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

NameParameterSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Scope

指定模块的安装范围。 此参数的可接受值为 AllUsersCurrentUser

AllUsers 范围将模块安装在计算机的所有用户都可以访问的位置:

$env:ProgramFiles\PowerShell\Modules

CurrentUser 将模块安装在只有计算机的当前用户才能访问的位置。 例如:

$home\Documents\PowerShell\Modules

如果未定义 作用域 ,则会根据 PowerShellGet 版本设置默认值。

  • 在 PowerShellGet 版本 2.0.0 及更高版本中,默认值为 CurrentUser,不需要提升进行安装。
  • 在 PowerShellGet 1.x 版本中,默认值为 AllUsers,这需要提升进行安装。

参数属性

类型:String
默认值:None
接受的值:CurrentUser, AllUsers
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-SkipPublisherCheck

允许安装计算机上已存在的较新版本的模块。 例如,当现有模块由受信任的发布者进行数字签名,但新版本未由受信任的发布者进行数字签名时。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-WhatIf

显示运行命令时 Install-Module 会发生什么情况。 命令脚本未运行。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:无线

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

PSRepositoryItemInfo

Find-Module创建可将管道发送到的 Install-Module 对象。

String

PSObject

String

PSCredential

Uri

输出

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

使用 PassThru 参数时, Install-Module 输出模块的 PSRepositoryItemInfo 对象。 这是从 cmdlet 获取 Find-Module 的相同信息。

备注

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-Module 对象。 管道是指定要在单个命令中安装的多个模块的另一种方法。

默认情况下, 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 值。

模块安装还将安装模块发布者根据需要指定的任何依赖模块。 发布者将在模块清单中指定所需的模块及其版本。