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 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-Date
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
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 du #Requires
mot clé 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-Module
utilise cimSession in pour importer le module CIM de stockage à partir de l’ordinateurRSDGF03
.$cs
L’applet Get-Command
de commande affiche la Get-Disk
commande dans le module De 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 |
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 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[] |
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 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 |
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 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 |
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 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 |
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 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 |
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 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.
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 |
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 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 |
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 celui actuel. Certains modules chargent des assemblys externes. L’importation échoue si vous importez un module qui charge une version plus récente d’un assembly. Le paramètre Force ne peut pas remplacer l’erreur. Vous devez démarrer une nouvelle session pour charger la nouvelle version.
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
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 |
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. 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 |
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
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 |
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
retourne 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. 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 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 .psd1
, .psm1
ou .ps1
.dll
un fichier. 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
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 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 |
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 le module importé. 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 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-UTCDate
et 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 |
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 (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 |
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 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 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 |
Valeurs acceptées: | Local, Global |
Position: | Named |
Valeur par défaut: | None |
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.
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 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
Entrées
Vous pouvez diriger un nom de module vers cette applet de commande.
Vous pouvez diriger un objet de module vers cette applet de commande.
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.
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é.
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
Windows PowerShell inclut les alias suivants pour Import-Module
:
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’appletUpdate-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. PermetGet-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’instructionusing 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 uneusing
instruction ne peuvent pas être déchargées.