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 propiedadesName
yCPU
de los objetos devueltos.
Ciclo de vida de un cmdlet
Entrada: Los cmdlets reciben datos a tráves de parámetros o mediante un pipeline
Procesamiento: Ejecutan la lógica definida (ejemplo: buscar, modificar, o eliminar datos).
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 serviciosWhere-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