Partager via


Import-Module

Ajoute des modules à la session active.

Syntaxe

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

Description

L’applet de commande Import-Module ajoute un ou plusieurs modules à la session active. Les modules que vous importez doivent être installés sur l’ordinateur local ou sur un ordinateur distant.

À 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 commande Import-Module pour importer un module et activer et désactiver l’importation automatique de modules à l’aide de la variable de préférence $PSModuleAutoloadingPreference. Pour plus d’informations sur les modules, consultez about_Modules. 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. Une fois qu’un module est importé, vous pouvez utiliser les membres du module dans votre session.

Pour importer un module, utilisez leName , Assembly, ModuleInfo, MinimumVersion et paramètres RequiredVersion pour identifier le module à importer. Par défaut, importe tous les membres exportés par le module, mais vous pouvez utiliser l'alias , function, cmdletet paramètres de variable pour restreindre les membres importés. Vous pouvez également utiliser le paramètre NoClobber pour empêcher d’importer des 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 toutes les sessions, ajoutez une commande Import-Module à votre profil PowerShell. Pour plus d’informations sur les profils, consultez about_Profiles.

À compter de Windows PowerShell 3.0, vous pouvez utiliser Import-Module pour importer des modules CIM (Common Information Model), dans lesquels les applets de commande sont définies 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++.

Avec ces nouvelles fonctionnalités, Import-Module applet de commande devient un outil principal pour gérer les entreprises hétérogènes qui incluent les ordinateurs qui exécutent le système d’exploitation Windows et les ordinateurs exécutant d’autres systèmes d’exploitation.

Pour gérer les ordinateurs distants qui exécutent le système d’exploitation Windows avec PowerShell et la communication à distance PowerShell activés, créez une PSSession sur l’ordinateur distant, puis utilisez le paramètre PSSession de Get-Module pour obtenir les modules PowerShell dans le psSession. Lorsque vous importez les modules, puis utilisez les commandes importées dans la session active, les commandes s’exécutent implicitement dans le PSSession sur l’ordinateur distant. Vous pouvez utiliser cette stratégie pour gérer l’ordinateur distant.

Vous pouvez utiliser une stratégie similaire pour gérer les ordinateurs dont la communication à distance PowerShell n’est pas activée, y compris les ordinateurs 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.

Commencez par créer une session CIM sur l’ordinateur distant, qui est une connexion à Windows Management Instrumentation (WMI) sur l’ordinateur distant. Utilisez ensuite le paramètre CIMSession de Import-Module pour importer des modules CIM à partir de l’ordinateur distant. Lorsque vous importez un module CIM, puis exécutez les commandes importées, les commandes s’exécutent implicitement sur l’ordinateur distant. Vous pouvez utiliser cette stratégie WMI et CIM pour gérer 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. Le nom du paramètre name est facultatif et peut être omis.

Import-Module -Name PSDiagnostics

Par défaut, Import-Module ne génère aucune sortie lorsqu’elle importe un module. Pour demander la sortie, utilisez le paramètre PassThru ou AsCustomObject, ou le paramètre Verbose commun.

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 variable d’environnement $env:PSModulePath 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 du PSDiagnostics et modules Dism dans la session active.

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

L’applet de commande Get-Module obtient les PSDiagnostics et modules Dism et enregistre les objets dans la variable $m. 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.

Ces commandes sont équivalentes à l’utilisation d’un opérateur de pipeline (|) pour envoyer la sortie d’une commande Get-Module à Import-Module.

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 provoque Import-Module signaler la progression au fur et à mesure qu’elle charge le module. Sans ledétaillé , PassThruou paramètre AsCustomObject, 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.

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

La première commande importe uniquement les applets de commande Disable-PSTrace et Enable-PSTrace à partir du module PSDiagnostics. Le paramètre Function limite les membres importés à partir du module. Vous pouvez également utiliser les paramètres Alias, variableet applet de commande pour restreindre les autres membres qu’un module importe.

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

Dans la troisième commande, le paramètre module de l’applet de commande obtient les commandes importées à partir du module PSDiagnostics. Les résultats confirment que seules les applets de commande Disable-PSTrace et Enable-PSTrace 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. Le préfixe s’applique uniquement aux membres de la session active. Il ne modifie pas le module.

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

Il utilise le paramètre de préfixe de ajoute le préfixe x à tous les membres importés à partir du module et au paramètre PassThru pour renvoyer un objet de module qui représente le module importé.

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

Exemple 7 : Obtenir et utiliser un objet personnalisé

Ces commandes montrent comment obtenir et utiliser l’objet personnalisé qui import-module retourne.

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

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

Le paramètre AsCustomObject ne peut être utilisé que lors de l’importation d’un module de script. La première tâche consiste donc à déterminer lequel des modules disponibles est 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"()

La première commande utilise l’applet de commande Get-Module pour obtenir les modules disponibles. La commande utilise un opérateur de pipeline pour transmettre les objets de module à l’applet de commande , qui répertorie les Name et ModuleType de chaque module d’une table.

La deuxième commande utilise l’applet de commande pour importer le module de script Show-Calendar . La commande utilise le paramètre AsCustomObject pour demander un objet personnalisé et le paramètre PassThru pour renvoyer l’objet. La commande enregistre l’objet personnalisé résultant dans la variable $a.

La troisième commande utilise un opérateur de pipeline pour envoyer la variable $a à l’applet de commande Get-Member, qui obtient les propriétés et méthodes du PSCustomObject dans $a. La sortie affiche une méthode de script Show-Calendar() .

La dernière commande utilise la méthode de script Show-Calendar. Le nom de la méthode doit être placé entre guillemets, car il 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 de Import-Module lorsque vous réimportez un module dans la même session.

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 .

À l’aide du paramètre Force , supprime le module, puis l’importe à nouveau. Sans ce paramètre, 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 masquées par des commandes importées. 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:26:12 PM

Le premier Get-Datecmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,Get-Date renvoie l’année et le jour de l’année.

À l’aide du paramètre All du Get-Command, nous obtenons toutes les commandes Get-Date dans la session. Les résultats montrent qu’il existe deux 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 fonction Get-Date à partir du module TestModule s’exécute, au lieu de l’applet de commande Get-Date. Pour exécuter la version d’origine de Get-Date vous devez qualifier le nom de la 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

Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0

Cette commande importe le module PSWorkflow . Il utilise le paramètre MinimumVersion de Import-Module pour importer uniquement la version 3.0.0.0 ou ultérieure du module.

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

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

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

Lorsque 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 réellement 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

La première commande utilise l’applet de commande New-PSSession pour créer une session distante (PSSession) sur l’ordinateur Server01. La commande enregistre le PSSession dans la variable .

La deuxième commande utilise le paramètre PSSession de l’applet de commande pour obtenir le module NetSecurity dans la session dans la variable . Cette commande équivaut à utiliser l’applet de commande pour exécuter une commande dans la session dans (). La sortie indique que le module NetSecurity est installé sur l’ordinateur et est disponible pour la session dans la variable .

La troisième commande utilise le paramètre PSSession de l’applet de commande Import-Module pour importer le module NetSecurity à partir de la session dans la variable $s dans la session active.

La quatrième commande utilise l’applet de commande pour obtenir des commandes commençant par Obtenir et inclure Firewall à partir du module NetSecurity . La sortie obtient les commandes et confirme que le module et ses applets de commande ont été importés dans la session active.

La cinquième commande utilise l’applet de commande Get-NetFirewallRule pour obtenir des règles de pare-feu de gestion à distance Windows sur l’ordinateur Server01. Cette commande équivaut à utiliser l’applet de commande Invoke-Command pour exécuter une commande Get-NetFirewallRule sur la session dans la variable $s.

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

Dans cet exemple, étant donné que l’administrateur de l’ordinateur a installé le fournisseur WMI de découverte de modules, les commandes CIM peuvent utiliser les valeurs par défaut, conçues pour le fournisseur.

Les commandes de cet exemple vous permettent de gérer les systèmes de stockage d’un ordinateur distant qui n’exécute pas le système d’exploitation Windows.

La première commande utilise l’applet de commande New-CimSession pour créer une session sur l’ordinateur distant RSDGF03. La session se connecte à WMI sur l’ordinateur distant. La commande enregistre la session CIM dans la variable $cs.

La deuxième commande utilise la session CIM dans la variable $cs pour exécuter une commande Import-Module sur l’ordinateur RSDGF03. La commande utilise le paramètre Name pour spécifier le module CIM Storage.

La troisième commande exécute la commande Get-Command sur la commande Get-Disk dans le module Storage. 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.

La quatrième commande exécute la commande Get-Disk. Bien que la commande soit tapée dans la session locale, elle s’exécute implicitement sur l’ordinateur distant à partir duquel elle a été importée. La commande obtient des objets de l’ordinateur distant et les retourne à 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 d’alias. Les caractères génériques sont autorisés.

Certains modules exportent automatiquement les alias sélectionnés dans votre session lorsque vous importez le module. Ce paramètre vous permet de sélectionner parmi les alias exportés.

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:True

-ArgumentList

Spécifie un tableau d’arguments ou de valeurs de paramètre qui sont passés à un module de script pendant la commande Import-Module. 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, consultez about_Aliases.

Type:Object[]
Alias:Args
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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 est valide uniquement 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 la notation par points pour appeler les membres.

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

-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 des objets d’assembly ou une commande qui crée des objets d’assembly. Vous pouvez également diriger un objet assembly vers Import-Module.

Lorsque vous utilisez ce paramètre, seules 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 risquez de manquer des membres importants du module. Utilisez ce paramètre pour déboguer et tester le module, ou lorsque vous êtes invité à l’utiliser par l’auteur du module.

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

-CimNamespace

Spécifie l’espace de noms d’un autre fournisseur CIM qui expose les modules CIM. La valeur par défaut est l’espace de noms du fournisseur WMI de découverte de modules.

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
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CimResourceUri

Spécifie un autre emplacement pour les modules CIM. La valeur par défaut est l’URI de ressource du fournisseur WMI de découverte de modules 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
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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 réellement 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
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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.

Certains modules exportent automatiquement les applets de commande sélectionnées dans votre session lorsque vous importez le module. Ce paramètre vous permet de sélectionner parmi les applets de commande exportées.

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: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 plus de détails ou de type Get-Verb pour afficher la liste des verbes approuvés.

Ce message n’est qu’un avertissement. Le module complet est toujours importé, y compris les commandes non conformes. Bien que le message s’affiche aux utilisateurs du module, le problème de nommage doit être résolu par l’auteur du 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

-Force

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

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

-FullyQualifiedName

Spécifie le nom complet de la spécification du module.

Type:ModuleSpecification[]
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques: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.

Certains modules exportent automatiquement les fonctions sélectionnées dans votre session lorsque vous importez le module. Ce paramètre vous permet de sélectionner parmi les fonctions exportées.

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: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 cmdlet 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 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.

Pourboire

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 équivaut au paramètre étendue avec la valeur Global.

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

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

-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 génère une erreur.

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

-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. Si aucune version n’est éligible, Import-Module génère une erreur.

Par défaut, Import-Module importe le module sans vérifier le numéro de version.

Utilisez le nom du paramètre MinimumVersion ou son alias, Version.

Pour spécifier une version exacte, utilisez le paramètre RequiredVersion . Vous pouvez également utiliser les paramètres module de et version du mot clé #Requires 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
Alias:Version
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques: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 fichier .psd1, .psm1, .dllou ps1. Les chemins d’accès aux fichiers sont facultatifs. Les caractères génériques 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 recherche le module dans les chemins enregistrés dans la variable d’environnement $env:PSModulePath.

Spécifiez uniquement le nom du module dans la mesure du 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 risquez de manquer des membres importants du module.

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:True

-NoClobber

Indique que cette applet de commande n’importe pas les 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
Alias:NoOverwrite
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-PassThru

Retourne un objet représentant l’élément avec lequel vous travaillez. Par défaut, cette applet de commande ne génère aucune sortie.

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

-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 lorsque différents membres de 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 applet de commande Get-Date, l’applet de commande est connue dans la session en tant que Get-UTCDateet elle n’est pas confondue avec l’applet de commande Get-Date d’origine.

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
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-PSSession

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

Lorsque 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 l’utiliseriez à partir d’un module local. Les commandes qui utilisent les applets de commande distantes s’exécutent réellement 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 de commande Import-PSSession pour importer des modules particuliers à partir d’une session.

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

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

Type:PSSession
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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 vérifier le numéro de version.

Pour spécifier une version minimale, utilisez le paramètre MinimumVersion. Vous pouvez également utiliser les paramètres module de et version du mot clé #Requires 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
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Scope

Spécifie une étendue dans laquelle cette applet de commande importe le module.

Les valeurs acceptables pour ce paramètre sont les suivantes :

  • global. Disponible pour toutes les commandes de la session. Équivaut au paramètre Global.
  • local . Disponible uniquement dans l’étendue actuelle.

Par défaut, lorsque Import-Module cmdlet 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 -Scope avec la valeur de local pour importer le contenu du module dans l’étendue du script ou du scriptblock.

Lorsqu’elle est appelée à partir d’un autre module, Import-Module 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. La spécification de -Scope Global ou de -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.

Le paramètre global équivaut au paramètre étendue avec la valeur Global.

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

Type:String
Valeurs acceptées:Local, Global
Position:Named
Valeur par défaut:Current scope
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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.

Certains modules exportent automatiquement les variables sélectionnées dans votre session lorsque vous importez le module. Ce paramètre vous permet de sélectionner parmi les variables exportées.

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:True

Entrées

System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly

Vous pouvez diriger un nom de module, un objet module ou un objet assembly vers cette applet de commande.

Sorties

None, System.Management.Automation.PSModuleInfo, or System.Management.Automation.PSCustomObject

Cette applet de commande retourne un PSModuleInfo ou PSCustomObject. Par défaut, Import-Module ne génère aucune sortie. 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. Si vous spécifiez le paramètre AsCustomObject, il génère un objet PSCustomObject.

Notes

  • Avant de pouvoir importer un module, le module doit être installé sur l’ordinateur local. Autrement dit, le répertoire du module doit être copié dans un répertoire accessible à votre ordinateur local. 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 réellement 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 de commande Update-FormatData. Update-FormatData met également à jour les données de mise en forme des commandes de la session qui ont été importées à partir de modules. Si le fichier de mise en forme d’un module change, vous pouvez exécuter une commande Update-FormatData pour mettre à jour les données de mise en forme des 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 des composants logiciels enfichables (PSSnapins). L’exception est Microsoft.PowerShell.Core, qui est toujours un composant logiciel enfichable. En outre, les sessions à distance, telles que celles démarrées par l’applet de commande New-PSSession, 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écent avec des modules principaux, consultez la Méthode CreateDefault2.

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

  • Dans Windows PowerShell 2.0, certaines des valeurs de propriété de l’objet module, telles que les ExportedCmdlets et valeurs de propriété NestedModules, n’ont pas été remplies tant que le module n’a pas été importé et n’ont pas été disponibles sur l’objet de module retourné par le paramètre passThru . Dans Windows PowerShell 3.0, toutes les valeurs de propriété de module sont remplies.

  • 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, c’est-à-dire un assembly 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 commande Import-Module.

    PowerShell.exe -Version 2.0

  • Pour utiliser la fonctionnalité de session CIM, l’ordinateur distant doit avoir WS-Management communication à distance et WMI (Windows Management Instrumentation), qui est l’implémentation Microsoft de la norme CIM (Common Information Model). L’ordinateur doit également avoir le fournisseur WMI de découverte de modules 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.