TEMA about_modules DESCRIPCIÓN BREVE Explica cómo se instalan, importan y utilizan los módulos de Windows PowerShell. DESCRIPCIÓN DETALLADA Un módulo es un paquete que contiene comandos de Windows PowerShell, como cmdlets, proveedores, funciones, variables y alias. Las personas que escriben comandos pueden usar módulos para organizar dichos comandos y compartirlos con otras personas. Las personas que reciben los módulos pueden agregar los comandos incluidos en los módulos a sus sesiones de Windows PowerShell y utilizarlos de la misma manera que los comandos integrados. En este tema se explica cómo utilizar los módulos de Windows PowerShell. Para obtener información sobre cómo escribir módulos de Windows PowerShell, vea el artículo en MSDN sobre cómo escribir módulos de Windows PowerShell. CÓMO USAR UN MÓDULO Para usar un módulo, realice las tareas siguientes: 1. Instale el módulo. (Esta tarea suele realizarse automáticamente.) 2. Importe el módulo en su sesión de Windows PowerShell. 3. Busque los comandos que agregó el módulo. 4. Use los comandos que agregó el módulo. En este tema se explica cómo realizar estas tareas. También se incluye otra información útil sobre la administración de los módulos. CÓMO INSTALAR UN MÓDULO Si recibe un módulo en forma de carpeta con archivos, necesitará instalarlo en su equipo para poder importarlo en Windows PowerShell. La mayoría de los módulos se instalan automáticamente. Windows PowerShell incluye varios módulos preinstalados. En Windows Server 2008 R2, el Asistente para agregar características del Administrador del servidor instala automáticamente los módulos de características seleccionados. Hay otros muchos módulos que se incluyen en un instalador o programa de instalación que instala el módulo. Para instalar una carpeta de módulo: 1. Cree un directorio Modules para el usuario actual si no existe ninguno. Para crear un directorio Modules, escriba: new-item -type directory -path $home\Documentos\WindowsPowerShell\Modules 2. Copie toda la carpeta del módulo en el directorio Modules. Puede utilizar cualquier método para copiar la carpeta, como el Explorador de Windows y Cmd.exe, así como Windows PowerShell. En Windows PowerShell, use el cmdlet Copy-Item. Por ejemplo, para copiar la carpeta MyModule desde C:\ps-test\MyModule en el directorio Modules, escriba: copy-item -path c:\ps-test\MyModule -dest $home\Documentos\WindowsPowerShell\Modules Los módulos se pueden instalar en cualquier ubicación, pero si se instalan en una ubicación de módulo predeterminada, serán más fáciles de administrar. Para obtener más información sobre las ubicaciones de módulo predeterminadas, vea la sección "Ubicaciones de módulo y PSModulePath" que figura a continuación. que figura a continuación. CÓMO BUSCAR LOS MÓDULOS INSTALADOS Después de instalar un módulo, podrá importarlo en su sesión de Windows PowerShell. Para buscar los módulos instalados en una ubicación de módulo predeterminada, en el símbolo del sistema de Windows PowerShell, escriba: get-module -listAvailable Para buscar los módulos ya importados en su sesión, en el símbolo del sistema de Windows PowerShell, escriba: get-module Para obtener más información acerca del cmdlet Get-Module, vea Get-Module. CÓMO IMPORTAR UN MÓDULO Para poder usar los comandos de un módulo, se ha de importar el módulo en una sesión de Windows PowerShell. Para importar módulos desde una ubicación de módulo predeterminada en la sesión actual, utilice el formato de comando siguiente. import-module <nombre del módulo> Por ejemplo, el comando siguiente importa el módulo BitsTransfer en la sesión actual. import-module BitsTransfer Para importar un módulo que no está en una ubicación de módulo predeterminada, utilice en el comando la ruta de acceso completa a la carpeta del módulo. Por ejemplo, para agregar el módulo TestCmdlets en el directorio C:\ps-test a su sesión, escriba: import-module c:\ps-test\TestCmdlets Para obtener más información sobre cómo agregar módulos a su sesión, vea "Import-Module". CÓMO IMPORTAR TODOS LOS MÓDULOS EN UNA SESIÓN DE WINDOWS POWERSHELL En Windows 7 y Windows Server 2008 R2, la tarea "Importar todos los módulos" abre una sesión de Windows PowerShell que incluye todos los módulos y complementos disponibles de Windows PowerShell. Para iniciar una sesión de Windows PowerShell con todos los módulos y complementos disponibles de Windows PowerShell, siga el procedimiento que se describe a continuación. -- En la barra de tareas, haga clic con el botón secundario en el icono de Windows PowerShell y, a continuación, haga clic en "Importar todos los módulos". Nota: en Windows Server 2008 R2, el icono de Windows PowerShell está anclado a la barra de tareas de forma predeterminada. Sin embargo, debe iniciar Windows PowerShell una vez para que aparezca la tarea "Importar todos los módulos". En las demás versiones de Windows, para importar todos los módulos disponibles en su sesión, en el símbolo del sistema de Windows PowerShell, escriba: get-module -listAvailable | import-module CÓMO BUSCAR LOS COMANDOS DE UN MÓDULO Después de importar un módulo en su sesión de Windows PowerShell, podrá utilizar los comandos incluidos en el módulo. Para buscar los comandos agregados por un módulo, en el símbolo del sistema de Windows PowerShell, escriba: get-command -module <nombre del módulo> Por ejemplo, para buscar los comandos que el módulo BitsTransfer agrega, escriba: get-command -module BitsTransfer Para obtener más información acerca del cmdlet Get-Command, vea Get-Command. CÓMO BUSCAR AYUDA PARA LOS COMANDOS DE UN MÓDULO Si el módulo contiene temas de Ayuda para los comandos que exporta, el cmdlet Get-Help mostrará esos temas de Ayuda. Utilice el mismo formato de comando que utilizaría para cualquier tema de Ayuda de Windows PowerShell. Para buscar el tema de Ayuda correspondiente a los comandos de un módulo, en el símbolo del sistema de Windows PowerShell, escriba: get-help <nombre del comando> Para obtener ayuda más detallada, escriba: get-help <nombre del comando> -detailed Por ejemplo, para buscar la Ayuda detallada del cmdlet Start-BitsTransfer, escriba: get-help Start-BitsTransfer -detailed Para obtener más información acerca del módulo Get-Help, vea Get-Help. CÓMO QUITAR UN MÓDULO Al quitar un módulo, se eliminan de la sesión los comandos que agregó el módulo. Para quitar un módulo de su sesión, utilice el formato de comando siguiente. remove-module <nombre del módulo> Por ejemplo, el comando siguiente quita el módulo BitsTransfer de la sesión actual. remove-module BitsTransfer Al quitar un módulo, se invierte la operación de importar un módulo. Al quitar un módulo, no se desinstala el módulo. Para obtener más información acerca del cmdlet Remove-Module, vea Remove-Module. CÓMO IMPORTAR UN MÓDULO EN TODAS LAS SESIONES El comando Import-Module importa módulos en la sesión actual de Windows PowerShell. Este comando afecta únicamente a la sesión actual. Para importar un módulo en todas las sesiones de Windows PowerShell que inicie, agregue el comando Import-Module a su perfil de Windows PowerShell. Para obtener más información sobre los perfiles, vea about_Profiles. UBICACIONES DE MÓDULO Y PSMODULEPATH Hay dos ubicaciones predeterminadas para los módulos de Windows PowerShell, una para el sistema y otra para el usuario actual. Sistema: $pshome\Modules (%windir%\System32\WindowsPowerShell\v1.0\Modules) Usuario actual: $home\Documentos\WindowsPowerShell\Modules (%UserProfile%\Documentos\WindowsPowerShell\Modules) - o bien, $home\Mis documentos\WindowsPowerShell\Modules (%UserProfile%\Mis documentos\WindowsPowerShell\Modules) Nota: en Windows Vista, Windows Server 2008 y las versiones posteriores de Windows, para agregar o cambiar archivos en el directorio %Windir%\System32, inicie Windows PowerShell con la opción "Ejecutar como administrador". Puede cambiar las ubicaciones de módulo predeterminadas en el sistema cambiando el valor de la variable de entorno PSModulePath ($env:psmodulepath). La variable de entorno PSModulePath se basa en la variable de entorno Path y tiene el mismo formato. Para ver las ubicaciones de módulo predeterminadas, escriba: $env:psmodulepath Para agregar una ubicación de módulo predeterminada, use el siguiente formato de comando. $env:psmodulepath = $env:psmodulepath + ";<ruta de acceso>" El signo de punto y coma (;) en el comando separa la nueva ruta de acceso de la ruta de acceso anterior en la lista. Por ejemplo, para agregar el directorio "C:\ps-test\Modules", escriba: $env:psmodulepath + ";c:\ps-test\Modules" Cuando se agrega una ruta de acceso a PSModulePath, los comandos Get-Module e Import-Module incluyen los módulos en esa ruta de acceso. El valor que se establece afecta únicamente a la sesión actual. Para que el cambio sea persistente, agregue el comando a su perfil de Windows PowerShell o utilice el elemento del Sistema en el Panel de control para cambiar el valor de la variable de entorno PSModulePath en el Registro. Para obtener más información acerca de la variable PSModulePath, vea about_Environment_Variables. MÓDULOS Y CONFLICTOS DE NOMBRES Los conflictos de nombres se producen cuando varios comandos de la sesión tienen el mismo nombre. La importación de un módulo causa un conflicto de nombres cuando los comandos del módulo tienen los mismos nombres que los comandos o elementos de la sesión. Los conflictos de nombres pueden dar lugar a que se oculten o se reemplacen los comandos. -- Comandos ocultos. Un comando se oculta cuando este no es el comando que se ejecuta al escribir el nombre de comando, pero puede ejecutarlo mediante otro método, como agregando al nombre de comando el nombre del módulo o complemento en el que se originó. -- Comandos reemplazados. Un comando se reemplaza cuando no se puede ejecutar porque un comando con el mismo nombre lo ha sobrescrito. Incluso si se quita el módulo que causó el conflicto, no se puede ejecutar un comando reemplazado a menos que se reinicie la sesión. Import-Module podría agregar comandos que ocultan y reemplazan los comandos en la sesión actual. Asimismo, los comandos de la sesión actual pueden ocultar los comandos que agregó el módulo. Para evitar los conflictos de nombres, utilice el parámetro Prefix de Import-Command a fin de crear nombres únicos para los comandos importados. Asimismo, puede usar los parámetros Alias, Cmdlet, Function y Variable de Import-Module para seleccionar únicamente los comandos que desea importar, y puede excluir los comandos que causan conflictos de nombres en la sesión actual. Incluso si un comando está oculto, puede ejecutarlo agregando al nombre de comando el nombre del módulo o complemento en el que se originó. Las reglas de precedencia de comandos de Windows PowerShell determinan qué comando se ejecuta cuando la sesión incluye comandos con el mismo nombre. Por ejemplo, cuando una sesión incluye una función y un cmdlet con el mismo nombre, Windows PowerShell ejecuta la función de forma predeterminada. Cuando la sesión incluye comandos del mismo tipo con el mismo nombre, como dos cmdlets con el mismo nombre, se ejecuta de manera predeterminada el comando que se ha agregado más recientemente. Para obtener más información así como una explicación de las reglas de precedencia e instrucciones para la ejecución de comandos ocultos, vea about_Command_Precedence. MÓDULOS Y COMPLEMENTOS Puede agregar a su sesión comandos de módulos y complementos. Los módulos pueden agregar todo tipo de comandos, como cmdlets, proveedores y funciones, además de elementos, como variables, alias y unidades de Windows PowerShell. Los complementos pueden agregar únicamente cmdlets y proveedores. De hecho, si bien se pueden agregar funciones, alias, variables y unidades de disco a la sesión actual escribiéndolos o ejecutando un script que los agrega, todos los cmdlets y proveedores de la sesión actual provienen de un módulo o complemento. Antes de quitar un módulo o un complemento de su sesión, utilice los comandos siguientes para determinar los comandos que se van a quitar. Para buscar el origen de un cmdlet en su sesión, utilice el formato de comando siguiente: get-command <nombre del cmdlet> | format-list -property verb, noun, pssnapin, module Por ejemplo, para buscar el origen del cmdlet Get-Date, escriba: get-command get-date | format-list -property verb, noun, pssnapin, module Para obtener más información sobre los complementos de Windows PowerShell, vea about_PSSnapins. VEA TAMBIÉN about_Command_Precedence about_PSSnapins Get-Command Get-Help Get-Module Import-Module Remove-Module