Partager via


Install-Module

Télécharge un ou plusieurs modules à partir d’un référentiel et les installe sur l’ordinateur local.

Syntaxe

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

Description

L’applet de commande Install-Module obtient un ou plusieurs modules qui répondent aux critères spécifiés à partir d’un référentiel en ligne. L’applet de commande vérifie que les résultats de la recherche sont des modules valides et copie les dossiers de modules à l’emplacement d’installation. Les modules installés ne sont pas automatiquement importés après l’installation. Vous pouvez filtrer le module installé en fonction des versions minimales, maximales et exactes des modules spécifiés.

Il s’agit d’une applet de commande proxy pour l’applet de commande Get-InstalledPSResource dans Microsoft.PowerShell.PSResourceGet. Pour plus d’informations, consultez install-PSResource.

Exemples

Exemple 1 : Rechercher et installer un module

Cet exemple recherche un module dans le référentiel et installe le module.

Find-Module -Name PowerShellGet | Install-Module

Le utilise le paramètre Name pour spécifier le module PowerShellGet . Par défaut, la version la plus récente du module est téléchargée à partir du référentiel. L’objet est envoyé vers le bas du pipeline à l’applet de commande Install-Module. Install-Module installe le module pour tous les utilisateurs dans $env:ProgramFiles\PowerShell\Modules.

Exemple 2 : Installer un module par nom

Dans cet exemple, la version la plus récente du module PowerShellGet est installée.

Install-Module -Name PowerShellGet

Le utilise le paramètre Name pour spécifier le module PowerShellGet . Par défaut, la version la plus récente du module est téléchargée à partir du référentiel et installée.

Exemple 3 : Installer un module à l’aide de sa version minimale

Dans cet exemple, la version minimale du module PowerShellGet est installée. Le paramètre MinimumVersion spécifie la version la plus basse du module qui doit être installée. Si une version plus récente du module est disponible, cette version est téléchargée et installée pour tous les utilisateurs.

Install-Module -Name PowerShellGet -MinimumVersion 2.0.1

Le utilise le paramètre Name pour spécifier le module PowerShellGet . Le paramètre MinimumVersion spécifie que la version 2.0.1 est téléchargée à partir du référentiel et installée. Étant donné que la version 2.0.4 est disponible, cette version est téléchargée et installée pour tous les utilisateurs.

Exemple 4 : Installer une version spécifique d’un module

Dans cet exemple, une version spécifique du module PowerShellGet est installée.

Install-Module -Name PowerShellGet -RequiredVersion 2.0.0

Le utilise le paramètre Name pour spécifier le module PowerShellGet . Le paramètre RequiredVersion spécifie que la version 2.0.0 est téléchargée et installée pour tous les utilisateurs.

Exemple 5 : Installer un module uniquement pour l’utilisateur actuel

Cet exemple télécharge et installe la version la plus récente d’un module, uniquement pour l’utilisateur actuel.

Install-Module -Name PowerShellGet -Scope CurrentUser

Le utilise le paramètre Name pour spécifier le module PowerShellGet . Install-Module télécharge et installe la dernière version de PowerShellGet dans le répertoire de l’utilisateur actuel, $HOME\Documents\PowerShell\Modules.

Exemple 6 : Installer la dernière version préliminaire d’un module

Cet exemple montre comment installer la dernière version d’un module lorsque cette version est une version préliminaire. L’installation d’une version préliminaire nécessite le paramètre AllowPrerelease.

Install-Module -Name Microsoft.PowerShell.Crescendo -AllowPrerelease

Cette méthode vous permet d’obtenir la dernière version disponible. Si la dernière version n’est pas une préversion, vous obtenez la dernière version stable du module.

Exemple 7 : Installer une version préliminaire spécifique d’un module

Cet exemple montre comment installer une version préliminaire spécifique d’un module. L’applet de commande Find-Module peut être utilisée pour rechercher des versions préliminaires des modules dans PowerShell Gallery.

Les versions préliminaires ont un format de <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

Utilisez la version affichée dans PowerShell Gallery pour la valeur du paramètre RequiredVersion.

Paramètres

-AcceptLicense

Pour les modules qui nécessitent une licence, AcceptLicense accepte automatiquement le contrat de licence pendant l’installation. Pour plus d’informations, consultez Modules nécessitant une acceptation de licence.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AllowClobber

Remplace les messages d’avertissement relatifs aux conflits d’installation concernant les commandes existantes sur un ordinateur. Remplace les commandes existantes qui ont le même nom que les commandes installées par un module. AllowClobber et Force peuvent être utilisés ensemble dans une commande Install-Module.

L’applet de commande proxy transforme la valeur de ce paramètre en paramètre NoClobber de l’applet de commande Install-PSResource.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AllowPrerelease

Vous permet d’installer un module marqué comme préversion.

L’applet de commande proxy mappe ce paramètre au paramètre préversion de Install-PSResource.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Confirm

Vous invite à confirmer avant d’exécuter l’applet de commande Install-Module.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Credential

Spécifie un compte d’utilisateur disposant des droits d’installation d’un module pour un fournisseur de package ou une source spécifié.

Type:PSCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Force

L’applet de commande proxy ignore ce paramètre, car il n’est pas pris en charge par Install-PSResource.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Utilisé pour l’entrée de pipeline. Une erreur est levée si une valeur fournie directement à InputObject. Utilisez le pipeline pour passer des objets avec le paramètre InputObject.

Type:PSObject[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-MaximumVersion

L’applet de commande proxy utilise la valeur de ce paramètre pour créer une chaîne de recherche de version NuGet à utiliser avec le paramètre Version de Install-PSResource.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-MinimumVersion

L’applet de commande proxy utilise la valeur de ce paramètre pour créer une chaîne de recherche de version NuGet à utiliser avec le paramètre Version de Install-PSResource.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Name

Spécifie les noms exacts des modules à installer à partir de la galerie en ligne. Une liste séparée par des virgules des noms de modules est acceptée. Le nom du module doit correspondre au nom du module dans le référentiel. Utilisez Find-Module pour obtenir la liste des noms de modules.

Type:String[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-PassThru

Lorsque vous utilisez le paramètre passThru , génère un objet PSRepositoryItemInfo pour le module. Il s’agit des mêmes informations que celles que vous obtenez à partir de l’applet de commande Find-Module.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Proxy

L’applet de commande proxy ignore ce paramètre, car il n’est pas pris en charge par Install-PSResource.

Type:Uri
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-ProxyCredential

L’applet de commande proxy ignore ce paramètre, car il n’est pas pris en charge par Install-PSResource.

Type:PSCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Repository

Utilisez le paramètre Repository pour spécifier le nom du référentiel à partir duquel télécharger et installer un module. Utilisé lorsque plusieurs référentiels sont inscrits. Spécifie le nom d’un référentiel inscrit dans la commande Install-Module. Pour inscrire un référentiel, utilisez Register-PSRepository. Pour afficher les référentiels inscrits, utilisez Get-PSRepository.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-RequiredVersion

L’applet de commande proxy utilise la valeur de ce paramètre pour créer une chaîne de recherche de version NuGet à utiliser avec le paramètre Version de Install-PSResource.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Scope

Spécifie l’étendue d’installation du module. Les valeurs acceptables pour ce paramètre sont AllUsers et CurrentUser.

L’étendue AllUsers installe des modules dans un emplacement accessible à tous les utilisateurs de l’ordinateur :

$env:ProgramFiles\PowerShell\Modules

Le CurrentUser installe des modules dans un emplacement accessible uniquement à l’utilisateur actuel de l’ordinateur. Par exemple:

$HOME\Documents\PowerShell\Modules

Lorsqu’aucune d’étendue n’est définie, la valeur par défaut est définie en fonction de la version de PowerShellGet.

  • Dans les versions de PowerShellGet 1.x, la valeur par défaut est AllUsers, ce qui nécessite une élévation pour l’installation.
  • Pour PowerShellGet versions 2.0.0 et ultérieures dans PowerShell 6 ou version ultérieure :
    • La valeur par défaut est CurrentUser, qui ne nécessite pas d’élévation pour l’installation.
    • Si vous exécutez une session avec élévation de privilèges, la valeur par défaut est AllUsers.
Type:String
Valeurs acceptées:CurrentUser, AllUsers
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SkipPublisherCheck

L’applet de commande proxy transforme ce paramètre en AuthenticodeCheck avant d’appeler Install-PSResource.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WhatIf

Montre ce qui se passerait si une commande Install-Module a été exécutée. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

PSRepositoryItemInfo

Find-Module crée objets PSRepositoryItemInfo qui peuvent être envoyés vers le bas du pipeline vers Install-Module.

String[]

PSObject[]

String

PSCredential

Uri

Sorties

Microsoft.PowerShell.Commands.PSRepositoryItemInfo

Lorsque vous utilisez le paramètre passThru , génère un objet PSRepositoryItemInfo pour le module. Il s’agit des mêmes informations que celles que vous obtenez à partir de l’applet de commande Find-Module.

Notes

PowerShell inclut les alias suivants pour Install-Module:

  • Toutes les plateformes :
    • inmo

Install-Module s’exécute sur PowerShell 5.0 ou versions ultérieures, sur Windows 7 ou Windows 2008 R2 et versions ultérieures de Windows.

Important

Depuis avril 2020, PowerShell Gallery ne prend plus en charge les versions TLS (Transport Layer Security) 1.0 et 1.1. Si vous n’utilisez pas TLS 1.2 ou version ultérieure, vous recevez une erreur lors de la tentative d’accès à PowerShell Gallery. Utilisez la commande suivante pour vous assurer que vous utilisez TLS 1.2 :

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Pour plus d’informations, consultez l’annonce dans le blog PowerShell.

En guise de bonne pratique de sécurité, évaluez le code d’un module avant d’exécuter des applets de commande ou des fonctions pour la première fois. Pour empêcher l’exécution de modules contenant du code malveillant, les modules installés ne sont pas automatiquement importés après l’installation.

Si le nom du module spécifié par le paramètre Name n’existe pas dans le référentiel, retourne une erreur.

Pour installer plusieurs modules, utilisez le paramètre Name et spécifiez un tableau séparé par des virgules de noms de modules. Si vous spécifiez plusieurs noms de module, vous ne pouvez pas utiliser minimumVersion, MaximumVersionou RequiredVersion. Find-Module crée objets PSRepositoryItemInfo qui peuvent être envoyés vers le bas du pipeline vers Install-Module. Le pipeline est un autre moyen de spécifier plusieurs modules à installer dans une seule commande.

Par défaut, les modules pour l’étendue de AllUsers sont installés dans $env:ProgramFiles\PowerShell\Modules. La valeur par défaut empêche toute confusion lorsque vous installez des ressources DSC (Desired State Configuration) PowerShell.

Une installation de module échoue et ne peut pas être importée si elle n’a pas de .psm1, .psd1ou .dll du même nom dans le dossier. Utilisez le paramètre Forcer pour installer le module.

Si la version d’un module existant correspond au nom spécifié par le paramètre Name , et que le paramètre MinimumVersion ou RequiredVersion ne sont pas utilisés, continue silencieusement, mais n’installe pas le module.

Si la version d’un module existant est supérieure à la valeur du paramètre MinimumVersion ou égale à la valeur du paramètre RequiredVersion , continue silencieusement, mais n’installe pas le module.

Si le module existant ne correspond pas aux valeurs spécifiées par l'MinimumVersion ou paramètres RequiredVersion, une erreur se produit dans la commande Install-Module. Par exemple, si la version du module installé existant est inférieure à la valeur MinimumVersion ou non égale à la valeur RequiredVersion.

Install-Module installe également tous les modules dépendants spécifiés comme requis par l’éditeur de module. L’éditeur répertorie les modules requis et leurs versions dans le manifeste du module.