20 comandos de PowerShell que todo administrador de sistemas debería conocer

PowerShell sigue siendo una de las herramientas más útiles para administrar Windows sin depender continuamente de interfaces gráficas. Desde consultar procesos y servicios hasta analizar eventos, probar conexiones de red o ejecutar acciones en varios servidores, dominar un pequeño conjunto de cmdlets permite resolver buena parte del trabajo cotidiano desde una terminal. Además, en 2026 Microsoft mantiene PowerShell 7.6 como versión LTS, con soporte previsto hasta noviembre de 2028.

Las claves de PowerShell para administradores en 30 segundos

  • PowerShell trabaja principalmente con objetos, no simplemente con texto, lo que permite encadenar comandos y filtrar información con precisión.
  • Los cmdlets siguen normalmente la estructura Verbo-Sustantivo, como Get-Service o Restart-Service.
  • PowerShell sirve para administrar procesos, servicios, archivos, eventos, red y equipos remotos.
  • Get-WinEvent debe sustituir a Get-EventLog en administraciones modernas.
  • Conocer unos 20 comandos cubre una parte considerable de las tareas habituales de diagnóstico y operación.

Para quien llega desde Linux, algunos conceptos resultarán familiares: Get-ChildItem desempeña un papel parecido a ls, Set-Location a cd y Get-Content puede utilizarse de forma similar a cat. La diferencia importante aparece cuando se empieza a encadenar información: PowerShell devuelve objetos con propiedades y métodos que pueden filtrarse, ordenarse o enviarse a otros comandos.

Los comandos básicos que conviene dominar

1. Get-Help: consultar cómo funciona cualquier cmdlet

No es necesario memorizar todos los parámetros de PowerShell. Get-Help permite consultar la documentación desde la propia consola.

Get-Help Get-Process
Get-Help Get-Process -Examples

Para actualizar la ayuda instalada:

Update-Help

2. Get-Command: descubrir comandos disponibles

Resulta especialmente práctico cuando se conoce la tarea que se quiere realizar, pero no el nombre exacto del cmdlet.

Get-Command *service*
Get-Command -Verb Restart

3. Get-Process: comprobar los procesos activos

Get-Process
Get-Process -Name powershell

También puede combinarse con otros cmdlets:

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10Lenguaje del código: JavaScript (javascript)

Así se obtienen los diez procesos que más CPU han acumulado.

4. Stop-Process: finalizar un proceso

Stop-Process -Name notepad

Si el proceso no responde:

Stop-Process -Name notepad -Force

El parámetro -Force debe utilizarse con cuidado, especialmente en servidores.

5. Get-Service: revisar servicios

Get-Service
Get-Service -Name Spooler

Un administrador puede localizar únicamente los servicios detenidos:

Get-Service | Where-Object Status -eq "Stopped"Lenguaje del código: JavaScript (javascript)

6. Start-Service, Stop-Service y Restart-Service

Aunque técnicamente son tres cmdlets diferentes, forman el conjunto básico para operar con servicios:

Start-Service -Name Spooler
Stop-Service -Name Spooler
Restart-Service -Name Spooler

Antes de detener servicios críticos conviene comprobar sus dependencias y el impacto sobre las aplicaciones.

7. Get-ChildItem: recorrer archivos y directorios

Get-ChildItem C:\Logs

Para recorrer subdirectorios:

Get-ChildItem C:\Logs -Recurse

También admite filtros:

Get-ChildItem C:\Logs -Filter *.logLenguaje del código: CSS (css)

8. Set-Location: cambiar de directorio

Set-Location C:\WindowsLenguaje del código: JavaScript (javascript)

PowerShell mantiene además el conocido alias:

cd C:\Windows

9. Copy-Item: copiar archivos y directorios

Copy-Item C:\Logs\app.log D:\Backup\Lenguaje del código: CSS (css)

Para copiar un directorio completo:

Copy-Item C:\Projects D:\Backup\ -Recurse

10. Move-Item: mover archivos

Move-Item C:\Reports\Report.txt D:\Archive\Lenguaje del código: CSS (css)

Puede utilizarse también para renombrarlos:

Move-Item old.log new.logLenguaje del código: CSS (css)

11. Remove-Item: eliminar archivos y directorios

Remove-Item C:\Temp\old.logLenguaje del código: CSS (css)

Para eliminar un árbol completo:

Remove-Item C:\Temp\TestFolder -Recurse

Aquí merece la pena extremar la precaución: Remove-Item no debe entenderse como el equivalente a enviar un archivo a la Papelera de reciclaje.

12. Get-Content: leer archivos y seguir logs

Get-Content C:\Logs\application.logLenguaje del código: CSS (css)

Una de sus funciones más prácticas para administradores es seguir un archivo mientras se actualiza:

Get-Content C:\Logs\application.log -WaitLenguaje del código: CSS (css)

Es un uso parecido a:

tail -f application.logLenguaje del código: CSS (css)

en Linux.

13. Set-Content y Add-Content: escribir en archivos

Set-Content C:\Temp\status.txt "Servidor operativo"Lenguaje del código: JavaScript (javascript)

Set-Content reemplaza el contenido existente. Si se quiere añadir información:

Add-Content C:\Temp\status.txt "Backup completado"Lenguaje del código: JavaScript (javascript)

La diferencia evita más de un disgusto al trabajar con logs o archivos de configuración.

Diagnóstico de Windows y redes

14. Test-Connection: comprobar conectividad

Test-Connection server01

Para limitar las comprobaciones:

Test-Connection server01 -Count 2

Aunque recuerda a ping, PowerShell devuelve objetos que después pueden procesarse.

15. Test-NetConnection: algo más útil que un simple ping

Para un administrador suele resultar incluso más interesante comprobar directamente si responde un determinado puerto:

Test-NetConnection server01 -Port 443

Puede ayudar a distinguir rápidamente entre un servidor inaccesible y un servicio concreto que no acepta conexiones.

16. Get-ComputerInfo: conocer el equipo

Get-ComputerInfo

La cantidad de información puede ser excesiva, por lo que normalmente interesa seleccionar propiedades:

Get-ComputerInfo |
Select-Object WindowsProductName, WindowsVersion, OsArchitectureLenguaje del código: JavaScript (javascript)

17. Get-CimInstance: consultar información del sistema

Es uno de los cmdlets que merece incorporar cuanto antes a la caja de herramientas de administración.

Por ejemplo, para obtener información del sistema operativo:

Get-CimInstance Win32_OperatingSystem

O del hardware:

Get-CimInstance Win32_ComputerSystem |
Select-Object Manufacturer, Model, TotalPhysicalMemoryLenguaje del código: JavaScript (javascript)

CIM (Common Information Model) permite acceder de manera estructurada a una enorme cantidad de información de administración de Windows.

18. Get-WinEvent: investigar el registro de eventos

En un Windows moderno es preferible utilizar Get-WinEvent:

Get-WinEvent -LogName System -MaxEvents 20

Para buscar errores recientes:

Get-WinEvent -FilterHashtable @{
    LogName='System'
    Level=2
    StartTime=(Get-Date).AddHours(-24)
}Lenguaje del código: JavaScript (javascript)

Microsoft indica expresamente que Get-WinEvent está diseñado para sustituir a Get-EventLog, que se conserva principalmente por compatibilidad y utiliza una API Win32 obsoleta.

Por eso una guía actualizada en 2026 debería evitar presentar ambos como alternativas equivalentes.

PowerShell muestra todo su potencial al administrar servidores remotos

19. Invoke-Command: ejecutar órdenes en otros equipos

Aquí PowerShell deja de ser simplemente una consola cómoda y se convierte en una herramienta especialmente potente para administración.

Invoke-Command -ComputerName Server01 -ScriptBlock {
    Get-Service
}

La misma operación puede ejecutarse contra varios servidores:

Invoke-Command -ComputerName Server01,Server02,Server03 -ScriptBlock {
    Get-ComputerInfo |
    Select-Object WindowsProductName, OsUptime
}Lenguaje del código: JavaScript (javascript)

Microsoft documenta precisamente Invoke-Command como mecanismo para ejecutar comandos sobre uno o varios sistemas remotos. PowerShell moderno también permite establecer conexiones remotas mediante SSH.

20. Get-History e Invoke-History: recuperar comandos anteriores

Get-History

Después puede repetirse una entrada concreta:

Invoke-History 3

Es sencillo, pero práctico cuando se están realizando tareas de diagnóstico de forma interactiva.

El verdadero salto está en combinar comandos

Memorizar veinte cmdlets sirve para empezar. Aprender a conectarlos es lo que realmente cambia la forma de administrar Windows.

Por ejemplo:

Get-Service |
Where-Object Status -eq "Running" |
Sort-Object DisplayNameLenguaje del código: JavaScript (javascript)

Aquí no se está procesando la salida como una colección de líneas de texto. Get-Service devuelve objetos y Where-Object evalúa la propiedad Status.

Lo mismo permite encontrar los procesos que más memoria consumen:

Get-Process |
Sort-Object WorkingSet64 -Descending |
Select-Object -First 10 Name, Id, WorkingSet64Lenguaje del código: JavaScript (javascript)

O exportar información de servidores:

Get-Service |
Select-Object Name, Status, StartType |
Export-Csv C:\Reports\services.csv -NoTypeInformationLenguaje del código: JavaScript (javascript)

Esta arquitectura basada en objetos es una de las diferencias importantes respecto al Command Prompt tradicional.

PowerShell tampoco está limitado actualmente a Windows. Las versiones modernas funcionan sobre Windows, Linux y macOS, aunque muchos cmdlets de administración, entre ellos Get-WinEvent, dependen específicamente de Windows.

En agosto de 2026 la rama recomendada para despliegues que busquen soporte prolongado es PowerShell 7.6 LTS, publicada el 18 de marzo de 2026 y con soporte previsto hasta el 14 de noviembre de 2028. PowerShell 7.5 continúa soportado hasta noviembre de 2026.

Para un administrador de sistemas, por tanto, PowerShell merece aprenderse más allá de comandos aislados. La ganancia aparece cuando una comprobación manual realizada una vez se convierte después en una orden reutilizable y, finalmente, en una tarea automatizada sobre decenas o cientos de máquinas.

Preguntas frecuentes

¿Qué versión de PowerShell conviene utilizar en 2026?

PowerShell 7.6 es actualmente una versión LTS con soporte hasta noviembre de 2028. Windows PowerShell 5.1 continúa presente en numerosos sistemas Windows por motivos de compatibilidad.

¿Get-EventLog o Get-WinEvent?

Para nuevas tareas debe preferirse Get-WinEvent. Microsoft indica que Get-EventLog utiliza una API obsoleta y solo trabaja con los registros clásicos de eventos de Windows.

¿PowerShell sirve para administrar varios servidores?

Sí. Invoke-Command, Enter-PSSession y New-PSSession permiten trabajar con sistemas remotos. Una sola llamada a Invoke-Command puede ejecutar una operación sobre varios equipos.

¿Hay que aprender scripting para utilizar PowerShell?

No. Los cmdlets individuales ya resultan útiles para administración y diagnóstico. Aprender el pipeline, variables, bucles y scripts amplía posteriormente las posibilidades de automatización.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×