Acerca de los módulosAbout Modules

Descripción breveShort Description

Explica cómo instalar, importar y usar los módulos de PowerShell.Explains how to install, import, and use PowerShell modules.

Descripción largaLong Description

Un módulo es un paquete que contiene miembros de PowerShell, como cmdlets, proveedores, funciones, flujos de trabajo, variables y alias.A module is a package that contains PowerShell members, such as cmdlets, providers, functions, workflows, variables, and aliases.

Las personas que escriben comandos pueden utilizar módulos para organizar sus comandos y compartirlos con otras personas.People who write commands can use modules to organize their commands and share them with others. Las personas que reciben módulos pueden agregar los comandos de los módulos a sus sesiones de PowerShell y usarlos como los comandos integrados.People who receive modules can add the commands in the modules to their PowerShell sessions and use them just like the built-in commands.

En este tema se explica cómo usar los módulos de PowerShell.This topic explains how to use PowerShell modules. Para obtener información sobre cómo escribir módulos de PowerShell, consulte escribir un módulo de PowerShell.For information about how to write PowerShell modules, see Writing a PowerShell Module.

¿Qué es un módulo?What Is a Module?

Un módulo es un paquete que contiene miembros de PowerShell, como cmdlets, proveedores, funciones, flujos de trabajo, variables y alias.A module is a package that contains PowerShell members, such as cmdlets, providers, functions, workflows, variables, and aliases. Los miembros de este paquete se pueden implementar en un script de PowerShell, en una DLL compilada o en una combinación de ambos.The members of this package can be implemented in a PowerShell script, a compiled DLL, or a combination of both. Normalmente, estos archivos se agrupan en un único directorio.These files are usually grouped together in a single directory. Para obtener más información, vea Descripción de un módulo de Windows PowerShell en la documentación del SDK.For more information, see Understanding a Windows PowerShell Module in the SDK documentation.

Carga automática de módulosModule Auto-Loading

A partir de PowerShell 3,0, PowerShell importa módulos automáticamente la primera vez que se ejecuta cualquier comando en un módulo instalado.Beginning in PowerShell 3.0, PowerShell imports modules automatically the first time that you run any command in an installed module. Ahora puede utilizar los comandos de un módulo sin realizar ninguna instalación o configuración de perfil, por lo que no es necesario administrar los módulos después de instalarlos en el equipo.You can now use the commands in a module without any set-up or profile configuration, so there's no need to manage modules after you install them on your computer.

Además, los comandos de un módulo son más fáciles de encontrar.The commands in a module are also easier to find. El Get-Command cmdlet ahora obtiene todos los comandos en todos los módulos instalados, incluso si aún no están en la sesión.The Get-Command cmdlet now gets all commands in all installed modules, even if they are not yet in the session. Puede encontrar un comando y usarlo sin importar la necesidad de importar primero el módulo.You can find a command and use it without importing needing to import the module first.

En cada uno de los ejemplos siguientes se hace que el módulo CimCmdlets, que contiene Get-CimInstance , se importe en la sesión.Each of the following examples cause the CimCmdlets module, which contains Get-CimInstance, to be imported into your session.

  • Ejecutar el comandoRun the Command

    Get-CimInstance Win32_OperatingSystem
    
  • Obtención del comandoGet the Command

    Get-Command Get-CimInstance
    
  • Obtener ayuda para el comandoGet Help for the Command

    Get-Help Get-CimInstance
    

Get-Command los comandos que incluyen un carácter comodín ( * ) se consideran para la detección, no para usarse, y no importan ningún módulo.Get-Command commands that include a wildcard character (*) are considered to be for discovery, not use, and do not import any modules.

Solo los módulos que se almacenan en la ubicación especificada por la variable de entorno PSModulePath se importan automáticamente.Only modules that are stored in the location specified by the PSModulePath environment variable are automatically imported. Los módulos de otras ubicaciones se deben importar mediante la ejecución del Import-Module cmdlet.Modules in other locations must be imported by running the Import-Module cmdlet.

Además, los comandos que usan los proveedores de PowerShell no importan automáticamente un módulo.Also, commands that use PowerShell providers do not automatically import a module. Por ejemplo, si usa un comando que requiere la unidad WSMan:, como el Get-PSSessionConfiguration cmdlet, es posible que deba ejecutar el Import-Module cmdlet para importar el módulo Microsoft. WSMan. Management que incluye la WSMan: unidad.For example, if you use a command that requires the WSMan: drive, such as the Get-PSSessionConfiguration cmdlet, you might need to run the Import-Module cmdlet to import the Microsoft.WSMan.Management module that includes the WSMan: drive.

Todavía puede ejecutar el Import-Module comando para importar un módulo y utilizar la $PSModuleAutoloadingPreference variable para habilitar, deshabilitar y configurar la importación automática de módulos.You can still run the Import-Module command to import a module and use the $PSModuleAutoloadingPreference variable to enable, disable and configure automatic importing of modules. Para obtener más información, vea about_Preference_Variables.For more information, see about_Preference_Variables.

Cómo usar un móduloHow to Use a Module

Para utilizar un módulo, realice las tareas siguientes:To use a module, perform the following tasks:

  1. Instale el módulo.Install the module. (Esto a menudo se hace automáticamente).(This is often done for you.)
  2. Busque los comandos que agregó el módulo.Find the commands that the module added.
  3. Utilice los comandos que agregó el módulo.Use the commands that the module added.

En este tema se explica cómo realizar estas tareas.This topic explains how to perform these tasks. También se incluye otra información útil acerca de la administración de módulos.It also includes other useful information about managing modules.

Cómo instalar un móduloHow to Install a Module

Si recibe un módulo como una carpeta con archivos en él, debe instalarlo en el equipo para poder usarlo en PowerShell.If you receive a module as a folder with files in it, you need to install it on your computer before you can use it in PowerShell.

La mayoría de los módulos se instalan automáticamente.Most modules are installed for you. PowerShell incluye varios módulos preinstalados, a veces denominados Módulos principales .PowerShell comes with several preinstalled modules, sometimes called the core modules. En equipos basados en Windows, si las características que se incluyen con el sistema operativo tienen cmdlets para administrarlos, estos módulos se preinstalan.On Windows-based computers, if features that are included with the operating system have cmdlets to manage them, those modules are preinstalled. Al instalar una característica de Windows, mediante, por ejemplo, el Asistente para agregar roles y características en Administrador del servidor, o el cuadro de diálogo activar o desactivar características de Windows en el panel de control, se instalan los módulos de PowerShell que forman parte de la característica.When you install a Windows feature, by using, for example, the Add Roles and Features Wizard in Server Manager, or the Turn Windows features on or off dialog box in Control Panel, any PowerShell modules that are part of the feature are installed. Muchos otros módulos se presentan como un instalador o un programa de instalación que instala el módulo.Many other modules come in an installer or Setup program that installs the module.

Use el siguiente comando para crear un directorio modules para el usuario actual:Use the following command to create a Modules directory for the current user:

New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules

Copie la carpeta de módulo al completo en el directorio Modules.Copy the entire module folder into the Modules directory. Puede usar cualquier método para copiar la carpeta, incluido el explorador de Windows y Cmd.exe, así como PowerShell.You can use any method to copy the folder, including Windows Explorer and Cmd.exe, as well as PowerShell. En PowerShell, use el Copy-Item cmdlet.In PowerShell use the Copy-Item cmdlet. Por ejemplo, para copiar la carpeta MyModule de en C:\ps-test\MyModule el directorio modules, escriba:For example, to copy the MyModule folder from C:\ps-test\MyModule to the Modules directory, type:

Copy-Item -Path C:\ps-test\MyModule -Destination `
    $HOME\Documents\PowerShell\Modules

Puede instalar un módulo en cualquier ubicación, pero es más fácil administrar los módulos si se instalan en una ubicación predeterminada.You can install a module in any location, but installing your modules in a default module location makes them easier to manage. Para obtener más información sobre las ubicaciones de módulo predeterminadas, vea el módulo y las ubicaciones de recursos de DSC y la sección PSModulePath.For more information about the default module locations, see the Module and DSC Resource Locations, and PSModulePath section.

Cómo encontrar los módulos instaladosHow to Find Installed Modules

Para encontrar los módulos que están instalados en una ubicación de módulo predeterminada pero que aún no se han importado a la sesión, escriba:To find modules that are installed in a default module location, but not yet imported into your session, type:

Get-Module -ListAvailable

Para encontrar los módulos que ya se han importado a la sesión, en el símbolo del sistema de PowerShell, escriba:To find the modules that have already been imported into your session, at the PowerShell prompt, type:

Get-Module

Para obtener más información sobre el Get-Module cmdlet, consulte Get-Module.For more information about the Get-Module cmdlet, see Get-Module.

Cómo buscar los comandos en un móduloHow to Find the Commands in a Module

Use el Get-Command cmdlet para buscar todos los comandos disponibles.Use the Get-Command cmdlet to find all available commands. Puede usar los parámetros del Get-Command cmdlet para filtrar comandos como por módulo, nombre y sustantivo.You can use the parameters of the Get-Command cmdlet to filter commands such as by module, name, and noun.

Para encontrar todos los comandos de un módulo, escriba:To find all commands in a module, type:

Get-Command -Module <module-name>

Por ejemplo, para buscar los comandos en el módulo BitsTransfer, escriba:For example, to find the commands in the BitsTransfer module, type:

Get-Command -Module BitsTransfer

Para obtener más información sobre el Get-Command cmdlet, consulte get-command.For more information about the Get-Command cmdlet, see Get-Command.

Cómo obtener ayuda para los comandos de un móduloHow to Get Help for the Commands in a Module

Si el módulo contiene archivos de ayuda para los comandos que exporta, el Get-Help cmdlet mostrará los temas de ayuda.If the module contains Help files for the commands that it exports, the Get-Help cmdlet will display the Help topics. Use el mismo Get-Help formato de comando que usaría para obtener ayuda para cualquier comando de PowerShell.Use the same Get-Help command format that you would use to get help for any command in PowerShell.

A partir de PowerShell 3,0, puede descargar archivos de ayuda para un módulo y descargar actualizaciones en los archivos de ayuda para que nunca estén obsoletos.Beginning in PowerShell 3.0, you can download Help files for a module and download updates to the Help files so they are never obsolete.

Para obtener ayuda para un comando de un módulo, escriba:To get help for a commands in a module, type:

Get-Help <command-name>

Para obtener ayuda en línea para el comando en un módulo, escriba:To get help online for command in a module, type:

Get-Help <command-name> -Online

Para descargar e instalar los archivos de ayuda de los comandos de un módulo, escriba:To download and install the help files for the commands in a module, type:

Update-Help -Module <module-name>

Para obtener más información, vea Get-Help y Update-Help.For more information, see Get-Help and Update-Help.

Cómo importar un móduloHow to Import a Module

Podría tener que importar un módulo o importar un archivo de módulo.You might have to import a module or import a module file. La importación es necesaria cuando un módulo no está instalado en las ubicaciones especificadas por la variable de entorno PSModulePath , $env:PSModulePath , o el módulo consta de un archivo, como un archivo. dll o. psm1, en lugar de un módulo típico que se entrega como una carpeta.Importing is required when a module is not installed in the locations specified by the PSModulePath environment variable, $env:PSModulePath, or the module consists of file, such as a .dll or .psm1 file, instead of typical module that is delivered as a folder.

También puede importar un módulo para poder utilizar los parámetros del Import-Module comando, como el parámetro PREFIX, que agrega un prefijo distintivo a los nombres de nombre de todos los comandos importados, o el parámetro NoClobber , que impide que el módulo agregue comandos que ocultan o reemplazan los comandos existentes en la sesión.You might also choose to import a module so that you can use the parameters of the Import-Module command, such as the Prefix parameter, which adds a distinctive prefix to the noun names of all imported commands, or the NoClobber parameter, which prevents the module from adding commands that would hide or replace existing commands in the session.

Para importar módulos, use el Import-Module cmdlet.To import modules, use the Import-Module cmdlet.

Para importar módulos en una ubicación PSModulePath en la sesión actual, utilice el formato de comando siguiente.To import modules in a PSModulePath location into the current session, use the following command format.

Import-Module <module-name>

Por ejemplo, el comando siguiente importa el módulo BitsTransfer en la sesión actual.For example, the following command imports the BitsTransfer module into the current session.

Import-Module BitsTransfer

Para importar un módulo que no está en una ubicación de módulo predeterminada, utilice la ruta de acceso completa a la carpeta del módulo en el comando.To import a module that is not in a default module location, use the fully qualified path to the module folder in the command.

Por ejemplo, para agregar el módulo TestCmdlets en el C:\ps-test directorio a la sesión, escriba:For example, to add the TestCmdlets module in the C:\ps-test directory to your session, type:

Import-Module C:\ps-test\TestCmdlets

Para importar un archivo de módulo que no se encuentra en una carpeta de módulo, utilice la ruta de acceso completa al archivo de módulo en el comando.To import a module file that is not contained in a module folder, use the fully qualified path to the module file in the command.

Por ejemplo, para agregar el módulo TestCmdlets.dll del C:\ps-test directorio a la sesión, escriba:For example, to add the TestCmdlets.dll module in the C:\ps-test directory to your session, type:

Import-Module C:\ps-test\TestCmdlets.dll

Para obtener más información sobre cómo agregar módulos a la sesión, consulte Import-Module.For more information about adding modules to your session, see Import-Module.

Cómo importar un módulo en cada sesiónHow to Import a Module into Every Session

El Import-Module comando importa los módulos a la sesión actual de PowerShell.The Import-Module command imports modules into your current PowerShell session. Para importar un módulo en cada sesión de PowerShell que inicie, agregue el Import-Module comando a su perfil de PowerShell.To import a module into every PowerShell session that you start, add the Import-Module command to your PowerShell profile.

Para obtener más información sobre los perfiles, consulte about_Profiles.For more information about profiles, see about_Profiles.

Cómo quitar un móduloHow to Remove a Module

Al quitar un módulo, se eliminan de la sesión los comandos que el módulo agregó.When you remove a module, the commands that the module added are deleted from the session.

Para quitar un módulo de la sesión, use el siguiente formato de comando.To remove a module from your session, use the following command format.

Remove-Module <module-name>

Por ejemplo, el comando siguiente quita el módulo BitsTransfer de la sesión actual.For example, the following command removes the BitsTransfer module from the current session.

Remove-Module BitsTransfer

Si quita un módulo, se invierte la operación de importación de un módulo.Removing a module reverses the operation of importing a module. Si quita un módulo, dicho módulo no se desinstala.Removing a module does not uninstall the module. Para obtener más información, vea Remove-Module.For more information, see Remove-Module.

Ubicaciones de recursos de módulo y DSC y PSModulePathModule and DSC Resource Locations, and PSModulePath

La $env:PSModulePath variable de entorno contiene una lista de ubicaciones de carpetas en las que se buscan los módulos y los recursos.The $env:PSModulePath environment variable contains a list of folder locations that are searched to find modules and resources.

De forma predeterminada, las ubicaciones efectivas asignadas a $env:PSModulePath son:By default, the effective locations assigned to $env:PSModulePath are:

  • Ubicaciones para todo el sistema: $PSHOME\ModulesSystem-wide locations: $PSHOME\Modules

    Estas carpetas contienen módulos que se incluyen con Windows y PowerShell.These folders contain modules that ship with Windows and PowerShell.

    Los recursos de DSC que se incluyen con PowerShell se almacenan en la $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources carpeta.DSC resources that are included with PowerShell are stored in the $PSHOME\Modules\PSDesiredStateConfiguration\DSCResources folder.

  • Módulos específicos del usuario: Estos son los módulos instalados por el usuario en el ámbito del usuario.User-specific modules: These are modules installed by the user in the user's scope. Install-Module tiene un parámetro de ámbito que le permite especificar si el módulo está instalado para el usuario actual o para todos los usuarios.Install-Module has a Scope parameter that allows you to specify whether the module is installed for the current user or for all users. Para obtener más información, vea install-Module.For more information, see Install-Module.

    La ubicación de CurrentUser específica del usuario en Windows es la carpeta que se PowerShell\Modules encuentra en la ubicación documentos en el perfil de usuario.The user-specific CurrentUser location on Windows is the PowerShell\Modules folder located in the Documents location in your user profile. La ruta de acceso específica de esa ubicación varía en función de la versión de Windows y de si se usa o no la redirección de carpetas.The specific path of that location varies by version of Windows and whether or not you are using folder redirection. Microsoft OneDrive también puede cambiar la ubicación de la carpeta de documentos .Microsoft OneDrive can also change the location of your Documents folder.

    De forma predeterminada, en Windows 10, esa ubicación es $HOME\Documents\PowerShell\Modules .By default, on Windows 10, that location is $HOME\Documents\PowerShell\Modules. En Linux o Mac, la ubicación de CurrentUser es $HOME/.local/share/powershell/Modules .On Linux or Mac, the CurrentUser location is $HOME/.local/share/powershell/Modules.

    Nota

    Puede comprobar la ubicación de la carpeta de documentos con el siguiente comando: [Environment]::GetFolderPath('MyDocuments') .You can verify the location of your Documents folder using the following command: [Environment]::GetFolderPath('MyDocuments').

  • La ubicación de AllUsers es $env:PROGRAMFILES\PowerShell\Modules en Windows.The AllUsers location is $env:PROGRAMFILES\PowerShell\Modules on Windows. En Linux o Mac, los módulos se almacenan en /usr/local/share/powershell/Modules .On Linux or Mac the modules are stored at /usr/local/share/powershell/Modules.

Nota

Para agregar o cambiar archivos en el $env:Windir\System32 directorio, inicie PowerShell con la opción Ejecutar como administrador .To add or change files in the $env:Windir\System32 directory, start PowerShell with the Run as administrator option.

Puede cambiar las ubicaciones de módulo predeterminadas en el sistema cambiando el valor de la variable de entorno PSModulePath , $Env:PSModulePath .You can change the default module locations on your system by changing the value of the PSModulePath environment variable, $Env:PSModulePath. La variable de entorno PSModulePath se modela en la variable de entorno PATH y tiene el mismo formato.The PSModulePath environment variable is modeled on the Path environment variable and has the same format.

Para ver las ubicaciones de módulo predeterminadas, escriba:To view the default module locations, type:

$Env:PSModulePath

Para agregar una ubicación de módulo predeterminada, utilice el formato de comando siguiente.To add a default module location, use the following command format.

$Env:PSModulePath = $Env:PSModulePath + ";<path>"

El punto y coma ( ; ) del comando separa la nueva ruta de acceso de la ruta que la precede en la lista.The semi-colon (;) in the command separates the new path from the path that precedes it in the list.

Por ejemplo, para agregar el C:\ps-test\Modules directorio, escriba:For example, to add the C:\ps-test\Modules directory, type:

$Env:PSModulePath + ";C:\ps-test\Modules"

Para agregar una ubicación de módulo predeterminada en Linux o MacOS, use el siguiente formato de comando:To add a default module location on Linux or MacOS, use the following command format:

$Env:PSModulePath += ":<path>"

Por ejemplo, para agregar el /usr/local/Fabrikam/Modules directorio al valor de la variable de entorno PSModulePath , escriba:For example, to add the /usr/local/Fabrikam/Modules directory to the value of the PSModulePath environment variable, type:

$Env:PSModulePath += ":/usr/local/Fabrikam/Modules"

En Linux o MacOS, el signo de dos puntos ( : ) del comando separa la nueva ruta de acceso que la precede en la lista.On Linux or MacOS, the colon (:) in the command separates the new path from the path that precedes it in the list.

Cuando se agrega una ruta de acceso a PSModulePath, los Get-Module Import-Module comandos incluyen módulos en esa ruta de acceso.When you add a path to PSModulePath, Get-Module and Import-Module commands include modules in that path.

El valor que establezca afectará solo a la sesión actual.The value that you set affects only the current session. Para que el cambio sea persistente, agregue el comando a su perfil de PowerShell o use sistema en el panel de control para cambiar el valor de la variable de entorno PSModulePath en el registro.To make the change persistent, add the command to your PowerShell profile or use System in Control Panel to change the value of the PSModulePath environment variable in the registry.

Además, para que el cambio sea persistente, también puede usar el método SetEnvironmentVariable de la clase System. Environment para agregar una ruta de acceso a la variable de entorno PSModulePath .Also, to make the change persistent, you can also use the SetEnvironmentVariable method of the System.Environment class to add a Path to the PSModulePath environment variable.

Para obtener más información sobre la variable PSModulePath , vea about_Environment_Variables.For more information about the PSModulePath variable, see about_Environment_Variables.

Módulos y conflictos de nombresModules and Name Conflicts

Cuando más de un comando en la sesión tiene el mismo nombre, se producen conflictos de nombre.Name conflicts occur when more than one command in the session has the same name. La importación de un módulo provoca un conflicto de nombres si los comandos del módulo tienen los mismos nombres que los comandos o elementos de la sesión.Importing a module causes a name conflict when commands in the module have the same names as commands or items in the session.

Los conflictos de nombres pueden ocultar o reemplazar los comandos.Name conflicts can result in commands being hidden or replaced.

HiddenHidden

Se oculta un comando si no es el comando que se ejecuta cuando se escribe el nombre de comando, pero puede ejecutarlo mediante otro método, por ejemplo calificando el nombre de comando con el nombre del módulo o complemento en el que se originó.A command is hidden when it is not the command that runs when you type the command name, but you can run it by using another method, such as by qualifying the command name with the name of the module or snap-in in which it originated.

ReemplazadosReplaced

Se reemplaza un comando cuando no se puede ejecutar porque lo ha sobrescrito un comando con el mismo nombre.A command is replaced when you cannot run it because it has been overwritten by a command with the same name. Incluso si se quita el módulo que provocó el conflicto, no se puede ejecutar un comando reemplazado a menos que se reinicie la sesión.Even when you remove the module that caused the conflict, you cannot run a replaced command unless you restart the session.

Import-Module podría agregar comandos que ocultan y reemplazan comandos en la sesión actual.Import-Module might add commands that hide and replace commands in the current session. Además, los comandos de la sesión pueden ocultar comandos agregados por el módulo.Also, commands in your session can hide commands that the module added.

Para detectar conflictos de nombres, use el parámetro All del Get-Command cmdlet.To detect name conflicts, use the All parameter of the Get-Command cmdlet. A partir de PowerShell 3,0, Get-Command obtiene solo los comandos que se ejecutan cuando se escribe el nombre de comando.Beginning in PowerShell 3.0, Get-Command gets only that commands that run when you type the command name. El parámetro All obtiene todos los comandos con el nombre específico en la sesión.The All parameter gets all commands with the specific name in the session.

Para evitar conflictos de nombres, use los parámetros NoClobber o prefix del Import-Module cmdlet.To prevent name conflicts, use the NoClobber or Prefix parameters of the Import-Module cmdlet. El parámetro prefix agrega un prefijo a los nombres de los comandos importados para que sean únicos en la sesión.The Prefix parameter adds a prefix to the names of imported commands so that they are unique in the session. El parámetro NoClobber no importa ningún comando que oculte o reemplace los comandos existentes en la sesión.The NoClobber parameter does not import any commands that would hide or replace existing commands in the session.

También 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.You can also use the Alias, Cmdlet, Function, and Variable parameters of Import-Module to select only the commands that you want to import, and you can exclude commands that cause name conflicts in your session.

Los autores de módulos pueden evitar conflictos de nombres mediante el uso de la propiedad DefaultCommandPrefix del manifiesto del módulo para agregar un prefijo predeterminado a todos los nombres de comando.Module authors can prevent name conflicts by using the DefaultCommandPrefix property of the module manifest to add a default prefix to all command names. El valor del parámetro prefix tiene prioridad sobre el valor de DefaultCommandPrefix.The value of the Prefix parameter takes precedence over the value of DefaultCommandPrefix.

Incluso si un comando está oculto, puede ejecutarlo calificando el nombre de comando con el nombre del módulo o complemento en el que se originó.Even if a command is hidden, you can run it by qualifying the command name with the name of the module or snap-in in which it originated.

Las reglas de prioridad de comandos de PowerShell determinan qué comando se ejecuta cuando la sesión incluye comandos con el mismo nombre.The PowerShell command precedence rules determine which command runs when the session includes commands with the same name.

Por ejemplo, cuando una sesión incluye una función y un cmdlet con el mismo nombre, PowerShell ejecuta la función de forma predeterminada.For example, when a session includes a function and a cmdlet with the same name, PowerShell runs the function by default. Cuando la sesión incluye comandos del mismo tipo con el mismo nombre, como dos cmdlets con el mismo nombre, de forma predeterminada ejecuta el comando agregado más recientemente.When the session includes commands of the same type with the same name, such as two cmdlets with the same name, by default, it runs the most recently added command.

Para obtener más información, incluida una explicación de las reglas de prioridad e instrucciones para ejecutar comandos ocultos, vea about_Command_Precedence.For more information, including an explanation of the precedence rules and instructions for running hidden commands, see about_Command_Precedence.

Módulos y complementosModules and Snap-ins

Puede Agregar comandos a la sesión desde módulos y complementos. Los módulos pueden agregar todos los tipos de comandos, incluidos los cmdlets, los proveedores y las funciones, y los elementos, como variables, alias y unidades de PowerShell.You can add commands to your session from modules and snap-ins. Modules can add all types of commands, including cmdlets, providers, and functions, and items, such as variables, aliases, and PowerShell drives. Los complementos solo pueden agregar cmdlets y proveedores.Snap-ins can add only cmdlets and providers.

Antes de quitar un módulo o un complemento de la sesión, utilice los comandos siguientes para determinar qué comandos se quitarán.Before removing a module or snap-in from your session, use the following commands to determine which commands will be removed.

Para buscar el origen de un cmdlet en la sesión, use el siguiente formato de comando:To find the source of a cmdlet in your session, use the following command format:

Get-Command <cmdlet-name> | Format-List -Property verb,noun,pssnapin,module

Por ejemplo, para buscar el origen del Get-Date cmdlet, escriba:For example, to find the source of the Get-Date cmdlet, type:

Get-Command Get-Date | Format-List -Property verb,noun,module

Los comandos que exporta un módulo deben seguir las reglas de nomenclatura de comandos de PowerShell.The commands that a module exports should follow the PowerShell command naming rules. Si el módulo que se importa exporta cmdlets o funciones que tienen verbos no aprobados en sus nombres, el Import-Module cmdlet muestra el siguiente mensaje de advertencia.If the module that you import exports cmdlets or functions that have unapproved verbs in their names, the Import-Module cmdlet displays the following warning message.

ADVERTENCIA: algunos nombres de comando importados incluyen verbos no aprobados que pueden hacer que sean menos reconocibles.WARNING: Some imported command names include unapproved verbs which might make them less discoverable. Utilice el parámetro Verbose para obtener más detalles o escriba Get-Verb para ver la lista de verbos aprobados.Use the Verbose parameter for more detail or type Get-Verb to see the list of approved verbs.

Este mensaje es sólo una advertencia.This message is only a warning. El módulo completo se importa de todos modos, incluidos los comandos que no cumplen las especificaciones.The complete module is still imported, including the non-conforming commands. Aunque el mensaje se muestra a los usuarios del módulo, el autor del módulo debe corregir el problema de nomenclatura.Although the message is displayed to module users, the naming problem should be fixed by the module author.

Para suprimir el mensaje de advertencia, utilice el parámetro DisableNameChecking del Import-Module cmdlet.To suppress the warning message, use the DisableNameChecking parameter of the Import-Module cmdlet.

Módulos y complementos integradosBuilt-in Modules and Snap-ins

En PowerShell 2,0 y en programas de host de estilo anterior en PowerShell 3,0 y versiones posteriores, los comandos principales que se instalan con PowerShell se empaquetan en complementos que se agregan automáticamente a cada sesión de PowerShell.In PowerShell 2.0 and in older-style host programs in PowerShell 3.0 and later, the core commands that are installed with PowerShell are packaged in snap-ins that are added automatically to every PowerShell session.

A partir de PowerShell 3,0, para los programas host que implementan la InitialSessionState.CreateDefault2 API de estado de sesión inicial, el complemento Microsoft. PowerShell. Core se agrega a cada sesión de forma predeterminada.Beginning in PowerShell 3.0, for host programs that implement the InitialSessionState.CreateDefault2 initial session state API the Microsoft.PowerShell.Core snap-in is added to every session by default. Los módulos se cargan automáticamente en el primer uso.Modules are loaded automatically on first-use.

Nota

Las sesiones remotas, incluidas las sesiones que se inician con el New-PSSession cmdlet, son sesiones de estilo antiguo en las que los comandos integrados se empaquetan en complementos.Remote sessions, including sessions that are started by using the New-PSSession cmdlet, are older-style sessions in which the built-in commands are packaged in snap-ins.

Los siguientes módulos (o complementos) se instalan con PowerShell.The following modules (or snap-ins) are installed with PowerShell.

  • CimCmdletsCimCmdlets
  • Microsoft.PowerShell.ArchiveMicrosoft.PowerShell.Archive
  • Microsoft.PowerShell.CoreMicrosoft.PowerShell.Core
  • Microsoft.PowerShell.DiagnosticsMicrosoft.PowerShell.Diagnostics
  • Microsoft.PowerShell.HostMicrosoft.PowerShell.Host
  • Microsoft.PowerShell.ManagementMicrosoft.PowerShell.Management
  • Microsoft.PowerShell.SecurityMicrosoft.PowerShell.Security
  • Microsoft.PowerShell.UtilityMicrosoft.PowerShell.Utility
  • Microsoft.WSMan.ManagementMicrosoft.WSMan.Management
  • PackageManagementPackageManagement
  • PowerShellGetPowerShellGet
  • PSDesiredStateConfigurationPSDesiredStateConfiguration
  • PSDiagnosticsPSDiagnostics
  • PSReadlinePSReadline

Eventos del módulo de registroLogging Module Events

A partir de PowerShell 3,0, puede registrar eventos de ejecución para los cmdlets y las funciones en los módulos y complementos de PowerShell estableciendo la propiedad LogPipelineExecutionDetails de los módulos y complementos en $True .Beginning in PowerShell 3.0, you can record execution events for the cmdlets and functions in PowerShell modules and snap-ins by setting the LogPipelineExecutionDetails property of modules and snap-ins to $True. También puede usar un valor de directiva de grupo, activar el registro de módulos para habilitar el registro de módulos en todas las sesiones de PowerShell.You can also use a Group Policy setting, Turn on Module Logging, to enable module logging in all PowerShell sessions. Para obtener más información, consulte los artículos registro y Directiva de grupo.For more information, see the logging and group policy articles.

Consulte tambiénSee Also

about_Logging_Windowsabout_Logging_Windows

about_Logging_Non Windowsabout_Logging_Non-Windows

about_Group_Policy_Settingsabout_Group_Policy_Settings

about_Command_Precedenceabout_Command_Precedence

about_Group_Policy_Settingsabout_Group_Policy_Settings

Get-CommandGet-Command

Get-HelpGet-Help

Get-ModuleGet-Module

Import-ModuleImport-Module

Remove-ModuleRemove-Module