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 le
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
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
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é
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
Dans la troisième commande, le paramètre module 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
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
La deuxième commande utilise l’applet de commande $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
À l’aide du paramètre Force
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
É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 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
La deuxième commande utilise le paramètre
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
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
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
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
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
Pour spécifier une version exacte, utilisez le paramètre RequiredVersion
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-UTCDate
et 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
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
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 Import-Module
ne génère aucune sortie. Si vous spécifiez le paramètre
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 commandeUpdate-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 etvaleurs 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.