PowerShell ofrece dos maneras de extender el shell. Puede usar complementos, que son solo binarios y desarrollados en un lenguaje de programación completo como C #, o puede usar módulos, que pueden ser tanto binarios como basados ​​en scripts.

Asegúrese de leer los artículos anteriores de la serie:

  • Aprenda cómo automatizar Windows con PowerShell
  • Aprendiendo a usar cmdlets en PowerShell
  • Aprender a usar objetos en PowerShell
  • Aprendizaje de formateo, filtrado y comparación en PowerShell
  • Aprende a usar el control remoto en PowerShell
  • Uso de PowerShell para obtener información de la computadora
  • Trabajar con colecciones en PowerShell

Y estad atentos para el resto de la serie toda la semana.

Snapins

Los snapins son así el año pasado. Dejando las bromas a un lado, los complementos realmente nunca se vieron en la comunidad de PowerShell porque la mayoría de los creadores de scripts no son desarrolladores y solo puedes escribirlos en un lenguaje como C #. Sin embargo, todavía hay algunos productos que utilizan complementos, como por ejemplo, Web Deploy. Para ver qué complementos están disponibles para usar en el shell, use el siguiente comando:

Get-PSSnapin –Registered

Para usar los comandos agregados por un complemento, primero debe importarlo a su sesión, y puede hacerlo así:

Add-PSSnapin -Name WDeploySnapin3.0

En este punto, recibirá un error si no tiene instalado el complemento Implementación web. Si lo tiene instalado, como yo, entonces se importará a su sesión. Para obtener una lista de los comandos disponibles en el complemento, simplemente puede usar el cmdlet Get-Command:

Get-Command –Module WDeploy*

Nota: Técnicamente esto no es un módulo, pero por alguna razón todavía tiene que usar el parámetro Módulo.

Módulos

Los módulos son más nuevos y son el camino a seguir. Se pueden crear secuencias de comandos con PowerShell y codificarlas en un lenguaje como C #. La mayoría de los comandos incorporados también están organizados en módulos. Para ver una lista de módulos en su sistema, puede usar el siguiente comando:

Get-Module –ListAvailable

A medida que los productos se actualizan, sus equivalentes de PowerShell se migran a los módulos. Por ejemplo, SQL solía tener un complemento, pero ahora está compuesto de módulos.

Para utilizar un módulo, primero debe importarlo.

Import-Module -Name SQLASCMDLETS

Puede usar el mismo truco que usamos con los complementos para ver todos los comandos que el módulo agregó al shell.

Eso deja la pregunta: ¿cómo sabe PowerShell qué complementos y módulos tiene en su sistema? Bueno, los snapins son un poco molestos y tienen que ser instalados. Parte del proceso de instalación incluye la creación de algunas entradas de registro que PowerShell busca para encontrar información sobre el complemento. Los módulos, por otro lado, pueden registrarse con el shell simplemente colocándolos en una de las ubicaciones en la variable de entorno PSModulePath. Alternativamente, puede agregar la ruta del módulo a la variable de entorno.

($env:PSModulePath).Split(“;”)

Eso escupirá los contenidos de la variable. Observe que si tiene un módulo como SQL instalado, cómo modificó la variable para incluir la ubicación del módulo SQL.

Módulo de carga automática

PowerShell 3 introdujo una característica nueva e impresionante que tiene algunos nombres. Ninguno de ellos es oficial, pero "Módulo de carga automática" es la mejor descripción de ello. Básicamente, le permite usar cmdlets que pertenecen a un módulo externo sin importar explícitamente el módulo usando el cmdlet Import-Module. Para ver esto, primero elimine todos los módulos de su shell usando el siguiente comando:

Get-Module | Remove-Module

A continuación, puede verificar que no tiene módulos cargados utilizando lo siguiente:

Get-Module

Ahora use un cmdlet que no esté en la biblioteca central. La conexión de prueba es buena:

Test-Connection localhost

Si revisa nuevamente los módulos cargados, verá que sí cargó el módulo.

Eso es todo por hoy, muchachos, únanse a nosotros mañana por más.

Los Mejores Consejos:
Comentarios: