Install-Module
从存储库下载一个或多个模块,并将其安装到本地计算机上。
语法
Install-Module
[-Name] <string[]>
[-MinimumVersion <version>]
[-MaximumVersion <version>]
[-RequiredVersion <version>]
[-Repository <string[]>]
[-Scope <string>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Install-Module
[-InputObject] <psobject[]>
[-Scope <string>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
cmdlet Install-Module
从联机存储库获取满足指定条件的一个或多个模块。 cmdlet 验证搜索结果是否为有效的模块,并将模块文件夹复制到安装位置。 安装后不会自动导入已安装的模块。
可以根据指定模块的最低版本、最大版本和确切版本来筛选安装的模块。
如果正在安装的模块具有相同的名称或版本,或包含现有模块中的命令,则会显示警告消息。 确认要安装模块并重写警告后,请使用 -Force
参数。 根据存储库设置,可能需要回答提示模块安装才能继续。
这些示例使用 PowerShell 库 作为唯一已注册的存储库。 Get-PSRepository
显示已注册的存储库。 如果有多个已注册的存储库,请使用 -Repository
参数指定存储库的名称。
示例
示例 1:查找并安装模块
此示例在存储库中查找模块并安装该模块。
Find-Module -Name PowerShellGet | Install-Module
Find-Module
使用 Name 参数指定 PowerShellGet 模块。 默认情况下,模块的最新版本是从存储库下载的。 对象在管道中向下发送到 Install-Module
cmdlet。 Install-Module
为 中的所有 $env:ProgramFiles\WindowsPowerShell\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\WindowsPowerShell\Modules
。
参数
-Confirm
在运行 Install-Module
cmdlet 之前提示你进行确认。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
安装一个模块并覆盖有关模块安装冲突的警告消息。 如果计算机上已存在同名的模块, 则 Force 允许安装多个版本。 如果存在具有相同名称和版本的现有模块, 则 Force 将覆盖该版本。
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。 不能在同一Install-Module
命令中使用 MaximumVersion 和 RequiredVersion。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MinimumVersion
指定要安装的单个模块的最低版本。 如果有较新版本的模块可用,则会安装较新版本。 如果要安装多个模块,则无法使用 MinimumVersion。 不能在同一Install-Module
命令中使用 MinimumVersion 和 RequiredVersion。
Type: | String |
Aliases: | Version |
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 |
-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\WindowsPowerShell\Modules
CurrentUser 将模块安装在只有计算机的当前用户可访问的位置:
$home\Documents\WindowsPowerShell\Modules
如果未定义 作用域 ,则根据当前会话设置默认值:
- 对于提升的 PowerShell 会话, 范围 默认为 AllUsers。
- 对于 PowerShellGet 2.0.0 及更高版本中未提升的 PowerShell 会话, 范围 为 CurrentUser。
- 对于 PowerShellGet 版本 1.6.7 及更早版本中未提升的 PowerShell 会话, 范围 未定义且
Install-Module
失败。
Type: | String |
Accepted values: | AllUsers, CurrentUser |
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 对象。
备注
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\WindowsPowerShell\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 值。