Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una vez que haya instalado un módulo en un sistema, es probable que quiera importar el módulo. La importación es el proceso que carga el módulo en memoria activa para que un usuario pueda acceder a ese módulo en su sesión de PowerShell. En PowerShell 2.0, puede importar un módulo de PowerShell recién instalado con una llamada a cmdlet import-Module. En PowerShell 3.0, PowerShell puede importar implícitamente un módulo cuando un usuario llama a una de las funciones o cmdlets del módulo. Tenga en cuenta que ambas versiones suponen que instala el módulo en una ubicación donde PowerShell puede encontrarlo; para obtener más información, vea Instalación de un módulo de PowerShell. Puede usar un manifiesto de módulo para restringir qué partes del módulo se exportan y puede usar parámetros de la llamada de Import-Module
para restringir qué elementos se importan.
Importación de un Snap-In (PowerShell 1.0)
Los módulos no existían en PowerShell 1.0: en su lugar, tenía que registrar y usar complementos. Sin embargo, no se recomienda usar esta tecnología en este momento, ya que los módulos suelen ser más fáciles de instalar e importar. Para obtener más información, vea Cómo crear un complemento de Windows PowerShell.
Importación de un módulo con Import-Module (PowerShell 2.0)
PowerShell 2.0 usa el cmdlet Import-Module con el nombre adecuado para importar módulos. Cuando se ejecuta este cmdlet, Windows PowerShell busca el módulo especificado dentro de los directorios especificados en la variable PSModulePath
. Cuando se encuentra el directorio especificado, Windows PowerShell busca archivos en el orden siguiente: archivos de manifiesto del módulo (.psd1
), archivos de módulo de script (.psm1
), archivos de módulo binario (.dll). Para obtener más información sobre cómo agregar directorios a la búsqueda, vea about_PSModulePath.
En el código siguiente se describe cómo importar un módulo:
Import-Module myModule
Suponiendo que myModule se encontraba en el PSModulePath
, PowerShell cargaría myModule en la memoria activa. Si myModule no se encuentra en una ruta de acceso de PSModulePath
, todavía podría indicar explícitamente a PowerShell dónde encontrarlo:
Import-Module -Name C:\myRandomDirectory\myModule -Verbose
También puede usar el parámetro -Verbose
para identificar lo que se exporta fuera del módulo y lo que se importa en la memoria activa. Tanto las exportaciones como las importaciones restringen lo que se expone al usuario: la diferencia es quién controla la visibilidad. Básicamente, las exportaciones se controlan mediante código dentro del módulo. Por el contrario, las importaciones se controlan mediante la llamada a Import-Module
. Para obtener más información, vea Restringir miembros importados, a continuación.
Importación implícita de un módulo (PowerShell 3.0)
A partir de Windows PowerShell 3.0, los módulos se importan automáticamente cuando se usa cualquier cmdlet o función en el módulo en un comando. Esta característica funciona en cualquier módulo de un directorio que se incluye en el valor de la variable de entorno PSModulePath de. Sin embargo, si no guarda el módulo en una ruta de acceso válida, puede cargarlos con la opción explícita Import-Module, que se describió anteriormente.
Las siguientes acciones desencadenan la importación automática de un módulo, también conocido como "carga automática del módulo".
Uso de un cmdlet en un comando. Por ejemplo, al escribir
Get-ExecutionPolicy
importa el módulo Microsoft.PowerShell.Security que contiene el cmdletGet-ExecutionPolicy
.Con el cmdlet get-command de para obtener el comando. Por ejemplo, al escribir
Get-Command Get-JobTrigger
se importa el módulo psScheduledJob que contiene el cmdletGet-JobTrigger
. Un comandoGet-Command
que incluye caracteres comodín se considera detección y no desencadena la importación de un módulo.Use el cmdlet Get-Help para obtener ayuda para un cmdlet. Por ejemplo, al escribir
Get-Help Get-WinEvent
importa el módulo Microsoft.PowerShell.Diagnostics que contiene el cmdletGet-WinEvent
.
Para admitir la importación automática de módulos, el cmdlet Get-Command
obtiene todos los cmdlets y funciones de todos los módulos instalados, incluso si el módulo no se importa en la sesión. Para obtener más información, consulte el tema de ayuda del cmdlet get-command de.
Proceso de importación
Cuando se importa un módulo, se crea un nuevo estado de sesión para el módulo y se crea un objeto System.Management.Automation.PSModuleInfo en memoria. Se crea un estado de sesión para cada módulo que se importa (esto incluye el módulo raíz y los módulos anidados). Los miembros que se exportan desde el módulo raíz, incluidos los miembros exportados al módulo raíz por los módulos anidados, se importan a continuación en el estado de sesión del autor de la llamada.
Los metadatos de los miembros que se exportan desde un módulo tienen una propiedad ModuleName. Esta propiedad se rellena con el nombre del módulo que los exportó.
Advertencia
Si el nombre de un miembro exportado usa un verbo no aprobado o si el nombre del miembro usa caracteres restringidos, se muestra una advertencia cuando se ejecuta el cmdlet Import-Module.
De forma predeterminada, el cmdlet Import-Module no devuelve ningún objeto a la canalización. Sin embargo, el cmdlet admite un parámetro PassThru que se puede usar para devolver un objeto System.Management.Automation.PSModuleInfo para cada módulo que se importa. Para enviar la salida al host, los usuarios deben ejecutar el cmdlet Write-Host.
Restricción de los miembros importados
Cuando se importa un módulo mediante el cmdlet Import-Module, de forma predeterminada, todos los miembros del módulo exportados se importan en la sesión, incluidos los comandos exportados al módulo mediante un módulo anidado. De forma predeterminada, las variables y alias no se exportan. Para restringir los miembros que se exportan, use un manifiesto de módulo . Para restringir los miembros importados, use los parámetros siguientes del cmdlet Import-Module
.
Function: este parámetro restringe las funciones que se exportan. (Si usa un manifiesto de módulo, consulte la clave FunctionsToExport).
` cmdlet: este parámetro restringe los cmdlets que se exportan (si usa un manifiesto de módulo, consulte la clave CmdletsToExport).
Variable: este parámetro restringe las variables que se exportan (si usa un manifiesto de módulo, consulte la clave VariablesToExport).
Alias: este parámetro restringe los alias que se exportan (si usa un manifiesto de módulo, consulte la clave AliasesToExport).