Downloads one or more modules from a repository, and installs them on the local computer.
Syntax NameParameterSet (Default)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>]
Description
The Install-Module
cmdlet gets one or more modules that meet specified criteria from an online repository. The cmdlet verifies that search results are valid modules and copies the module folders to the installation location. Installed modules aren't automatically imported after installation. You can filter which module is installed based on the minimum, maximum, and exact versions of specified modules.
This is a proxy cmdlet for the Get-InstalledPSResource
cmdlet in the Microsoft.PowerShell.PSResourceGet. For more information, see Install-PSResource.
This example finds a module in the repository and installs the module.
Find-Module -Name PowerShellGet | Install-Module
The Find-Module
uses the Name parameter to specify the PowerShellGet module. By default, the newest version of the module is downloaded from the repository. The object is sent down the pipeline to the Install-Module
cmdlet. Install-Module
installs the module for all users in $env:ProgramFiles\PowerShell\Modules
.
In this example, the newest version of the PowerShellGet module is installed.
Install-Module -Name PowerShellGet
The Install-Module
uses the Name parameter to specify the PowerShellGet module. By default, the newest version of the module is downloaded from the repository and installed.
In this example, the minimum version of the PowerShellGet module is installed. The MinimumVersion parameter specifies the lowest version of the module that should be installed. If a newer version of the module is available, that version is downloaded and installed for all users.
Install-Module -Name PowerShellGet -MinimumVersion 2.0.1
The Install-Module
uses the Name parameter to specify the PowerShellGet module. The MinimumVersion parameter specifies that version 2.0.1 is downloaded from the repository and installed. Because version 2.0.4 is available, that version is downloaded and installed for all users.
In this example, a specific version of the PowerShellGet module is installed.
Install-Module -Name PowerShellGet -RequiredVersion 2.0.0
The Install-Module
uses the Name parameter to specify the PowerShellGet module. The RequiredVersion parameter specifies that version 2.0.0 is downloaded and installed for all users.
This example downloads and installs the newest version of a module, only for the current user.
Install-Module -Name PowerShellGet -Scope CurrentUser
The Install-Module
uses the Name parameter to specify the PowerShellGet module. Install-Module
downloads and installs the newest version of PowerShellGet into the current user's directory, $HOME\Documents\PowerShell\Modules
.
This example shows how to install the latest version of a module when that version is a prerelease version. Installing a prerelease version requires the AllowPrerelease parameter.
Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease
Using this method you get the latest version available. If the latest version isn't a prerelease, you get the latest stable version of the module.
Example 7: Install a specific prerelease version of a moduleThis example shows how to install a specific prerelease version of a module. The Find-Module
cmdlet can be used to find prerelease versions of modules in the PowerShell Gallery.
Prerelease versions have a format of <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
Use the version shown in the PowerShell Gallery for the value of the RequiredVersion parameter.
Parameters -AcceptLicenseFor modules that require a license, AcceptLicense automatically accepts the license agreement during installation. For more information, see Modules Requiring License Acceptance.
Parameter properties Type: SwitchParameter Default value: None Supports wildcards: False DontShow: False Parameter sets (All) Position: Named Mandatory: False Value from pipeline: False Value from pipeline by property name: False Value from remaining arguments: False -AllowClobberOverrides warning messages about installation conflicts about existing commands on a computer. Overwrites existing commands that have the same name as commands being installed by a module. AllowClobber and Force can be used together in an Install-Module
command.
The proxy cmdlet transform the value of this parameter to the NoClobber parameter of the Install-PSResource
cmdlet.
Allows you to install a module marked as a pre-release.
The proxy cmdlet maps this parameter to the Prerelease parameter of Install-PSResource
.
Prompts you for confirmation before running the Install-Module
cmdlet.
Specifies a user account that has rights to install a module for a specified package provider or source.
Parameter properties Type: PSCredential Default value: None Supports wildcards: False DontShow: False Parameter sets (All) Position: Named Mandatory: False Value from pipeline: False Value from pipeline by property name: True Value from remaining arguments: False -ForceThe proxy cmdlet ignores this parameter since it's not supported by Install-PSResource
.
Used for pipeline input. An error is thrown if a value supplied directly to InputObject. Use the pipeline to pass objects with the InputObject parameter.
Parameter properties Type:PSObject[]
Default value: None Supports wildcards: False DontShow: False Parameter sets InputObject Position: 0 Mandatory: True Value from pipeline: True Value from pipeline by property name: True Value from remaining arguments: False -MaximumVersionThe proxy cmdlet uses the value of this parameter to create a NuGet version search string for use with the Version parameter of Install-PSResource
.
The proxy cmdlet uses the value of this parameter to create a NuGet version search string for use with the Version parameter of Install-PSResource
.
Specifies the exact names of modules to install from the online gallery. A comma-separated list of module names is accepted. The module name must match the module name in the repository. Use Find-Module
to get a list of module names.
String[]
Default value: None Supports wildcards: False DontShow: False Parameter sets NameParameterSet Position: 0 Mandatory: True Value from pipeline: False Value from pipeline by property name: True Value from remaining arguments: False -PassThruWhen using the PassThru parameter, Install-Module
outputs a PSRepositoryItemInfo object for the module. This is the same information that you get from the Find-Module
cmdlet.
The proxy cmdlet ignores this parameter since it's not supported by Install-PSResource
.
The proxy cmdlet ignores this parameter since it's not supported by Install-PSResource
.
Use the Repository parameter to specify the name of repository from which to download and install a module. Used when multiple repositories are registered. Specifies the name of a registered repository in the Install-Module
command. To register a repository, use Register-PSRepository
. To display registered repositories, use Get-PSRepository
.
String[]
Default value: None Supports wildcards: False DontShow: False Parameter sets NameParameterSet Position: Named Mandatory: False Value from pipeline: False Value from pipeline by property name: False Value from remaining arguments: False -RequiredVersionThe proxy cmdlet uses the value of this parameter to create a NuGet version search string for use with the Version parameter of Install-PSResource
.
Specifies the installation scope of the module. The acceptable values for this parameter are AllUsers and CurrentUser.
The AllUsers scope installs modules in a location that's accessible to all users of the computer:
$env:ProgramFiles\PowerShell\Modules
The CurrentUser installs modules in a location that's accessible only to the current user of the computer. For example:
$HOME\Documents\PowerShell\Modules
When no Scope is defined, the default is set based on the PowerShellGet version.
The proxy cmdlet transforms this parameter to AuthenticodeCheck before calling Install-PSResource
.
Shows what would happen if an Install-Module
command was run. The cmdlet isn't run.
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Inputs PSRepositoryItemInfoFind-Module
creates PSRepositoryItemInfo objects that can be sent down the pipeline to Install-Module
.
When using the PassThru parameter, Install-Module
outputs a PSRepositoryItemInfo object for the module. This is the same information that you get from the Find-Module
cmdlet.
PowerShell includes the following aliases for Install-Module
:
inmo
Install-Module
runs on PowerShell 5.0 or later releases, on Windows 7 or Windows 2008 R2 and later releases of Windows.
Important
As of April 2020, the PowerShell Gallery no longer supports Transport Layer Security (TLS) versions 1.0 and 1.1. If you aren't using TLS 1.2 or higher, you will receive an error when trying to access the PowerShell Gallery. Use the following command to ensure you are using TLS 1.2:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
For more information, see the announcement in the PowerShell blog.
As a security best practice, evaluate a module's code before running any cmdlets or functions for the first time. To prevent running modules that contain malicious code, installed modules aren't automatically imported after installation.
If the module name specified by the Name parameter doesn't exist in the repository, Install-Module
returns an error.
To install multiple modules, use the Name parameter and specify a comma-separated array of module names. If you specify multiple module names, you can't use MinimumVersion, MaximumVersion, or RequiredVersion. Find-Module
creates PSRepositoryItemInfo objects that can be sent down the pipeline to Install-Module
. The pipeline is another way to specify multiple modules to install in a single command.
By default, modules for the scope of AllUsers are installed in $env:ProgramFiles\PowerShell\Modules
. The default prevents confusion when you install PowerShell Desired State Configuration (DSC) resources.
A module installation fails and can't be imported if it doesn't have a .psm1
, .psd1
, or .dll
of the same name within the folder. Use the Force parameter to install the module.
If an existing module's version matches the name specified by the Name parameter, and the MinimumVersion or RequiredVersion parameter aren't used, Install-Module
silently continues but doesn't install the module.
If an existing module's version is greater than the value of the MinimumVersion parameter, or equal to the value of the RequiredVersion parameter, Install-Module
silently continues but doesn't install the module.
If the existing module doesn't match the values specified by the MinimumVersion or RequiredVersion parameters, an error occurs in the Install-Module
command. For example, if the version of the existing installed module is lower than the MinimumVersion value or not equal to the RequiredVersion value.
Install-Module
also installs any dependent modules specified as required by the module publisher. The publisher lists the required modules and their versions in the module manifest.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4