Import-Module
Agrega módulos a la sesión actual.
Sintaxis
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-CimSession <CimSession>
[-CimResourceUri <Uri>]
[-CimNamespace <String>]
[<CommonParameters>]
Import-Module
[-Name] <string[]>
-UseWindowsPowerShell
[-Global]
[-Prefix <string>]
[-Function <string[]>]
[-Cmdlet <string[]>]
[-Variable <string[]>]
[-Alias <string[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <version>]
[-MaximumVersion <string>]
[-RequiredVersion <version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <string>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-FullyQualifiedName] <ModuleSpecification[]>
-UseWindowsPowerShell
[-Global]
[-Prefix <string>]
[-Function <string[]>]
[-Cmdlet <string[]>]
[-Variable <string[]>]
[-Alias <string[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <string>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Assembly] <Assembly[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ModuleInfo] <PSModuleInfo[]>
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Description
El Import-Module
cmdlet agrega uno o varios módulos a la sesión actual. A partir de PowerShell 3.0, los módulos instalados se importan automáticamente a la sesión cuando se usan comandos o proveedores en el módulo. Sin embargo, todavía puede usar el Import-Module
comando para importar un módulo.
Puede deshabilitar la importación automática de módulos mediante la variable de $PSModuleAutoloadingPreference
preferencia. Para obtener más información sobre la variable $PSModuleAutoloadingPreference
, vea about_Preference_Variables.
Un módulo es un paquete que contiene miembros que se pueden usar en PowerShell. Los miembros incluyen cmdlets, proveedores, scripts, funciones, variables y otros archivos y herramientas. Después de importar un módulo, se pueden usar los miembros de ese módulo en la sesión. Para obtener más información sobre los módulos, consulte about_Modules.
De forma predeterminada, Import-Module
importa todos los miembros que exporta el módulo, pero puede usar los parámetros Alias, Function, Cmdlet y Variable para restringir qué miembros se importan. El parámetro NoClobber impide Import-Module
importar miembros que tengan los mismos nombres que los miembros de la sesión actual.
Import-Module
importa un módulo solo en la sesión actual. Para importar el módulo en cada nueva sesión, agregue un Import-Module
comando al perfil de PowerShell. Para obtener más información sobre los perfiles, consulte about_Profiles.
Puede administrar equipos Windows remotos que tengan habilitada la comunicación remota de PowerShell mediante la creación de una PSSession en el equipo remoto. A continuación, use el parámetro PSSession de Import-Module
para importar los módulos instalados en el equipo remoto. Cuando se usan los comandos importados en la sesión actual, los comandos se ejecutan implícitamente en el equipo remoto.
A partir de Windows PowerShell 3.0, puede usar Import-Module
para importar módulos de Common Information Model (CIM). Los módulos CIM definen cmdlets en archivos XML de definición de cmdlet (CDXML). Esta característica permite usar cmdlets que se implementan en ensamblados de código no administrados, como los escritos en C++.
En el caso de los equipos remotos que no tienen habilitada la comunicación remota de PowerShell, incluidos los equipos que no ejecutan el sistema operativo Windows, puede usar el parámetro CIMSession de Import-Module
para importar módulos CIM desde el equipo remoto. Los comandos importados se ejecutan implícitamente en el equipo remoto. Una CIMSession es una conexión a Instrumental de administración de Windows (WMI) en el equipo remoto.
Ejemplos
Ejemplo 1: Importación de los miembros de un módulo en la sesión actual
En este ejemplo se importan los miembros del módulo PSDiagnostics en la sesión actual.
Import-Module -Name PSDiagnostics
Ejemplo 2: Importación de todos los módulos especificados por la ruta de acceso del módulo
En este ejemplo se importan todos los módulos disponibles en la ruta de acceso especificada por la $env:PSModulePath
variable de entorno en la sesión actual.
Get-Module -ListAvailable | Import-Module
Ejemplo 3: Importación de los miembros de varios módulos en la sesión actual
En este ejemplo se importan los miembros de los módulos PSDiagnostics y Dism en la sesión actual.
$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m
El Get-Module
cmdlet obtiene los módulos PSDiagnostics y Dism y guarda los objetos en la $m
variable . El parámetro ListAvailable es necesario cuando se obtienen módulos que aún no se importan en la sesión.
El parámetro ModuleInfo de Import-Module
se usa para importar los módulos en la sesión actual.
Ejemplo 4: Importación de todos los módulos especificados por una ruta de acceso
En este ejemplo se usa una ruta de acceso explícita para identificar el módulo que se va a importar.
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'.
El uso del parámetro Verbose hace Import-Module
que informe del progreso a medida que carga el módulo.
Sin el parámetro Verbose, PassThru o AsCustomObject , Import-Module
no genera ninguna salida cuando importa un módulo.
Ejemplo 5: Restricción de los miembros del módulo importados en una sesión
En este ejemplo se muestra cómo restringir qué miembros del módulo se importan en la sesión y el efecto de este comando en la sesión. El parámetro Function limita los miembros importados desde el módulo. También puede usar los parámetros Alias, Variable y Cmdlet para restringir otros miembros que importa un módulo.
El Get-Module
cmdlet obtiene el objeto que representa el módulo PSDiagnostics . La propiedad ExportedCmdlets enumera todos los cmdlets que exporta el módulo, aunque no se importaron todos.
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
Con el parámetro Module del Get-Command
cmdlet se muestran los comandos importados desde el módulo PSDiagnostics . Los resultados confirman que solo se importaron los Disable-PSTrace
cmdlets y Enable-PSTrace
.
Ejemplo 6: Importación de los miembros de un módulo y adición de un prefijo
En este ejemplo se importa el módulo PSDiagnostics en la sesión actual, se agrega un prefijo a los nombres de miembro y, a continuación, se muestran los nombres de miembro con prefijo. El parámetro Prefix de Import-Module
agrega el x
prefijo a todos los miembros que se importan desde el módulo. El prefijo solo se aplica a los miembros de la sesión actual. No cambia el módulo. El parámetro PassThru devuelve un objeto de módulo que representa el módulo importado.
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
obtiene los miembros que se han importado desde el módulo. El resultado muestra que los miembros de módulo incluyen el prefijo correctamente.
Ejemplo 7: Obtener y usar un objeto personalizado
En este ejemplo se muestra cómo obtener y usar el objeto personalizado devuelto por Import-Module
.
Los objetos personalizados incluyen miembros sintéticos que representan cada uno de los miembros de módulo importados. Por ejemplo, los cmdlets y funciones en un módulo se convierten en métodos de script del objeto personalizado.
Los objetos personalizados son útiles en el scripting. También son útiles cuando varios objetos importados tienen los mismos nombres. Usar el método de script de un objeto equivale a especificar el nombre completo de un miembro importado, incluido su nombre de módulo.
El parámetro AsCustomObject solo se puede usar al importar un módulo de script. Use Get-Module
para determinar cuál de los módulos disponibles es un módulo 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"()
El Show-Calendar
módulo de script se importa mediante el parámetro AsCustomObject para solicitar un objeto personalizado y el parámetro PassThru para devolver el objeto. El objeto personalizado resultante se guarda en la $a
variable .
La $a
variable se canaliza al Get-Member
cmdlet para mostrar las propiedades y los métodos del objeto guardado. La salida muestra un método de Show-Calendar
script.
Para llamar al Show-Calendar
método de script, el nombre del método debe incluirse entre comillas porque el nombre incluye un guión.
Ejemplo 8: Reimportar un módulo en la misma sesión
En este ejemplo se muestra cómo usar el parámetro Force de Import-Module
al volver a importar un módulo a la misma sesión. El parámetro Force quita el módulo cargado y, a continuación, lo importa de nuevo.
Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS
El primer comando importa el módulo PSDiagnostics . El segundo comando vuelve a importar el módulo, esta vez mediante el parámetro Prefix .
Sin el parámetro Force , la sesión incluiría dos copias de cada cmdlet PSDiagnostics , uno con el nombre estándar y otro con el nombre prefijo.
Ejemplo 9: Ejecución de comandos ocultos por comandos importados
En este ejemplo se muestra cómo ejecutar comandos que han sido ocultados por comandos importados. El módulo TestModule incluye una función denominada Get-Date
que devuelve el año y el día del año.
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
El primer Get-Date
cmdlet devuelve un objeto DateTime con la fecha actual. Después de importar el módulo TestModule , Get-Date
devuelve el año y el día del año.
Con el parámetro All de mostrar todos los Get-Date
comandos de Get-Command
la sesión. Los resultados muestran que hay dos Get-Date
comandos en la sesión, una función del módulo TestModule y un cmdlet del módulo Microsoft.PowerShell.Utility .
Dado que las funciones tienen prioridad sobre los cmdlets, la Get-Date
función del módulo TestModule se ejecuta, en lugar del Get-Date
cmdlet . Para ejecutar la versión original de Get-Date
, debe calificar el nombre del comando con el nombre del módulo.
Para obtener más información sobre la precedencia de comandos en PowerShell, consulte about_Command_Precedence.
Ejemplo 10: Importación de una versión mínima de un módulo
En este ejemplo se importa el módulo PowerShellGet . Usa el parámetro MinimumVersion de Import-Module
para importar solo la versión 2.0.0
o posterior del módulo.
Import-Module -Name PowerShellGet -MinimumVersion 2.0.0
También puede usar el parámetro RequiredVersion para importar una versión determinada de un módulo o usar los parámetros Module y Version de la #Requires
palabra clave para requerir una versión determinada de un módulo en un script.
Ejemplo 11: Importación mediante un nombre completo
En este ejemplo se importa una versión específica de un módulo mediante 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' }
Ejemplo 12: Importación mediante una ruta de acceso completa
En este ejemplo se importa una versión específica de un módulo mediante la ruta de acceso completa.
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'
Ejemplo 13: Importación de un módulo desde un equipo remoto
En este ejemplo se muestra cómo usar el Import-Module
cmdlet para importar un módulo desde un equipo remoto.
Este comando usa la característica comunicación remota implícita de PowerShell.
Al importar módulos desde otra sesión, se pueden usar los cmdlets de la sesión actual. Sin embargo, los comandos que usan los cmdlets se ejecutan en la sesión remota.
$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
crea una sesión remota (PSSession) en el Server01
equipo. PsSession se guarda en la $s
variable .
La ejecución Get-Module
con el parámetro PSSession muestra que el módulo NetSecurity está instalado y disponible en el equipo remoto. Este comando es equivalente al uso del Invoke-Command
cmdlet para ejecutar Get-Module
el comando en la sesión remota. Por ejemplo:
Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
La ejecución Import-Module
con el parámetro PSSession importa el módulo NetSecurity desde el equipo remoto a la sesión actual. El Get-Command
cmdlet recupera comandos que comienzan por Get
e incluyen Firewall
desde el módulo NetSecurity . La salida confirma que el módulo y sus cmdlets se importaron en la sesión actual.
A continuación, el Get-NetFirewallRule
cmdlet obtiene las reglas de firewall de administración remota de Windows en el Server01
equipo. Esto equivale a usar el Invoke-Command
cmdlet para ejecutarse Get-NetFirewallRule
en la sesión remota.
Ejemplo 14: Administración del almacenamiento en un equipo remoto sin el sistema operativo Windows
En este ejemplo, el administrador del equipo ha instalado el proveedor WMI de detección de módulos, que permite usar comandos CIM diseñados para el proveedor.
El New-CimSession
cmdlet crea una sesión en el equipo remoto denominado RSDGF03. La sesión se conecta al servicio WMI en el equipo remoto. La sesión CIM se guarda en la $cs
variable .
Import-Module
usa CimSession en $cs
para importar el módulo CIM de almacenamiento desde el RSDGF03
equipo.
El Get-Command
cmdlet muestra el Get-Disk
comando en el módulo Storage . Al importar un módulo CIM en la sesión local, PowerShell convierte los archivos CDXML para cada comando en scripts de PowerShell, que aparecen como funciones en la sesión local.
Aunque Get-Disk
se escribe en la sesión local, el cmdlet se ejecuta implícitamente en el equipo remoto desde el que se importó. El comando devuelve objetos del equipo remoto a la sesión local.
$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
Parámetros
-Alias
Especifica los alias que este cmdlet importa desde el módulo a la sesión actual. Escriba una lista separada por comas de alias. Se permite el uso de caracteres comodín.
Algunos módulos exportan automáticamente los alias seleccionados a la sesión cuando dichos módulos se importan. Este parámetro permite seleccionar de entre los alias exportados.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-ArgumentList
Especifica una matriz de argumentos o valores de parámetro que se pasan a un módulo de script durante el Import-Module
comando. Este parámetro solo es válido cuando se va a importar un módulo de script.
También puede hacer referencia al parámetro ArgumentList por su alias, args. Para obtener más información sobre el comportamiento de ArgumentList, vea about_Splatting.
Tipo: | Object[] |
Alias: | Args |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-AsCustomObject
Indica que este cmdlet devuelve un objeto personalizado con miembros que representan los miembros del módulo importados. Este parámetro es válido únicamente para módulos de script.
Cuando se usa el parámetro AsCustomObject , importa los miembros del módulo en la sesión y, a continuación, Import-Module
devuelve un objeto PSCustomObject en lugar de un objeto PSModuleInfo . Puede guardar el objeto personalizado en una variable y usar la enumeración de acceso a miembros para invocar a los miembros.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Assembly
Especifica una matriz de objetos de ensamblado. Este cmdlet importa los cmdlets y proveedores implementados en los objetos de ensamblado especificados. Especifique una variable que contenga objetos de ensamblado o escriba un comando o expresión que cree objetos de ensamblado. También puede canalizar un objeto de ensamblado a Import-Module
.
Cuando se usa este parámetro, se importan solo los cmdlets y proveedores implementados por los ensamblados especificados. Si el módulo contiene otros archivos, no se importan y es posible que falten miembros importantes del módulo. Use este parámetro para depurar y probar el módulo, o cuando se le indique que lo use el autor del módulo.
Tipo: | Assembly[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-CimNamespace
Especifica el espacio de nombres de otro proveedor de CIM que expone módulos CIM. El valor predeterminado es el espacio de nombres del proveedor de WMI de detección de módulos.
Use este parámetro para importar módulos CIM desde equipos y dispositivos que no ejecutan un sistema operativo Windows.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CimResourceUri
Especifica una ubicación alternativa para los módulos CIM. El valor predeterminado es el URI de recurso del proveedor de WMI de detección de módulos en el equipo remoto.
Use este parámetro para importar módulos CIM desde equipos y dispositivos que no ejecutan un sistema operativo Windows.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | Uri |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-CimSession
Especifica una sesión CIM en el equipo remoto. Escriba una variable que contenga la sesión CIM o un comando que obtenga la sesión CIM, como un comando Get-CimSession .
Import-Module
usa la conexión de sesión CIM para importar módulos desde el equipo remoto a la sesión actual. Al usar los comandos del módulo importado en la sesión actual, los comandos se ejecutan en el equipo remoto.
Puede usar este parámetro para importar módulos desde equipos y dispositivos que no ejecutan el sistema operativo Windows y equipos Windows que tienen PowerShell, pero que no tienen habilitada la comunicación remota de PowerShell.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | CimSession |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Cmdlet
Especifica una matriz de cmdlets que este cmdlet importa desde el módulo a la sesión actual. Se permite el uso de caracteres comodín.
Algunos módulos exportan automáticamente los cmdlets seleccionados a la sesión cuando dichos módulos se importan. Este parámetro permite seleccionar de entre los cmdlets exportados.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-DisableNameChecking
Indica que este cmdlet suprime el mensaje que le advierte al importar un cmdlet o una función cuyo nombre incluye un verbo no aprobado o un carácter prohibido.
De forma predeterminada, cuando un módulo que importa exporta cmdlets o funciones que tienen verbos no aprobados en sus nombres, PowerShell muestra el siguiente mensaje de advertencia:
ADVERTENCIA: Algunos nombres de comandos importados incluyen verbos no aprobados que podrían hacer que sean menos reconocibles. Utilice el parámetro Verbose para obtener más detalles o escriba Get-Verb para ver la lista de verbos aprobados.
Este mensaje es solo una advertencia. El módulo completo se importa de todos modos, incluidos los comandos que no cumplen las especificaciones. Aunque el mensaje se muestra a los usuarios del módulo, el autor del módulo debe corregir el problema de nomenclatura.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Force
Este parámetro hace que se cargue o se vuelva a cargar un módulo encima del actual. Algunos módulos cargan ensamblados externos. Se produce un error en la importación si va a importar un módulo que carga una versión más reciente de un ensamblado. El parámetro Force no puede invalidar el error. Debe iniciar una nueva sesión para cargar la nueva versión.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-FullyQualifiedName
El valor puede ser un nombre de módulo, una especificación de módulo completa o una ruta de acceso a un archivo de módulo.
Cuando el valor es una ruta de acceso, la ruta de acceso puede ser completa o relativa. Se resuelve una ruta de acceso relativa con respecto al script que contiene la instrucción using.
Cuando el valor es un nombre o especificación de módulo, PowerShell busca en el módulo especificado la psModulePath .
Una especificación de módulo es una tabla hash que tiene las siguientes claves.
ModuleName
- Obligatorio Especifica el nombre del módulo.GUID
- Opcional Especifica el GUID del módulo.- También es necesario especificar al menos una de las tres claves siguientes.
ModuleVersion
: especifica una versión mínima aceptable del módulo.MaximumVersion
: especifica la versión máxima aceptable del módulo.RequiredVersion
: especifica una versión exacta y necesaria del módulo. Esto no se puede usar con las otras claves de versión.
Tipo: | ModuleSpecification[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Function
Especifica una matriz de funciones que este cmdlet importa desde el módulo a la sesión actual. Se permite el uso de caracteres comodín. Algunos módulos exportan automáticamente las funciones seleccionadas a la sesión cuando dichos módulos se importan. Este parámetro permite seleccionar de entre las funciones exportadas.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
-Global
Indica que este cmdlet importa módulos en el estado de sesión global para que estén disponibles para todos los comandos de la sesión.
De forma predeterminada, cuando Import-Module
se llama al cmdlet desde el símbolo del sistema, el archivo de script o el bloque de scripts, todos los comandos se importan en el estado de sesión global.
Cuando se invoca desde otro módulo, Import-Module
el cmdlet importa los comandos de un módulo, incluidos los comandos de los módulos anidados, en el estado de sesión del módulo que realiza la llamada.
Sugerencia
Debe evitar llamar desde Import-Module
dentro de un módulo. En su lugar, declare el módulo de destino como un módulo anidado en el manifiesto del módulo primario. Declarar módulos anidados mejora la detectabilidad de las dependencias.
El parámetro Global es equivalente al parámetro Scope con un valor de Global.
Para restringir los comandos que exporta un módulo, use un Export-ModuleMember
comando en el módulo de script.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-MaximumVersion
Especifica una versión máxima. Este cmdlet importa solo una versión del módulo menor o igual que el valor especificado. Si no se califica ninguna versión, Import-Module
devuelve un error.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-MinimumVersion
Especifica una versión mínima. Este cmdlet importa solo una versión del módulo mayor o igual que el valor especificado. Use el nombre del parámetro MinimumVersion o su alias, Version. Si no se califica ninguna versión, Import-Module
genera un error.
Para especificar una versión exacta, use el parámetro RequiredVersion . También puede usar los parámetros Module y Version de la palabra clave #Requires para requerir una versión específica de un módulo en un script.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | Version |
Alias: | Version |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ModuleInfo
Especifica una matriz de objetos de módulo que se van a importar. Escriba una variable que contenga los objetos de módulo o un comando que obtenga los objetos de módulo, como el siguiente comando: Get-Module -ListAvailable
. También puede canalizar objetos de módulo a Import-Module
.
Tipo: | PSModuleInfo[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-Name
Especifica los nombres de los módulos que se van a importar. Escriba el nombre del módulo o el nombre de un archivo en el módulo, como un .psd1
archivo , .psm1
, .dll
o .ps1
. Las rutas de acceso de archivo son opcionales. No se permiten caracteres comodín. También puede canalizar nombres de módulo y nombres de archivo a Import-Module
.
Si omite una ruta de acceso, Import-Module
busca el módulo en las rutas de acceso guardadas en la variable de $env:PSModulePath
entorno.
Especifique solo el nombre del módulo siempre que sea posible. Cuando se especifica un nombre de archivo, solo se importan los miembros que se implementan en ese archivo. Si el módulo contiene otros archivos, no se importan y es posible que falten miembros importantes del módulo.
Nota:
Aunque es posible importar un archivo de script (.ps1
) como módulo, los archivos de script normalmente no se estructuran como el archivo de módulos de script (.psm1
). La importación de un archivo de script no garantiza que se pueda usar como módulo. Para obtener más información, consulte about_Modules.
Tipo: | String[] |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-NoClobber
Impide la importación de comandos que tengan los mismos nombres que los comandos existentes en la sesión actual. De forma predeterminada, Import-Module
importa todos los comandos de módulo exportados.
Los comandos que tienen los mismos nombres pueden ocultar o reemplazar comandos en la sesión. Para evitar conflictos de nombres de comando en una sesión, use los parámetros Prefix o NoClobber . Para obtener más información sobre los conflictos de nombres y la precedencia de comandos, vea "Módulos y conflictos de nombres" en about_Modules y about_Command_Precedence.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | SwitchParameter |
Alias: | NoOverwrite |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve un objeto que representa el módulo importado. De forma predeterminada, este cmdlet no genera ninguna salida.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Prefix
Especifica un prefijo que este cmdlet agrega a los nombres de los miembros del módulo importados.
Use este parámetro para evitar los conflictos de nombre que se pueden producir cuando distintos miembros de la sesión tienen el mismo nombre. Este parámetro no cambia el módulo y no afecta a los archivos que importa el módulo para su propio uso. Estos se conocen como módulos anidados. Este cmdlet afecta solo a los nombres de los miembros de la sesión actual.
Por ejemplo, si especifica el prefijo UTC y, a continuación, importa un Get-Date
cmdlet, el cmdlet se conoce en la sesión como Get-UTCDate
y no se confunde con el cmdlet original Get-Date
.
El valor de este parámetro tiene prioridad sobre la propiedad DefaultCommandPrefix del módulo, que especifica el prefijo predeterminado.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-PSSession
Especifica una sesión administrada por el usuario (PSSession) de PowerShell desde la que este cmdlet importa módulos a la sesión actual. Escriba una variable que contenga una PSSession o un comando que obtenga una PSSession, como un Get-PSSession
comando.
Al importar un módulo desde una sesión diferente a la sesión actual, puede usar los cmdlets del módulo de la sesión actual, del mismo modo en que usaría los cmdlets de un módulo local. Los comandos que usan los cmdlets remotos se ejecutan en la sesión remota, pero PowerShell administra los detalles de comunicación remota en segundo plano.
Este parámetro usa la característica De comunicación remota implícita de PowerShell. Equivale a usar el Import-PSSession
cmdlet para importar módulos concretos desde una sesión.
Import-Module
no puede importar módulos principales de PowerShell desde otra sesión. Los módulos principales de PowerShell tienen nombres que comienzan por Microsoft.PowerShell.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | PSSession |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-RequiredVersion
Especifica una versión del módulo que importa este cmdlet. Si la versión no está instalada, Import-Module
genera un error.
De forma predeterminada, Import-Module
importa el módulo sin comprobar el número de versión.
Para especificar una versión mínima, use el parámetro MinimumVersion . También puede usar los parámetros Module y Version de la palabra clave #Requires para requerir una versión específica de un módulo en un script.
Este parámetro se incorporó en Windows PowerShell 3.0.
Los scripts que usan RequiredVersion para importar módulos que se incluyen con versiones existentes del sistema operativo Windows no se ejecutan automáticamente en futuras versiones del sistema operativo Windows. Esto se debe a que los números de versión del módulo de PowerShell en versiones futuras del sistema operativo Windows son superiores a los números de versión del módulo en las versiones existentes del sistema operativo Windows.
Tipo: | Version |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Scope
Especifica un ámbito en el que se va a importar el módulo.
Los valores permitidos para este parámetro son los siguientes:
- Global. disponible para todos los comandos de la sesión. Equivalente al parámetro Global .
- Local. disponible solo en el ámbito actual.
De forma predeterminada, cuando Import-Module
se llama al cmdlet desde el símbolo del sistema, el archivo de script o el bloque de scripts, todos los comandos se importan en el estado de sesión global. Puede usar el -Scope Local
parámetro para importar el contenido del módulo en el ámbito de script o scriptblock.
Cuando se invoca desde otro módulo, Import-Module
el cmdlet importa los comandos de un módulo, incluidos los comandos de los módulos anidados, en el estado de sesión del autor de la llamada. Especificar -Scope Global
o -Global
indica que este cmdlet importa módulos en el estado de sesión global para que estén disponibles para todos los comandos de la sesión.
El parámetro Global es equivalente al parámetro Scope con un valor de Global.
Este parámetro se incorporó en Windows PowerShell 3.0.
Tipo: | String |
Valores aceptados: | Local, Global |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-SkipEditionCheck
Omite la comprobación en el CompatiblePSEditions
campo.
Permite cargar un módulo desde el directorio del "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules"
módulo en PowerShell Core cuando ese módulo no especifica Core
en el CompatiblePSEditions
campo de manifiesto.
Al importar un módulo desde otra ruta de acceso, este modificador no hace nada, ya que no se realiza la comprobación. En Linux y macOS, este modificador no hace nada.
Para obtener más información, consulte about_PowerShell_Editions.
Advertencia
Import-Module -SkipEditionCheck
es probable que no se pueda importar un módulo. Incluso si se realiza correctamente, invocar un comando desde el módulo puede producir un error más adelante cuando intenta usar una API incompatible.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-UseWindowsPowerShell
Carga el módulo mediante la funcionalidad de compatibilidad de Windows PowerShell. Consulte about_Windows_PowerShell_Compatibility para obtener más información.
Tipo: | SwitchParameter |
Alias: | UseWinPS |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Variable
Especifica una matriz de variables que este cmdlet importa desde el módulo a la sesión actual. Escriba una lista de variables. Se permite el uso de caracteres comodín.
Algunos módulos exportan automáticamente las variables seleccionadas a la sesión cuando dichos módulos se importan. Este parámetro permite seleccionar de entre las variables exportadas.
Tipo: | String[] |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | True |
Entradas
Puede canalizar un nombre de módulo a este cmdlet.
Puede canalizar un objeto de módulo a este cmdlet.
Puede canalizar un objeto de ensamblado a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Si especifica el parámetro PassThru , el cmdlet genera un objeto System.Management.Automation.PSModuleInfo que representa el módulo importado.
Si especifica los parámetros AsCustomObject y PassThru juntos, el cmdlet genera un objeto PSCustomObject que representa el módulo.
Notas
PowerShell incluye los siguientes alias para Import-Module
:
Todas las plataformas:
ipmo
Para poder importar un módulo, el módulo debe ser accesible para el equipo local e incluirlo en la
PSModulePath
variable de entorno. Para obtener más información, consulte about_Modules.También puede usar los parámetros PSSession y CIMSession para importar módulos instalados en equipos remotos. Sin embargo, los comandos que usan los cmdlets de estos módulos se ejecutan en la sesión remota en el equipo remoto.
Si importa miembros con el mismo nombre y el mismo tipo en la sesión, PowerShell usa el miembro importado por última vez de forma predeterminada. Las variables y alias se reemplazan y los originales no son accesibles. Las funciones, los cmdlets y los proveedores son simplemente sombreados por los nuevos miembros. Se puede acceder a ellos si califica el nombre del comando con el nombre de su complemento, módulo o ruta de acceso de la función.
Para actualizar los datos de formato de los comandos importados desde un módulo, use el
Update-FormatData
cmdlet . Si cambia el archivo de formato de un módulo, use elUpdate-FormatData
cmdlet para actualizar los datos de formato de los comandos importados. No es necesario volver a importar el módulo.A partir de Windows PowerShell 3.0, los comandos principales instalados con PowerShell se empaquetan en módulos. En Windows PowerShell 2.0 y en programas host que crean sesiones de estilo anterior en versiones posteriores de PowerShell, los comandos principales se empaquetan en complementos (PSSnapins). La excepción es Microsoft.PowerShell.Core, que siempre es un complemento. Además, las sesiones remotas, como las iniciadas por el
New-PSSession
cmdlet, son sesiones de estilo anterior que incluyen complementos principales.Para obtener información sobre el método CreateDefault2 que crea sesiones de estilo más reciente con módulos principales, vea el método CreateDefault2.
En Windows PowerShell 2.0, algunos valores de propiedad del objeto de módulo, como los valores de propiedad ExportedCmdlets y NestedModules , no se rellenaron hasta que se importó el módulo.
Si intenta importar un módulo que contiene ensamblados de modo mixto que no son compatibles con Windows PowerShell 3.0 o posteriores,
Import-Module
devuelve un mensaje de error similar al siguiente.Import-Module: el ensamblado en modo mixto se compila con la versión "v2.0.50727" del entorno de ejecución y no se puede cargar en el entorno de ejecución 4.0 sin información de configuración adicional.
Este error se produce cuando un módulo diseñado para Windows PowerShell 2.0 contiene al menos un ensamblado de módulo mixto. Un ensamblado de módulo mixto que incluye código administrado y no administrado, como C++ y C#.
Para importar un módulo que contiene ensamblados en modo mixto, inicie Windows PowerShell 2.0 mediante el siguiente comando y vuelva a intentarlo
Import-Module
.PowerShell.exe -Version 2.0
Para usar la característica de sesión CIM, el equipo remoto debe disponer de comunicación remota de WS-Management y de Instrumental de administración de Windows (WMI), que es la implementación de Microsoft del Modelo de información común (CIM) estándar. El equipo también debe contar con el proveedor de WMI de detección de módulos o con otro proveedor de CIM que posea las mismas características básicas.
Puede usar la característica de sesión CIM en equipos que no ejecutan un sistema operativo Windows y en equipos Windows con PowerShell, pero que no tienen habilitada la comunicación remota de PowerShell.
También puede usar los parámetros CIM para obtener módulos CIM de equipos que tengan habilitada la comunicación remota de PowerShell, incluido el equipo local. Al crear una sesión CIM en el equipo local, PowerShell usa DCOM, en lugar de WMI, para crear la sesión.
De forma predeterminada,
Import-Module
importa módulos en el ámbito global incluso cuando se llama desde un ámbito descendiente. El ámbito de nivel superior y todos los ámbitos descendientes tienen acceso a los elementos exportados del módulo.En un ámbito descendiente,
-Scope Local
limita la importación a ese ámbito y todos sus ámbitos descendientes. A continuación, los ámbitos primarios no ven los miembros importados.Nota:
Get-Module
muestra todos los módulos cargados en la sesión actual. Esto incluye los módulos cargados localmente en un ámbito descendiente. UseGet-Command -Module modulename
para ver qué miembros se cargan en el ámbito actual.Import-Module
no carga definiciones de clase y enumeración en el módulo. Use lausing module
instrucción al principio del script. Esto importa el módulo, incluidas las definiciones de clase y enumeración. Para obtener más información, consulte about_Using.Durante el desarrollo de un módulo de script, es habitual realizar cambios en el código y, a continuación, cargar la nueva versión del módulo mediante
Import-Module
con el parámetro Force . Esto funciona solo para los cambios en las funciones del módulo raíz.Import-Module
no vuelve a cargar ningún módulo anidado. Además, no hay ninguna manera de cargar ninguna clase o enumeración actualizadas.Para obtener los miembros del módulo actualizados definidos en módulos anidados, quite el módulo con
Remove-Module
y vuelva a importar el módulo.Si el módulo se cargó con una
using
instrucción , debe iniciar una nueva sesión para importar definiciones actualizadas para las clases y enumeraciones. Las clases y enumeraciones definidas en PowerShell y importadas con unausing
instrucción no se pueden descargar.