Un módulo en PowerShell es un contenedor que agrupa funciones, cmdlets, variables y otros elementos reutilizables. Crear módulos facilita la organización de scripts, permitiendo cargar solo lo necesario y reutilizar código de forma eficiente. Los módulos pueden ser importados en otros scripts o sesiones, lo que mejora la modularidad y mantenibilidad del código.
Para crear un módulo en PowerShell, debes seguir estos pasos básicos:
1. Crear las funciones o cmdlets que desees incluir en el módulo.
2. Guardar el código en un archivo con la extensión .psm1
.
3. Importar el módulo usando Import-Module
para utilizar las funciones dentro de otros scripts.
Define las funciones que deseas agrupar en el módulo. Por ejemplo, supongamos que queremos crear un módulo con dos funciones: una para saludar y otra para sumar números.
function Saludar {
param (
[string]$Nombre
)
Write-Host "Hola, $Nombre!"
}
function Sumar {
param (
[int]$Num1,
[int]$Num2
)
return $Num1 + $Num2
}
.psm1
Guarda las funciones en un archivo con la extensión .psm1
. El nombre del archivo será el nombre del módulo. Por ejemplo, si guardas el archivo como MiModulo.psm1
, el nombre del módulo será MiModulo
.
1. Crea una carpeta para tu módulo, como C:\MiModulo\
.
2. Guarda el archivo como C:\MiModulo\MiModulo.psm1
.
Un archivo de manifiesto .psd1
es opcional pero recomendable. Este archivo describe el módulo y puede incluir metadatos como la versión y las dependencias. Puedes crear un manifiesto utilizando el cmdlet New-ModuleManifest
:
New-ModuleManifest -Path "C:\MiModulo\MiModulo.psd1" -RootModule "MiModulo.psm1" -Author "TuNombre" -Description "Este es un ejemplo de módulo en PowerShell"
Este archivo MiModulo.psd1
ahora contiene información sobre el módulo, como su versión, autor y las funciones exportadas.
Para usar el módulo en otro script o sesión de PowerShell, utiliza el cmdlet Import-Module
. Asegúrate de proporcionar la ruta correcta del módulo.
Import-Module "C:\MiModulo\MiModulo.psm1"
# Usar las funciones del módulo
Saludar -Nombre "Carlos"
$resultado = Sumar -Num1 5 -Num2 10
Write-Host "El resultado es: $resultado"
Si quieres verificar las funciones exportadas por el módulo, puedes usar Get-Module
:
Get-Module -Name MiModulo -ListAvailable
Si deseas que solo algunas funciones del módulo sean accesibles, puedes utilizar el cmdlet Export-ModuleMember
dentro del archivo .psm1
para definir qué funciones serán exportadas:
Export-ModuleMember -Function Saludar
Con este ajuste, solo la función Saludar
será accesible cuando el módulo sea importado, y la función Sumar
no estará disponible externamente.
Un módulo en PowerShell puede tener varios archivos y carpetas. Aquí tienes una estructura recomendada:
C:\MiModulo\
|-- MiModulo.psm1 # Código del módulo
|-- MiModulo.psd1 # Archivo de manifiesto
|-- README.md # Documentación opcional
|-- Scripts\ # Carpeta para otros scripts o recursos
Crear un módulo en PowerShell es una forma eficaz de organizar y reutilizar código en tus scripts. Usar módulos mejora la modularidad, facilita el mantenimiento y te permite compartir funciones entre diferentes scripts o entornos.
Jorge García
Fullstack developer