Cmdlet

En este primer artículo de la serie sobre PowerShell, hablaremos de los Cmdlets. Un cmdlet podemos definirlo como un comando ligero que realiza una tarea específica en el entorno de Powershell. Estos comandos están diseñados para ser simples, modulares y altamente reutilizables. A continuación, desglosamos la anatomía de un cmdlet para entender cómo se estructura y cómo funcionan.

Estructura básica de un cmdlet

La sintaxis básica de un cmdlet sigue el formato:

<Verbo-Sustantivo> [-Parámetros] [ValoresOpcionales]

Verbo-Sustantivo

El Verbo representa la acción que realizará el cmdlet. Powershell utiliza un conjunto estándar de verbos aprobados (por ejemplo, Get, Set, New, Remove) para garantizar consistencia.

Ejemplo: Get (obtener), Set (establecer), Remove (eliminar).

Por su parte, el Sustantivo describe el objeto sobre el que actúa el verbo.

Ejemplo: Process (procesos), Service (servicios), Item (elemento de un sistema de archivos).

Por ejemplo, un cmdlet completo sería el siguiente:

Get-Process

Este cmdlet obtiene información sobre los procesos en ejecución.

Parámetros

Los parámetros son opciones que proporcionan más detalles o modifican el comportamiento del cmdlet.

  • Obligatorios: Algunos cmdlets requieren ciertos parámetros para funcionar.

  • Opcionales: Otros parámetros son opcionales y ajustan los resultados o el alcance.

  • Alias: Algunos parámetros tienen alias (abreviaciones, los cuales veremos en el próximo artículo).

Ejemplo:

Get-Process -Name "notepad"

En este caso, -Name es un parámetro que especifica el nombre del proceso que queremos obtener.

Debemos tener en cuenta, que si no existe un proceso con el nombre notepad lanzará un error.

Valores devueltos

Un cmdlet generalmente devuelve un objeto o un conjunto de objetos como salida. Powershell trabaja con objetos, no con texto, lo que facilita la manipulación de datos en secuencias de comandos.

Ejemplo:

Get-Process | Select-Object Name, CPU
  • Get-Process: Devuelve todos los procesos en ejecución.

  • Select-Object: Filtra las propiedades Name y CPU de los objetos devueltos.

Ciclo de vida de un cmdlet

  1. Entrada: Los cmdlets reciben datos a tráves de parámetros o mediante un pipeline

  2. Procesamiento: Ejecutan la lógica definida (ejemplo: buscar, modificar, o eliminar datos).

  3. Salida: Devuelven objetos al pipeline, que pueden ser procesados por otros cmdlets.

Ejemplo con pipeline:

Get-Service | Where-Object {$_.Status -eq "Running"}
  • Get-Service: Lista los servicios

  • Where-Object: Filtra solo aquellos con estado "Running".

Referencias

Para profundizar en los conceptos, te recomiendo consultar las referencias de la documentación oficial, las cuales son altamente recomendables para un análisis más detallado.

Última actualización