
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

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

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

¿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

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

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

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

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

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

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

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.
Deja una respuesta