Los principales comandos de Windows PowerShell que uso con frecuencia y sus beneficios

Los principales comandos de Windows PowerShell que uso con frecuencia y sus beneficios

PowerShell es ampliamente reconocido como una herramienta esencial para los administradores de TI que se centran en scripting y automatización. Sin embargo, sus robustas capacidades van mucho más allá del sector de TI, lo que lo convierte en una herramienta invaluable para cualquiera que tenga que lidiar con archivos y directorios desorganizados. Personalmente, utilizo los comandos de PowerShell para filtrar código obsoleto, estructurar archivos de clientes y mitigar el desorden que se acumula tras meses de proyectos acelerados y con plazos límite.

Como potente shell de línea de comandos y plataforma de scripting, PowerShell simplifica diversas tareas. Aunque las versiones anteriores de Windows incluían una aplicación independiente de PowerShell, los usuarios ahora prefieren Windows Terminal para ejecutar entornos de shell, como PowerShell y el Símbolo del sistema, gracias a su versatilidad y moderna interfaz.

Todos los comandos se pueden ejecutar tanto en la aplicación dedicada de PowerShell como en la Terminal de Windows. Para empezar a usarlos, simplemente abra una pestaña de PowerShell en la Terminal de Windows.

1.Obtener ayuda

Comando Obtener ayuda en PowerShell

Cuando exploré PowerShell por primera vez a través de tutoriales de YouTube, un comando que los usuarios destacaban con frecuencia era Get-Help. Este comando sirve como recurso introductorio y permite acceder a información detallada sobre cualquier cmdlet de PowerShell, junto con su sintaxis, parámetros y ejemplos de uso.

Para recuperar información específica sobre un comando, escriba:

Get-Help Get-Process

Esto mostrará la sinopsis del comando, los detalles de sintaxis y los parámetros de entrada. Para más información, añada el parámetro -Examples :

Get-Help Get-Process -Examples

Además, puedes consultar la documentación oficial de Microsoft utilizando el interruptor -Online :

Get-Help Get-Process -Online

Este comando lo dirige al sitio web de Microsoft para obtener documentación completa del comando.

2.Obtener-Comando

Obtener comando en PowerShell

Mientras que Get-Help se centra en proporcionar información sobre cmdlets, Get-Command es esencial para localizar y listar todos los comandos disponibles. Si conoce la función que desea realizar, pero no recuerda el nombre del comando, simplemente utilice Get-Command para buscar comandos basándose en nombres parciales o patrones.

Por ejemplo, para encontrar todos los comandos que contienen la palabra proceso, ingrese:

Get-Command *process*

Este comando muestra todos los comandos que incluyen «proceso» en su nombre. Puede refinar la búsqueda según el tipo de comando, por ejemplo, si solo busca cmdlets:

Get-Command -Name Get* -CommandType Cmdlet

Además, para búsquedas específicas de módulos, como las relacionadas con redes:

Get-Command -Module NetTCPIP

El uso de Get-Command es significativamente más eficiente que buscar nombres de comandos en la web.

3.Conexión a la red de prueba

Comando Test-NetConnection de PowerShell

¿Cambia con frecuencia entre herramientas como ping, telnet y traceroute? El cmdlet Test-NetConnection consolida estas funciones en una sola. Este cmdlet es crucial para la resolución de problemas de red, ya que ayuda a diagnosticar si un problema se origina en la red, el servidor u otras fuentes.

Para determinar si un sitio web es accesible, ejecute:

Test-NetConnection makeuseof.com

Este comando proporciona resultados de ping e información básica de conectividad. Para probar un puerto específico, incorpore el número de puerto en el comando:

Test-NetConnection server.company.com -Port 443

Para un seguimiento detallado de la ruta de red, utilice el parámetro -TraceRoute :

Test-NetConnection 8.8.8.8 -TraceRoute

Este comando envía paquetes de prueba a 8.8.8.8 mientras rastrea los saltos entre su computadora y el destino, lo que le ayuda a identificar cualquier problema de conexión.

4.Obtener elemento secundario

Comando de PowerShell Get-ChildItem

El cmdlet Get-ChildItem permite ver archivos y carpetas en cualquier directorio especificado. Por ejemplo, para listar el contenido de la carpeta Documentos, simplemente escriba:

Get-ChildItem C:\Users\Username\Documents

Para identificar archivos PDF modificados en la última semana, utilice el siguiente comando:

Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_. LastWriteTime -gt (Get-Date).AddDays(-7)}

El parámetro -Recurse permite buscar en todas las subcarpetas. Si desea localizar todos los archivos de registro en la carpeta Proyectos y sus subdirectorios:

Get-ChildItem C:\Projects -Recurse -Filter *.log

Si el espacio en disco es bajo, puedes identificar archivos grandes que superen 1 GB:

Get-ChildItem C:\ -Recurse -File | Where-Object {$_. Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_. Length/1GB}}

El cmdlet Get-ChildItem es un poderoso aliado para automatizar tareas por lotes, organización de archivos y auditorías.

5.Donde-Objeto

Comando Where-Object en PowerShell

En el ejemplo anterior, el uso de Where-Object resalta su funcionalidad para filtrar datos según criterios de propiedad específicos, de forma similar a las sentencias condicionales en programación. La sintaxis entre llaves permite la representación de cada elemento evaluado.

Para visualizar todos los servicios en ejecución, ingrese lo siguiente:

Get-Service | Where-Object {$_. Status -eq "Running"}

Si está interesado en procesos que consumen más de 100 MB de memoria, pruebe:

Get-Process | Where-Object {$_. WorkingSet -gt 100MB}

También es posible combinar varias condiciones. Por ejemplo, para localizar documentos grandes de Word modificados en el último mes:

Get-ChildItem -Filter *.docx | Where-Object {$_. Length -gt 5MB -and $_. LastWriteTime -gt (Get-Date).AddMonths(-1)}

Organice condiciones complejas en varias líneas para mejorar la legibilidad del script:

Get-ChildItem | Where-Object { $_. Length -gt 1MB -and $_. Extension -eq ".log"}

6.Seleccionar objeto

Comando Seleccionar objeto en PowerShell

A menudo, la salida de los comandos es más extensa de lo necesario. El cmdlet Select-Object permite filtrar solo los datos pertinentes, que luego se pueden exportar a un archivo CSV mediante el cmdlet Export-Csv. Por ejemplo, si desea ver solo los nombres y estados de los servicios:

Get-Service | Select-Object Name, Status

Si su objetivo es identificar los cinco procesos principales que consumen más CPU, ejecute:

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU

Además, puede crear propiedades calculadas. Para mostrar el tamaño de los archivos en megabytes en lugar de bytes:

Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_. Length/1MB}}

Para extraer un único valor de propiedad, utilice el parámetro -ExpandProperty :

Get-Process notepad | Select-Object -ExpandProperty Id

Este comando solo produce el ID del proceso, lo que puede ser particularmente útil cuando se accede a comandos adicionales que requieren un único valor.

7.Obtener miembro

Comando Get-Member en PowerShell

PowerShell opera principalmente mediante objetos, y el cmdlet Get-Member revela sus propiedades y métodos asociados. Por ejemplo, al recuperar información sobre un proceso, puede consultar su tamaño, fecha de creación y otras métricas. Utilice el siguiente comando para ver los atributos de un objeto de proceso:

Get-Process | Get-Member

Esto mostrará propiedades como CPU, Id y WorkingSet, además de métodos como Kill() y Refresh().Si desea ver solo las propiedades, puede especificar:

Get-Process | Get-Member -MemberType Property

Para operaciones relacionadas con archivos:

Get-ChildItem C:\temp\test.txt | Get-Member

Esto muestra detalles como la longitud y la hora de última escritura, junto con métodos como Delete() y MoveTo().Puedes filtrar archivos por tamaño usando la longitud o identificar archivos modificados recientemente según la hora de última escritura.

8.Establecer portapapeles y Obtener portapapeles

Comando Set-Clipboard en PowerShell

Si alguna vez se encuentra con una salida abrumadora de PowerShell que requiere copiar, la selección manual puede ser engorrosa. Sin embargo, Set-Clipboard y Get-Clipboard agilizan considerablemente este proceso.

Para copiar los resultados del comando al portapapeles, ingrese:

Get-Process | Select-Object Name, CPU | Set-Clipboard

Esto le permite pegar fácilmente los resultados en Excel o cualquier editor de texto. Para recuperar el contenido del portapapeles en PowerShell, simplemente ejecute:

$text = Get-Clipboard

Esta función es especialmente útil al procesar listas. Por ejemplo, puede copiar un rango de nombres de computadoras desde Excel y luego ejecutar:

Get-Clipboard | ForEach-Object { Test-NetConnection $_ }

Este comando prueba la conectividad con cada nombre de equipo indicado. La integración fluida entre PowerShell y otras aplicaciones acelera considerablemente las tareas repetitivas.

9.Vista fuera de la cuadrícula

Comando Out-GridView en PowerShell

Hay momentos en los que es necesario ordenar y filtrar los resultados de forma interactiva. El cmdlet Out-GridView abre una ventana independiente con un formato de tabla ordenable y con capacidad de búsqueda.

Get-Process | Out-GridView

Esta acción abre una nueva ventana que muestra una lista de los procesos actuales en una interfaz de cuadrícula. Haga clic en los encabezados de columna para ordenarlos o filtre por palabra clave en el campo de búsqueda. Para seleccionar elementos de la cuadrícula y pasarlos a otro comando, utilice:

Get-Service | Out-GridView -PassThru | Restart-Service

Con el parámetro -PassThru, puede seleccionar varias filas y ejecutar acciones, como reiniciar solo los servicios elegidos.

Para el análisis de registros, también puede aplicar:

Get-EventLog -LogName Application -Newest 1000 | Out-GridView

Esto permite filtrar rápidamente eventos por entrada de palabras clave, ordenar por tiempo y revelar patrones dentro del conjunto de datos.

10.Obtener proceso

Comando de PowerShell del explorador Get-Process

El cmdlet Get-Process muestra todas las aplicaciones que se están ejecutando actualmente en su computadora y proporciona información sobre el uso de memoria, el tiempo de CPU y los identificadores de proceso.

Para enumerar todos los procesos actualmente activos, ejecute:

Get-Process

Si está buscando una aplicación específica, como Google Chrome, simplemente especifique:

Get-Process chrome

Si necesita finalizar un programa que no responde, puede encadenar comandos de la siguiente manera:

Get-Process notepad | Stop-Process

Para identificar procesos que consumen recursos de memoria sustanciales, implemente:

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10

Este comando ofrece una descripción general rápida de los programas que consumen mucha memoria cuando el rendimiento del sistema disminuye.

Fuente e imágenes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *