Install-Package
Installs one or more software packages.
Syntax
Install-Package
[-Name] <String[]>
[-RequiredVersion <String>]
[-MinimumVersion <String>]
[-MaximumVersion <String>]
[-Source <String[]>]
[-Credential <PSCredential>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllVersions]
[-Force]
[-ForceBootstrap]
[-WhatIf]
[-Confirm]
[-ProviderName <String[]>]
[<CommonParameters>]
Install-Package
[-InputObject] <SoftwareIdentity[]>
[-Credential <PSCredential>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllVersions]
[-Force]
[-ForceBootstrap]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Install-Package
[-Credential <PSCredential>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllVersions]
[-Force]
[-ForceBootstrap]
[-WhatIf]
[-Confirm]
[-ConfigFile <String>]
[-SkipValidate]
[-Headers <String[]>]
[-FilterOnTag <String[]>]
[-Contains <String>]
[-AllowPrereleaseVersions]
[-Destination <String>]
[-ExcludeVersion]
[-Scope <String>]
[-SkipDependencies]
[<CommonParameters>]
Install-Package
[-Credential <PSCredential>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllVersions]
[-Force]
[-ForceBootstrap]
[-WhatIf]
[-Confirm]
[-ConfigFile <String>]
[-SkipValidate]
[-Headers <String[]>]
[-FilterOnTag <String[]>]
[-Contains <String>]
[-AllowPrereleaseVersions]
[-Destination <String>]
[-ExcludeVersion]
[-Scope <String>]
[-SkipDependencies]
[<CommonParameters>]
Install-Package
[-Credential <PSCredential>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllVersions]
[-Force]
[-ForceBootstrap]
[-WhatIf]
[-Confirm]
[-AllowPrereleaseVersions]
[-Scope <String>]
[-PackageManagementProvider <String>]
[-PublishLocation <String>]
[-ScriptSourceLocation <String>]
[-ScriptPublishLocation <String>]
[-Type <String>]
[-Filter <String>]
[-Tag <String[]>]
[-Includes <String[]>]
[-DscResource <String[]>]
[-RoleCapability <String[]>]
[-Command <String[]>]
[-AcceptLicense]
[-AllowClobber]
[-SkipPublisherCheck]
[-InstallUpdate]
[-NoPathUpdate]
[<CommonParameters>]
Install-Package
[-Credential <PSCredential>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-AllVersions]
[-Force]
[-ForceBootstrap]
[-WhatIf]
[-Confirm]
[-AllowPrereleaseVersions]
[-Scope <String>]
[-PackageManagementProvider <String>]
[-PublishLocation <String>]
[-ScriptSourceLocation <String>]
[-ScriptPublishLocation <String>]
[-Type <String>]
[-Filter <String>]
[-Tag <String[]>]
[-Includes <String[]>]
[-DscResource <String[]>]
[-RoleCapability <String[]>]
[-Command <String[]>]
[-AcceptLicense]
[-AllowClobber]
[-SkipPublisherCheck]
[-InstallUpdate]
[-NoPathUpdate]
[<CommonParameters>]
Description
The
Install-Package
cmdlet installs one or more software packages on the local computer. If you
have multiple software sources, use
Get-PackageProvider
and
Get-PackageSource
to display details
about your providers.
Important
The commands contained in the PackageManagement module are different than the commands provided by the NuGet module in the Package Manager Console of Visual Studio. Each module has commands that are not available in the other. Commands with the same name differ in their specific arguments. For more information, see the PowerShell reference documentation for the Package Manager Console of Visual Studio.
Examples
Example 1: Install a package by package name
The
Install-Package
cmdlet installs a software package and its dependencies.
PS> Install-Package -Name NuGet.Core -Source MyNuGet -Credential Contoso\TestUser
Install-Package
uses parameters to specify the packages
Name
and
Source
. The
Credential
parameter uses a domain user account with permissions to install packages. The
command prompts you for the user account password.
Example 2: Use Find-Package to install a package
In this example, the object returned by
Find-Package
is sent down the pipeline and installed by
Install-Package
.
PS> Find-Package -Name NuGet.Core -Source MyNuGet | Install-Package
Find-Package
uses the
Name
and
Source
parameters to locate a package. The object is sent
down the pipeline and
Install-Package
installs the package on the local computer.
Example 3: Install packages by specifying a range of versions
Install-Package
uses the
MinimumVersion
and
MaximumVersion
parameters to specify a range
of software versions.
PS> Install-Package -Name NuGet.Core -Source MyNuGet -MinimumVersion 2.8.0 -MaximumVersion 2.9.0
Install-Package
uses the
Name
and
Source
parameters to find a package. The
MinimumVersion
and
MaximumVersion
parameters specify a range of software versions. The
highest version in the range is installed.
Parameters
-AcceptLicense
AcceptLicense automatically accepts the license agreement during installation.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AllowClobber
Overrides warning messages about conflicts with existing commands. Overwrites existing commands that have the same name as commands being installed.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AllowPrereleaseVersions
Allows the installation of packages marked as prerelease.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AllVersions
Install-Package
installs all available versions of the package. By default, only the newest
version is installed.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Command
Specifies one or more commands that
Install-Package
searches.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConfigFile
Specifies a path that contains a configuration file.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Contains
Install-Package
gets objects if the
Contains
parameter specifies a value that matches any of
the object's property values.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifies a user account that has permission to access the computer and run commands. Type a user
name, such as
User01
,
Domain01\User01
, or enter a
PSCredential
object, generated by the
Get-Credential
cmdlet. If you type a user name, you're prompted for a password.
When the
Credential
parameter isn't specified,
Install-Package
uses the current user.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Destination
Specifies a path to an input object.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DscResource
Specifies one or more Desired State Configuration (DSC) resources that are searched by
Install-Package
. Use the
Find-DscResource
cmdlet to find DSC resources.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExcludeVersion
Switch to exclude the version number in the folder path.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Specifies terms to search for within the Name and Description properties.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilterOnTag
Specifies a tag that filters results and excludes results that don't contain the specified tag.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Forces the command to run without asking for user confirmation. Overrides restrictions that prevent
Install-Package
from succeeding, with the exception of security.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ForceBootstrap
Forces PackageManagement to automatically install the package provider for the specified package.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Headers
Specifies the package headers.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Includes
Specifies whether
Install-Package
should find all package types. The acceptable values for this
parameter are as follows:
- Cmdlet
- DscResource
- Function
- RoleCapability
- Workflow
Type: | String [ ] |
Accepted values: | Cmdlet, DscResource, Function, RoleCapability, Workflow |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Accepts pipeline input. Specifies a package by using the package's
SoftwareIdentity
type.
Find-Package
outputs a
SoftwareIdentity
object.
Type: | Microsoft.PackageManagement.Packaging.SoftwareIdentity [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstallUpdate
Indicates that
Install-Package
installs updates.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumVersion
Specifies the maximum allowed package version that you want to install. If you don't specify this
parameter,
Install-Package
installs the package's newest version.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MinimumVersion
Specifies the minimum allowed package version that you want to install. If you don't add this
parameter,
Install-Package
installs the package's newest version that satisfies any version
specified by the
MaximumVersion
parameter.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Specifies one or more package names. Multiple package names must be separated by commas.
Type: | String [ ] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoPathUpdate
NoPathUpdate
only applies to the
Install-Script
cmdlet.
NoPathUpdate
is a dynamic
parameter added by the provider and isn't supported by
Install-Package
.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PackageManagementProvider
Specifies the name of the PackageManagement provider.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProviderName
Specifies one or more package provider names to which to scope your package search. You can get
package provider names by running the
Get-PackageProvider
cmdlet.
Type: | String [ ] |
Aliases: | Provider |
Accepted values: | Bootstrap, NuGet, PowerShellGet |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Proxy
Specifies a proxy server for the request, rather than connecting directly to an internet resource.
Type: | Uri |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProxyCredential
Specifies a user account that has permission to use the proxy server specified by the Proxy parameter.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PublishLocation
Specifies the path to a package's published location.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RequiredVersion
Specifies the exact allowed version of the package that you want to install. If you don't add this
parameter,
Install-Package
installs the package's newest version that satisfies any version
specified by the
MaximumVersion
parameter.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RoleCapability
Specifies an array of role capabilities.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Scope
Specifies the scope for which to install the package. The acceptable values for this parameter are as follows:
- CurrentUser
- AllUsers
Type: | String |
Accepted values: | CurrentUser, AllUsers |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScriptPublishLocation
Specifies the path to a script's published location.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ScriptSourceLocation
Specifies the script source location.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDependencies
Skips the installation of software dependencies.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipPublisherCheck
Allows you to get a package version that is newer than your installed version. For example, an installed package that is digitally signed by a trusted publisher but a new version isn't digitally signed.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipValidate
Switch that skips validating the credentials of a package.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Source
Specifies one or more package sources. Multiple package source names must be separated by commas.
You can get package source names by running the
Get-PackageSource
cmdlet.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Tag
Specifies one or more strings to search for in the package metadata.
Type: | String [ ] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Type
Specifies whether to search for packages with a module, a script, or both. The acceptable values for this parameter are as follows:
- Module
- Script
- All
Type: | String |
Accepted values: | Module, Script, All |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Shows what would happen if
Install-Package
cmdlet is run. The cmdlet is not run.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
Microsoft.PackageManagement.Packaging.SoftwareIdentity
You can pipe a SoftwareIdentity object to this cmdlet.
Outputs
Microsoft.PackageManagement.Packaging.SoftwareIdentity
This cmdlet returns a SoftwareIdentity object for each package it installs.
Notes
Including a package provider in a command can make dynamic parameters available to a cmdlet. Dynamic
parameters are specific to a package provider. The
Get-Help
cmdlet lists a cmdlet's parameter sets
and includes the provider's parameter set. For example,
Install-Package
has the
PowerShellGet
parameter set that includes
-NoPathUpdate
,
AllowClobber
, and
SkipPublisherCheck
.
Important
As of April 2020, the PowerShell Gallery no longer supports Transport Layer Security (TLS) versions 1.0 and 1.1. If you are not 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.