Import-Module

Ajoute des modules à la session active.

Syntax

Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession> 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Name] <string[]>
      -UseWindowsPowerShell
      [-Global]
      [-Prefix <string>]
      [-Function <string[]>]
      [-Cmdlet <string[]>]
      [-Variable <string[]>]
      [-Alias <string[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <version>]
      [-MaximumVersion <string>]
      [-RequiredVersion <version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <string>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession> 
      [<CommonParameters>]
Import-Module
      [-FullyQualifiedName] <ModuleSpecification[]>
      -UseWindowsPowerShell
      [-Global]
      [-Prefix <string>]
      [-Function <string[]>]
      [-Cmdlet <string[]>]
      [-Variable <string[]>]
      [-Alias <string[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <string>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-SkipEditionCheck]
      [-PassThru]
      [-AsCustomObject]
      [-ModuleInfo] <PSModuleInfo[]>
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>] 
      [<CommonParameters>]

Description

L’applet Import-Module de commande ajoute un ou plusieurs modules à la session active. À compter de PowerShell 3.0, les modules installés sont automatiquement importés dans la session lorsque vous utilisez des commandes ou des fournisseurs dans le module. Toutefois, vous pouvez toujours utiliser la Import-Module commande pour importer un module. Vous pouvez désactiver l’importation automatique de modules à l’aide de la $PSModuleAutoloadingPreference variable de préférence. Pour plus d’informations sur la variable $PSModuleAutoloadingPreference, consultez about_Preference_Variables.

Un module est un package qui contient des membres qui peuvent être utilisés dans PowerShell. Les membres incluent des applets de commande, des fournisseurs, des scripts, des fonctions, des variables et d’autres outils et fichiers. Après avoir importé un module, vous pouvez utiliser ses membres dans votre session. Pour plus d’informations sur les modules, consultez about_Modules.

Par défaut, Import-Module importe tous les membres exportés par le module, mais vous pouvez utiliser les paramètres Alias, Fonction, Applet de commande et Variable pour restreindre les membres importés. Le paramètre NoClobber empêche Import-Module l’importation de membres ayant les mêmes noms que les membres de la session active.

Import-Module importe un module uniquement dans la session active. Pour importer le module dans chaque nouvelle session, ajoutez une Import-Module commande à votre profil PowerShell. Pour plus d'informations sur les profils, consultez about_Profiles.

Vous pouvez gérer les ordinateurs Windows distants avec la communication à distance PowerShell activée en créant une session PSSession sur l’ordinateur distant. Utilisez ensuite le paramètre PSSession pour Import-Module importer les modules installés sur l’ordinateur distant. Lorsque vous utilisez les commandes importées dans la session active, les commandes s’exécutent implicitement sur l’ordinateur distant.

À compter de Windows PowerShell 3.0, vous pouvez utiliser Import-Module pour importer des modules CIM (Common Information Model). Les modules CIM définissent les applets de commande dans les fichiers CDXML (Cmdlet Definition XML). Cette fonctionnalité vous permet d’utiliser des applets de commande implémentées dans des assemblys de code non managés, tels que ceux écrits en C++.

Pour les ordinateurs distants qui n’ont pas activé la communication à distance PowerShell, y compris les ordinateurs qui n’exécutent pas le système d’exploitation Windows, vous pouvez utiliser le paramètre CIMSession de Import-Module pour importer des modules CIM à partir de l’ordinateur distant. Les commandes importées s’exécutent implicitement sur l’ordinateur distant. Une session CIMSession est une connexion à Windows Management Instrumentation (WMI) sur l’ordinateur distant.

Exemples

Exemple 1 : Importer les membres d’un module dans la session active

Cet exemple importe les membres du module PSDiagnostics dans la session active.

Import-Module -Name PSDiagnostics

Exemple 2 : Importer tous les modules spécifiés par le chemin du module

Cet exemple importe tous les modules disponibles dans le chemin spécifié par la $env:PSModulePath variable d’environnement dans la session active.

Get-Module -ListAvailable | Import-Module

Exemple 3 : Importer les membres de plusieurs modules dans la session active

Cet exemple importe les membres des modules PSDiagnostics et Dism dans la session active.

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

L’applet Get-Module de commande obtient les modules PSDiagnostics et Dism et enregistre les objets dans la $m variable. Le paramètre ListAvailable est requis lorsque vous obtenez des modules qui ne sont pas encore importés dans la session.

Le paramètre ModuleInfo de Import-Module est utilisé pour importer les modules dans la session active.

Exemple 4 : Importer tous les modules spécifiés par un chemin d’accès

Cet exemple utilise un chemin d’accès explicite pour identifier le module à importer.

Import-Module -Name c:\ps-test\modules\test -Verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.

L’utilisation du paramètre Verbose entraîne Import-Module l’état de progression au fur et à mesure qu’il charge le module. Sans le paramètre Verbose, PassThru ou AsCustomObject , Import-Module ne génère aucune sortie lorsqu’il importe un module.

Exemple 5 : Restreindre les membres du module importés dans une session

Cet exemple montre comment restreindre les membres du module importés dans la session et l’effet de cette commande sur la session. Le paramètre Function limite les membres importés à partir du module. Vous pouvez également utiliser les paramètres Alias, Variable et Applet de commande pour restreindre les autres membres qu’un module importe.

L’applet Get-Module de commande obtient l’objet qui représente le module PSDiagnostics . La propriété ExportedCmdlets répertorie toutes les applets de commande que le module exporte, même si elles n’ont pas toutes été importées.

Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands

Key                          Value
---                          -----
Disable-PSTrace              Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace           Disable-WSManTrace
Enable-PSTrace               Enable-PSTrace
Enable-PSWSManCombinedTrace  Enable-PSWSManCombinedTrace
Enable-WSManTrace            Enable-WSManTrace
Get-LogProperties            Get-LogProperties
Set-LogProperties            Set-LogProperties
Start-Trace                  Start-Trace
Stop-Trace                   Stop-Trace

Get-Command -Module PSDiagnostics

CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Function        Disable-PSTrace      6.1.0.0    PSDiagnostics
Function        Enable-PSTrace       6.1.0.0    PSDiagnostics

L’utilisation du paramètre Module de l’applet Get-Command de commande affiche les commandes qui ont été importées à partir du module PSDiagnostics . Les résultats confirment que seules les applets de commande et Enable-PSTrace les Disable-PSTrace applets de commande ont été importées.

Exemple 6 : Importer les membres d’un module et ajouter un préfixe

Cet exemple importe le module PSDiagnostics dans la session active, ajoute un préfixe aux noms de membres, puis affiche les noms de membres préfixés. Paramètre Préfixe d’ajout Import-Module du x préfixe à tous les membres importés à partir du module. Le préfixe s’applique uniquement aux membres de la session active. Il ne modifie pas le module. Le paramètre PassThru retourne un objet de module qui représente le module importé.

Import-Module PSDiagnostics -Prefix x -PassThru

ModuleType Version    Name               ExportedCommands
---------- -------    ----               ----------------
Script     6.1.0.0    PSDiagnostics      {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...

Get-Command -Module PSDiagnostics

CommandType     Name                                   Version    Source
-----------     ----                                   -------    ------
Function        Disable-xPSTrace                       6.1.0.0    PSDiagnostics
Function        Disable-xPSWSManCombinedTrace          6.1.0.0    PSDiagnostics
Function        Disable-xWSManTrace                    6.1.0.0    PSDiagnostics
Function        Enable-xPSTrace                        6.1.0.0    PSDiagnostics
Function        Enable-xPSWSManCombinedTrace           6.1.0.0    PSDiagnostics
Function        Enable-xWSManTrace                     6.1.0.0    PSDiagnostics
Function        Get-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Set-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Start-xTrace                           6.1.0.0    PSDiagnostics
Function        Stop-xTrace                            6.1.0.0    PSDiagnostics

Get-Command obtient les membres qui ont été importés à partir du module. La sortie indique que les membres de module ont été correctement préfixés.

Exemple 7 : Obtenir et utiliser un objet personnalisé

Cet exemple montre comment obtenir et utiliser l’objet personnalisé retourné par Import-Module.

Les objets personnalisés incluent des membres synthétiques représentant chacun des membres de module importés. Par exemple, les applets de commande et les fonctions dans un module sont converties en méthodes de script de l'objet personnalisé.

Les objets personnalisés sont utiles dans le script. Ils sont également utiles lorsque plusieurs objets importés ont les mêmes noms. Utiliser la méthode de script d'un objet équivaut à spécifier le nom qualifié complet d'un membre importé, y compris son nom de module.

Le paramètre AsCustomObject est utilisable uniquement lors de l’importation d’un module de script. Permet Get-Module de déterminer quels modules disponibles sont un module de script.

Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script
...

$a = Import-Module -Name Show-Calendar -AsCustomObject -Passthru
$a | Get-Member

TypeName: System.Management.Automation.PSCustomObject
Name          MemberType   Definition
----          ----------   ----------
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
ToString      Method       string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

$a."Show-Calendar"()

Le Show-Calendar module de script est importé à l’aide du paramètre AsCustomObject pour demander un objet personnalisé et le paramètre PassThru pour renvoyer l’objet. L’objet personnalisé résultant est enregistré dans la $a variable.

La $a variable est redirigée vers l’applet Get-Member de commande pour afficher les propriétés et méthodes de l’objet enregistré. La sortie affiche une Show-Calendar méthode de script.

Pour appeler la méthode de Show-Calendar script, le nom de la méthode doit être placé entre guillemets, car le nom inclut un trait d’union.

Exemple 8 : Réimporter un module dans la même session

Cet exemple montre comment utiliser le paramètre Force du Import-Module moment où vous importez un module dans la même session. Le paramètre Force supprime le module chargé, puis l’importe à nouveau.

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

La première commande importe le module PSDiagnostics . La deuxième commande importe à nouveau le module, cette fois à l’aide du paramètre Préfixe .

Sans le paramètre Force , la session inclurait deux copies de chaque applet de commande PSDiagnostics , une avec le nom standard et l’autre avec le nom préfixé.

Exemple 9 : Exécuter des commandes qui ont été masquées par des commandes importées

Cet exemple montre comment exécuter des commandes qui ont été masquées par des commandes importées. Le module TestModule inclut une fonction nommée Get-Date qui retourne l’année et le jour de l’année.

Get-Date

Thursday, August 15, 2019 2:26:12 PM

Import-Module TestModule
Get-Date

19227

Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize

CommandType     Name         ModuleName
-----------     ----         ----------
Function        Get-Date     TestModule
Cmdlet          Get-Date     Microsoft.PowerShell.Utility

Microsoft.PowerShell.Utility\Get-Date

Thursday, August 15, 2019 2:28:31 PM

La première Get-Date applet de commande retourne un objet DateTime avec la date actuelle. Après avoir importé le module TestModule , Get-Date retourne l’année et le jour de l’année.

À l’aide du paramètre All d’afficher Get-Command toutes les Get-Date commandes de la session. Les résultats montrent qu’il existe deux Get-Date commandes dans la session, une fonction du module TestModule et une applet de commande du module Microsoft.PowerShell.Utility .

Étant donné que les fonctions sont prioritaires sur les applets de commande, la Get-Date fonction du module TestModule s’exécute, au lieu de l’applet Get-Date de commande. Pour exécuter la version d’origine de , vous devez qualifier le nom de Get-Datela commande avec le nom du module.

Pour plus d’informations sur la priorité des commandes dans PowerShell, consultez about_Command_Precedence.

Exemple 10 : Importer une version minimale d’un module

Cet exemple importe le module PowerShellGet . Il utilise le paramètre MinimumVersion de Import-Module pour importer uniquement la version ou une version 2.0.0 ultérieure du module.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

Vous pouvez également utiliser le paramètre RequiredVersion pour importer une version particulière d’un module, ou utiliser les paramètres module et version de l’mot clé #Requires pour exiger une version particulière d’un module dans un script.

Exemple 11 : Importer à l’aide d’un nom complet

Cet exemple importe une version spécifique d’un module à l’aide de FullyQualifiedName.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version

Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1

PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }

Exemple 12 : Importer à l’aide d’un chemin complet

Cet exemple importe une version spécifique d’un module à l’aide du chemin complet.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path

Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1

PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'

Exemple 13 : Importer un module à partir d’un ordinateur distant

Cet exemple montre comment utiliser l’applet Import-Module de commande pour importer un module à partir d’un ordinateur distant. Cette commande utilise la fonctionnalité de communication à distance implicite de PowerShell.

Quand vous importez des modules à partir d'une autre session, vous pouvez utiliser les applets de commande dans la session active. Toutefois, les commandes qui utilisent les applets de commande s’exécutent dans la session à distance.

$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity

ModuleType Name             ExportedCommands
---------- ----             ----------------
Manifest   NetSecurity      {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...

Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-NetFirewallAddressFilter                       NetSecurity
Function        Get-NetFirewallApplicationFilter                   NetSecurity
Function        Get-NetFirewallInterfaceFilter                     NetSecurity
Function        Get-NetFirewallInterfaceTypeFilter                 NetSecurity
Function        Get-NetFirewallPortFilter                          NetSecurity
Function        Get-NetFirewallProfile                             NetSecurity
Function        Get-NetFirewallRule                                NetSecurity
Function        Get-NetFirewallSecurityFilter                      NetSecurity
Function        Get-NetFirewallServiceFilter                       NetSecurity
Function        Get-NetFirewallSetting                             NetSecurity

Get-NetFirewallRule -DisplayName "Windows Remote Management*" |
  Format-Table -Property DisplayName, Name -AutoSize

DisplayName                                              Name
-----------                                              ----
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP

New-PSSession crée une session distante (PSSession) sur l’ordinateur Server01 . La session PSSession est enregistrée dans la $s variable.

L’exécution Get-Module avec le paramètre PSSession indique que le module NetSecurity est installé et disponible sur l’ordinateur distant. Cette commande équivaut à utiliser l’applet Invoke-Command de commande pour exécuter Get-Module la commande dans la session à distance. Par exemple :

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

L’exécution Import-Module avec le paramètre PSSession importe le module NetSecurity à partir de l’ordinateur distant dans la session active. L’applet Get-Command de commande récupère les commandes qui commencent par Get le module NetSecurity et les incluent Firewall. La sortie confirme que le module et ses applets de commande ont été importés dans la session active.

Ensuite, l’applet Get-NetFirewallRule de commande obtient des règles de pare-feu de gestion à distance Windows sur l’ordinateur Server01 . Cela équivaut à utiliser l’applet Invoke-Command de commande pour s’exécuter Get-NetFirewallRule sur la session à distance.

Exemple 14 : Gérer le stockage sur un ordinateur distant sans le système d’exploitation Windows

Dans cet exemple, l’administrateur de l’ordinateur a installé le fournisseur WMI de découverte de modules, ce qui vous permet d’utiliser des commandes CIM conçues pour le fournisseur.

L’applet New-CimSession de commande crée une session sur l’ordinateur distant nommé RSDGF03. La session se connecte au service WMI sur l’ordinateur distant. La session CIM est enregistrée dans la $cs variable. Import-Moduleutilise cimSession in pour importer le module CIM Stockage à partir de l’ordinateurRSDGF03.$cs

L’applet Get-Command de commande affiche la Get-Disk commande dans le module Stockage. Lorsque vous importez un module CIM dans la session locale, PowerShell convertit les fichiers CDXML pour chaque commande en scripts PowerShell, qui apparaissent en tant que fonctions dans la session locale.

Bien qu’elle Get-Disk soit typée dans la session locale, l’applet de commande s’exécute implicitement sur l’ordinateur distant à partir duquel elle a été importée. La commande retourne des objets de l’ordinateur distant à la session locale.

$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into
# PowerShell scripts. These appear as functions in the local session.
Get-Command Get-Disk

CommandType     Name                  ModuleName
-----------     ----                  ----------
Function        Get-Disk              Storage

# Use implicit remoting to query disks on the remote computer from which the
# module was imported.
Get-Disk

Number Friendly Name           OperationalStatus  Total Size Partition Style
------ -------------           -----------------  ---------- ---------------
0      Virtual HD ATA Device   Online                  40 GB MBR

Paramètres

-Alias

Spécifie les alias que cette applet de commande importe à partir du module dans la session active. Entrez une liste séparée par des virgules des alias. Les caractères génériques sont autorisés.

Au moment de leur importation, certains modules exportent automatiquement les alias sélectionnés dans votre session. Ce paramètre vous permet d'effectuer votre choix parmi les alias exportés.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ArgumentList

Spécifie un tableau d’arguments ou de valeurs de paramètre qui sont passés à un module de script pendant la Import-Module commande. Ce paramètre est valide uniquement lorsque vous importez un module de script.

Vous pouvez également faire référence au paramètre ArgumentList par son alias, arguments. Pour plus d’informations sur le comportement d’ArgumentList, consultez about_Splatting.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsCustomObject

Indique que cette applet de commande retourne un objet personnalisé avec des membres qui représentent les membres du module importés. Ce paramètre n'est valide que pour les modules de script.

Lorsque vous utilisez le paramètre AsCustomObject , Import-Module importe les membres du module dans la session, puis retourne un objet PSCustomObject au lieu d’un objet PSModuleInfo . Vous pouvez enregistrer l’objet personnalisé dans une variable et utiliser l’énumération d’accès aux membres pour appeler les membres.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Assembly

Spécifie un tableau d’objets d’assembly. Cette applet de commande importe les applets de commande et les fournisseurs implémentés dans les objets d’assembly spécifiés. Entrez une variable qui contient les objets d'assembly ou une commande qui crée des objets d'assembly. Vous pouvez également diriger un objet assembly vers Import-Module.

Quand vous utilisez ce paramètre, seuls les applets de commande et les fournisseurs implémentés par les assemblys spécifiés sont importés. Si le module contient d’autres fichiers, ils ne sont pas importés et vous manquez peut-être des membres importants du module. Utilisez ce paramètre pour le débogage et le test du module, ou lorsque vous êtes invité à l’utiliser par l’auteur du module.

Type:Assembly[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimNamespace

Spécifie l'espace de noms d'un autre fournisseur CIM qui expose des modules CIM. La valeur par défaut est l'espace de noms du fournisseur WMI pour la découverte de module.

Utilisez ce paramètre pour importer des modules CIM à partir d’ordinateurs et d’appareils qui n’exécutent pas de système d’exploitation Windows.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimResourceUri

Spécifie un autre emplacement pour les modules CIM. La valeur par défaut est l'URI de ressource du fournisseur WMI pour la découverte de module sur l'ordinateur distant.

Utilisez ce paramètre pour importer des modules CIM à partir d’ordinateurs et d’appareils qui n’exécutent pas de système d’exploitation Windows.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

Spécifie une session CIM sur l'ordinateur distant. Entrez une variable qui contient la session CIM ou une commande qui obtient la session CIM, telle qu’une commande Get-CimSession .

Import-Module utilise la connexion de session CIM pour importer des modules à partir de l’ordinateur distant dans la session active. Lorsque vous utilisez les commandes du module importé dans la session active, les commandes s’exécutent sur l’ordinateur distant.

Vous pouvez utiliser ce paramètre pour importer des modules à partir d’ordinateurs et d’appareils qui n’exécutent pas le système d’exploitation Windows et les ordinateurs Windows qui ont PowerShell, mais qui n’ont pas activé la communication à distance PowerShell.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:CimSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Cmdlet

Spécifie un tableau d’applets de commande que cette applet de commande importe à partir du module dans la session active. Les caractères génériques sont autorisés.

Au moment de leur importation, certains modules exportent automatiquement les applets de commande sélectionnées dans votre session. Ce paramètre vous permet d'effectuer votre choix parmi les applets de commande exportées.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-DisableNameChecking

Indique que cette applet de commande supprime le message qui vous avertit lorsque vous importez une applet de commande ou une fonction dont le nom inclut un verbe non approuvé ou un caractère interdit.

Par défaut, lorsqu’un module que vous importez exporte des applets de commande ou des fonctions qui ont des verbes non approuvés dans leurs noms, PowerShell affiche le message d’avertissement suivant :

AVERTISSEMENT : Certains noms de commandes importés incluent des verbes non approuvés qui peuvent les rendre moins détectables. Utilisez le paramètre Verbose pour obtenir plus d'informations ou tapez Get-Verb pour afficher la liste des verbes approuvés.

Ce message n’est qu’un avertissement. Le module entier est toujours importé, y compris les commandes non conformes. Bien que le message soit affiché aux utilisateurs du module, le problème d'affectation de noms doit être corrigé par l'auteur du module.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Ce paramètre entraîne le chargement d’un module, ou le rechargement, par-dessus celui actuel.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

La valeur peut être un nom de module, une spécification complète du module ou un chemin d’accès à un fichier de module.

Lorsque la valeur est un chemin d’accès, le chemin d’accès peut être qualifié ou relatif complet. Un chemin relatif est résolu par rapport au script qui contient l’instruction using.

Lorsque la valeur est un nom ou une spécification de module, PowerShell recherche PSModulePath pour le module spécifié.

Une spécification de module est une table de hachage qui a les clés suivantes.

  • ModuleName - Obligatoire Spécifie le nom du module.
  • GUID - Facultatif Spécifie le GUID du module.
  • Il est également nécessaire de spécifier au moins l’une des trois clés ci-dessous.
    • ModuleVersion - Spécifie une version minimale acceptable du module.
    • MaximumVersion - Spécifie la version maximale acceptable du module.
    • RequiredVersion - Spécifie une version exacte et requise du module. Cela ne peut pas être utilisé avec les autres clés de version.
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Function

Spécifie un tableau de fonctions que cette applet de commande importe à partir du module dans la session active. Les caractères génériques sont autorisés. Au moment de leur importation, certains modules exportent automatiquement les fonctions sélectionnées dans votre session. Ce paramètre vous permet d'effectuer votre choix parmi les fonctions exportées.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Global

Indique que cette applet de commande importe des modules dans l’état de session global afin qu’ils soient disponibles pour toutes les commandes de la session.

Par défaut, lorsque Import-Module l’applet de commande est appelée à partir de l’invite de commandes, du fichier de script ou du scriptblock, toutes les commandes sont importées dans l’état de session global.

Lorsqu’elle est appelée à partir d’un autre module, Import-Module l’applet de commande importe les commandes d’un module, y compris les commandes des modules imbriqués, dans l’état de session du module appelant.

Conseil

Vous devez éviter d’appeler Import-Module à partir d’un module. Au lieu de cela, déclarez le module cible en tant que module imbriqué dans le manifeste du module parent. La déclaration de modules imbriqués améliore la détectabilité des dépendances.

Le paramètre Global est équivalent au paramètre Scope avec la valeur Global.

Pour restreindre les commandes qu’un module exporte, utilisez une Export-ModuleMember commande dans le module de script.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumVersion

Spécifie une version maximale. Cette applet de commande importe uniquement une version du module inférieure ou égale à la valeur spécifiée. Si aucune version n’est éligible, Import-Module retourne une erreur.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumVersion

Spécifie une version minimale. Cette applet de commande importe uniquement une version du module supérieure ou égale à la valeur spécifiée. Utilisez le nom du paramètre MinimumVersion ou son alias, Version. Si aucune version n’est éligible, Import-Module génère une erreur.

Pour spécifier une version exacte, utilisez le paramètre RequiredVersion . Vous pouvez également utiliser les paramètres Module et Version de l'#Requires mot clé pour exiger une version spécifique d’un module dans un script.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:Version
Aliases:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleInfo

Spécifie un tableau d’objets de module à importer. Entrez une variable qui contient les objets de module ou une commande qui obtient les objets de module, comme la commande suivante : Get-Module -ListAvailable Vous pouvez également diriger des objets de module vers Import-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Spécifie les noms des modules à importer. Entrez le nom du module ou le nom d’un fichier dans le module, tel qu’un .psd1, .psm1ou .ps1.dllun fichier. Les chemins d'accès aux fichiers sont facultatifs. Les caractères génériques carte ne sont pas autorisés. Vous pouvez également diriger les noms de modules et les noms de fichiers vers Import-Module.

Si vous omettez un chemin d’accès, Import-Module recherchez le module dans les chemins enregistrés dans la variable d’environnement $env:PSModulePath .

Spécifiez uniquement le nom du module chaque fois que possible. Lorsque vous spécifiez un nom de fichier, seuls les membres implémentés dans ce fichier sont importés. Si le module contient d’autres fichiers, ils ne sont pas importés et vous manquez peut-être des membres importants du module.

Remarque

Bien qu’il soit possible d’importer un fichier de script (.ps1) en tant que module, les fichiers de script ne sont généralement pas structurés comme le fichier de modules de script (.psm1). L’importation d’un fichier de script ne garantit pas qu’il est utilisable en tant que module. Pour plus d’informations, consultez about_Modules.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-NoClobber

Empêche l’importation de commandes qui ont les mêmes noms que les commandes existantes dans la session active. Par défaut, Import-Module importe toutes les commandes de module exportées.

Les commandes qui ont les mêmes noms peuvent masquer ou remplacer des commandes dans la session. Pour éviter les conflits de noms de commandes dans une session, utilisez les paramètres Préfixe ou NoClobber . Pour plus d’informations sur les conflits de noms et la priorité des commandes, consultez « Modules et conflits de noms » dans about_Modules et about_Command_Precedence.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Retourne un objet représentant le module importé. Par défaut, cette applet de commande ne génère aucune sortie.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

Spécifie un préfixe que cette applet de commande ajoute aux noms des membres du module importés.

Utilisez ce paramètre pour éviter les conflits de noms qui peuvent se produire quand des membres différents dans la session ont le même nom. Ce paramètre ne modifie pas le module et n’affecte pas les fichiers importés par le module pour sa propre utilisation. Ces modules sont appelés modules imbriqués. Cette applet de commande affecte uniquement les noms des membres de la session active.

Par exemple, si vous spécifiez le préfixe UTC, puis importez une Get-Date applet de commande, l’applet de commande est connue dans la session Get-UTCDateet elle n’est pas confondue avec l’applet de commande d’origine Get-Date .

La valeur de ce paramètre est prioritaire sur la propriété DefaultCommandPrefix du module, qui spécifie le préfixe par défaut.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PSSession

Spécifie une session gérée par l’utilisateur (PSSession) PowerShell à partir de laquelle cette applet de commande importe des modules dans la session active. Entrez une variable qui contient une session PSSession ou une commande qui obtient une session PSSession, telle qu’une Get-PSSession commande.

Quand vous importez un module à partir d'une autre session dans la session active, vous pouvez utiliser les applets de commande du module dans la session active, tout comme vous utiliseriez des applets de commande à partir d'un module local. Les commandes qui utilisent les applets de commande distantes s’exécutent dans la session à distance, mais les détails de la communication à distance sont gérés en arrière-plan par PowerShell.

Ce paramètre utilise la fonctionnalité de communication à distance implicite de PowerShell. Il équivaut à utiliser l’applet Import-PSSession de commande pour importer des modules particuliers à partir d’une session.

Import-Module ne peut pas importer de modules PowerShell de base à partir d’une autre session. Les modules PowerShell principaux ont des noms qui commencent par Microsoft.PowerShell.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:PSSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

Spécifie une version du module que cette applet de commande importe. Si la version n’est pas installée, Import-Module génère une erreur.

Par défaut, Import-Module importe le module sans case activée le numéro de version.

Pour spécifier une version minimale, utilisez le paramètre MinimumVersion . Vous pouvez également utiliser les paramètres Module et Version de l'#Requires mot clé pour exiger une version spécifique d’un module dans un script.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Les scripts qui utilisent RequiredVersion pour importer des modules inclus dans les versions existantes du système d’exploitation Windows ne s’exécutent pas automatiquement dans les futures versions du système d’exploitation Windows. Cela est dû au fait que les numéros de version du module PowerShell dans les versions ultérieures du système d’exploitation Windows sont supérieurs aux numéros de version de module dans les versions existantes du système d’exploitation Windows.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

Spécifie une étendue dans laquelle importer le module.

Les valeurs valides pour ce paramètre sont :

  • Général. disponible pour toutes les commandes dans la session. Équivalent au paramètre Global .
  • Local. Disponible uniquement dans l'étendue actuelle.

Par défaut, lorsque Import-Module l’applet de commande est appelée à partir de l’invite de commandes, du fichier de script ou du scriptblock, toutes les commandes sont importées dans l’état de session global. Vous pouvez utiliser le paramètre pour importer du -Scope Local contenu du module dans l’étendue script ou scriptblock.

Lorsqu’elle est appelée à partir d’un autre module, Import-Module l’applet de commande importe les commandes d’un module, y compris les commandes des modules imbriqués, dans l’état de session de l’appelant. Spécifier ou -Global indiquer que cette applet de -Scope Global commande importe des modules dans l’état de session globale afin qu’ils soient disponibles pour toutes les commandes de la session.

Le paramètre Global est équivalent au paramètre Scope avec la valeur Global.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Type:String
Accepted values:Local, Global
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipEditionCheck

Ignore la case activée sur le CompatiblePSEditions champ.

Autorise le chargement d’un module à partir du répertoire du "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules" module dans PowerShell Core lorsque ce module ne spécifie Core pas dans le CompatiblePSEditions champ manifeste.

Lors de l’importation d’un module à partir d’un autre chemin, ce commutateur ne fait rien, car la case activée n’est pas effectuée. Sur Linux et macOS, ce commutateur ne fait rien.

Pour plus d’informations, consultez about_PowerShell_Editions.

Avertissement

Import-Module -SkipEditionCheck est toujours susceptible d’échouer à importer un module. Même s’il réussit, l’appel d’une commande à partir du module peut échouer ultérieurement lorsqu’il tente d’utiliser une API incompatible.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseWindowsPowerShell

Charge le module à l’aide de la fonctionnalité de compatibilité Windows PowerShell. Pour plus d’informations, consultez about_Windows_PowerShell_Compatibility.

Type:SwitchParameter
Aliases:UseWinPS
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Variable

Spécifie un tableau de variables que cette applet de commande importe à partir du module dans la session active. Entrez une liste de variables. Les caractères génériques sont autorisés.

Au moment de leur importation, certains modules exportent automatiquement les variables sélectionnées dans votre session. Ce paramètre vous permet d'effectuer votre choix parmi les variables exportées.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Entrées

String

Vous pouvez diriger un nom de module vers cette applet de commande.

PSModuleInfo

Vous pouvez diriger un objet de module vers cette applet de commande.

Assembly

Vous pouvez diriger un objet d’assembly vers cette applet de commande.

Sorties

None

Par défaut, cette applet de commande ne retourne aucune sortie.

PSModuleInfo

Si vous spécifiez le paramètre PassThru , l’applet de commande génère un objet System.Management.Automation.PSModuleInfo qui représente le module importé.

PSCustomObject

Si vous spécifiez ensemble les paramètres AsCustomObject et PassThru , l’applet de commande génère un objet PSCustomObject qui représente le module.

Notes

PowerShell inclut les alias suivants pour Import-Module:

  • Toutes les plateformes :

    • ipmo
  • Avant de pouvoir importer un module, le module doit être accessible à votre ordinateur local et inclus dans la PSModulePath variable environnementale. Pour plus d’informations, consultez about_Modules.

    Vous pouvez également utiliser les paramètres PSSession et CIMSession pour importer des modules installés sur des ordinateurs distants. Toutefois, les commandes qui utilisent les applets de commande de ces modules s’exécutent dans la session à distance sur l’ordinateur distant.

  • Si vous importez des membres portant le même nom et le même type dans votre session, PowerShell utilise le membre importé en dernier par défaut. Les variables et les alias sont remplacés et les originaux ne sont pas accessibles. Les fonctions, applets de commande et fournisseurs sont simplement ombrées par les nouveaux membres. Ils sont accessibles en sélectionnant le nom de la commande avec le nom de son composant logiciel enfichable, de son module ou de son chemin de fonction.

  • Pour mettre à jour les données de mise en forme des commandes importées à partir d’un module, utilisez l’applet Update-FormatData de commande. Si le fichier de mise en forme d’un module change, utilisez l’applet Update-FormatData de commande pour mettre à jour les données de mise en forme pour les commandes importées. Vous n’avez pas besoin d’importer à nouveau le module.

  • À compter de Windows PowerShell 3.0, les commandes principales installées avec PowerShell sont empaquetées dans les modules. Dans Windows PowerShell 2.0 et dans les programmes hôtes qui créent des sessions de style plus ancien dans les versions ultérieures de PowerShell, les commandes principales sont empaquetées dans les composants logiciels enfichables (PSSnapins). L’exception est Microsoft.PowerShell.Core, qui est toujours un composant logiciel enfichable. En outre, les sessions distantes, telles que celles démarrées par l’applet New-PSSession de commande, sont des sessions de style plus ancien qui incluent des composants logiciels enfichables principaux.

    Pour plus d’informations sur la méthode CreateDefault2 qui crée des sessions de style plus récents avec des modules principaux, consultez la méthode CreateDefault2.

  • Dans Windows PowerShell 2.0, certaines valeurs de propriété de l’objet de module, telles que les valeurs de propriété ExportedCmdlets et NestedModules , n’ont pas été remplies tant que le module n’a pas été importé.

  • Si vous tentez d’importer un module qui contient des assemblys en mode mixte qui ne sont pas compatibles avec Windows PowerShell 3.0+, Import-Module retourne un message d’erreur comme celui suivant.

    Import-Module : l’assembly en mode mixte est généré sur la version « v2.0.50727 » du runtime et ne peut pas être chargé dans le runtime 4.0 sans informations de configuration supplémentaires.

    Cette erreur se produit lorsqu’un module conçu pour Windows PowerShell 2.0 contient au moins un assembly de module mixte. Assembly de module mixte qui inclut à la fois du code managé et non managé, tel que C++ et C#.

    Pour importer un module qui contient des assemblys en mode mixte, démarrez Windows PowerShell 2.0 à l’aide de la commande suivante, puis réessayez la Import-Module commande.

    PowerShell.exe -Version 2.0

  • Pour utiliser la fonctionnalité de session CIM, l'ordinateur distant doit disposer de l'accès distant WS-Management et de Windows Management Instrumentation (WMI), qui est l'implémentation Microsoft du modèle CIM (Common Information Model) standard. L'ordinateur doit également disposer du fournisseur WMI pour la découverte de module ou un autre fournisseur CIM qui a les mêmes fonctionnalités de base.

    Vous pouvez utiliser la fonctionnalité de session CIM sur les ordinateurs qui n’exécutent pas de système d’exploitation Windows et sur les ordinateurs Windows qui ont PowerShell, mais qui n’ont pas activé la communication à distance PowerShell.

    Vous pouvez également utiliser les paramètres CIM pour obtenir des modules CIM à partir d’ordinateurs sur lesquels la communication à distance PowerShell est activée, y compris l’ordinateur local. Lorsque vous créez une session CIM sur l’ordinateur local, PowerShell utilise DCOM, au lieu de WMI, pour créer la session.

  • Par défaut, Import-Module importe des modules dans l’étendue globale, même lorsqu’ils sont appelés à partir d’une étendue descendante. L’étendue de niveau supérieur et toutes les étendues descendantes ont accès aux éléments exportés du module.

    Dans une étendue descendante, -Scope Local limite l’importation à cette étendue et à toutes ses étendues descendantes. Les étendues parentes ne voient pas les membres importés.

    Remarque

    Get-Module affiche tous les modules chargés dans la session active. Cela inclut les modules chargés localement dans une étendue descendante. Permet Get-Command -Module modulename de voir quels membres sont chargés dans l’étendue actuelle.

  • Import-Module ne charge pas les définitions de classe et d’énumération dans le module. Utilisez l’instruction using module au début de votre script. Cela importe le module, y compris les définitions de classe et d’énumération. Pour plus d’informations, consultez about_Using.

  • Pendant le développement d’un module de script, il est courant d’apporter des modifications au code, puis de charger la nouvelle version du module à l’aide Import-Module du paramètre Force . Cela fonctionne uniquement pour les modifications apportées aux fonctions dans le module racine. Import-Module ne recharge aucun module imbriqué. En outre, il n’existe aucun moyen de charger des classes ou énumérations mises à jour.

    Pour obtenir les membres de module mis à jour définis dans les modules imbriqués, supprimez le module avec Remove-Module, puis réimportez le module.

    Si le module a été chargé avec une using instruction, vous devez démarrer une nouvelle session pour importer des définitions mises à jour pour les classes et les énumérations. Les classes et les énumérations définies dans PowerShell et importées avec une using instruction ne peuvent pas être déchargées.