Introducción a los tres pilares clave de PowerShell para la administración de Windows: cmdlets, objetos y canalizaciones

Cómo combinar cmdlets para soluciones más complicadas

Las canalizaciones facilitan la combinación de cmdlets y la creación de soluciones más complejas sin necesidad de escribir código difícil. Por ejemplo, si desea encontrar un proceso que use una CPU alta y detenerlo, puede usar la siguiente canalización:

Get-Process |
Where-Object {$_.CPU -gt 50} |
Stop-Process
  • Where-Object {$_.CPU -gt 50}: Filtra los procesos que tienen más del 50% de uso de CPU.
  • Stop-Process: Detiene el proceso filtrado.

Esta canalización le permite automatizar tareas con pasos claros y organizados. También puede agregar parámetros para que la solución sea más específica, como enviar un informe de los resultados:

Get-Process |
Where-Object {$_.CPU -gt 50} |
Export-Csv -Path “HighCPUProcesses.csv”

Esta canalización almacenará los datos del proceso intensivo de CPU en un archivo CSV.

Automatización con PowerShell

Un cmdlet muy útil en PowerShell es Get-WindowsOptionalFeature. Este cmdlet permite a los usuarios ver las características opcionales disponibles en Windows, incluido su estado (ya sea habilitado o deshabilitado). Con estos cmdlets, los administradores pueden administrar y auditar fácilmente las características existentes.

Para mostrar todas las funciones opcionales en Windows, puede ejecutar el siguiente comando:

Get-WindowsOptionalFeature -Online

Este comando generará una lista de objetos que representan cada característica opcional, completa con propiedades como FeatureName, State y una descripción de la característica.

Pasos para crear un script simple para la automatización

Estos son los pasos para crear un script simple que use Get-WindowsOptionalFeature para auditar y habilitar automáticamente ciertas características:

  1. Ejecute PowerShell con privilegios de administrador para asegurarse de que tiene los permisos necesarios.
  2. Use el cmdlet Get-WindowsOptionalFeature para obtener una lista de todas las características opcionales.
$features = Get-WindowsOptionalFeature -En línea
  • Por ejemplo, si desea comprobar si la función “TelnetClient” está habilitada o no, puede filtrar los resultados.
$telnetFeature = $features | Objeto-donde: { $_. FeatureName -eq 'TelnetClient' }
  • Si la característica no está activa, puede habilitarla mediante el cmdlet Enable-WindowsOptionalFeature.
if ($telnetFeature.State -eq 'Disabled') {
Enable-WindowsOptionalFeature -Online -FeatureName 'TelnetClient' -All
Write-Host “TelnetClient feature has been enabled.”
} else {
Write-Host “TelnetClient feature is now active.”
}
  • Guarde este script como un archivo .ps1, por ejemplo, EnableTelnet.ps1, y ejecútelo en PowerShell.

Artículos más recientes