Cómo usar PowerShell para simplificar tu día a día en Windows
Si trabajas con un ordenador con Windows más de unos minutos a la semana, PowerShell es la herramienta que probablemente estás ignorando. Lanzado por Microsoft en noviembre de 2006, cuando aún se llamaba Monad, esta shell de línea de comandos lleva dos décadas automatizando tareas en sistemas Windows, y desde 2018 es además multiplataforma, con versiones para Linux y macOS.
Para agosto de 2026, su versión estable más reciente es la 7.6.4, lanzada el 20 de julio, construida sobre .NET 10 y con ello convirtiéndose en una de las herramientas más potentes de Windows, tanto para usuarios comunes como para desarrolladores.
¿Qué es PowerShell y por qué supera al símbolo del sistema?
PowerShell es un shell de tareas y un lenguaje de scripting construido sobre .NET. Su idea central, formulada en el Monad Manifesto que antecedió a la versión 1.0, es tratar la línea de comandos no como un flujo de texto, sino como un flujo de objetos. Mientras que el clásico símbolo del sistema (CMD) intercambia cadenas de texto que hay que parsear a mano, los comandos de PowerShell, llamados cmdlets, devuelven objetos .NET con propiedades y métodos accesibles.
Esta diferencia no es solo cosmética. Cuando ejecutas por ejemplo, Get-Process, para listar procesos en ejecución, no obtienes una tabla de texto inerte: obtienes una colección de objetos de proceso que puedes filtrar, ordenar y transformar en cadena con otros comandos sin escribir ni una sola expresión regular. El pipeline (|) pasa objetos, no texto, lo que convierte tareas complejas en una sola línea legible. Por ejemplo, esta línea lista los cinco procesos que más memoria consumen:
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 5 Name, WorkingSet64

A esto se suman los providers, los cuales permiten navegar por recursos del sistema como si fueran unidades de disco. HKLM:\, Env:\ o Cert:\ se exploran con los mismos Get-ChildItem o Set-Item con los que navegas por C:\. Con ellos, cosas como el registro de Windows, las variables de entorno y los certificados dejan de ser territorios prohibidos, todo puede ser manejado usando PowerShell.
¿Cómo instalar PowerShell 7 en Windows?
Windows 11 ya incluye Windows PowerShell 5.1 de serie, pero para disfrutar de las ventajas de la rama moderna hay que instalar PowerShell 7. El método recomendado por Microsoft para equipos de usuario es winget, el gestor de paquetes que viene incorporado en Windows 11 y Windows Server 2025, como parte del instalador de aplicaciones (App Installer).
Usarlo es muy sencillo, solo abre una ventana de Windows PowerShell (o CMD) y ejecuta:
winget install --id Microsoft.PowerShell --source winget
Desde la versión 7.6.0, winget instala el paquete MSIX por defecto. Pero si prefieres el instalador clásico MSI, por ejemplo en entornos empresariales o de servidor, usa:
winget install --id Microsoft.PowerShell --source winget --installer-type wix
Una vez instalado, se ejecuta con el comando pwsh. Conviene diferenciarlo de powershell.exe, que siempre invoca la versión 5.1 incluida con el sistema.

Otras versiones
Existen otras vías de instalación según el escenario. El paquete MSI descargable desde GitHub es la opción preferida para servidores Windows y despliegues empresariales.
El MSIX, instalable también desde Microsoft Store, es el más sencillo para usuarios ocasionales. El ZIP permite descargar versiones portátiles. Y los desarrolladores .NET pueden instalarla como herramienta global con dotnet tool install --global PowerShell. Las tres primeras opciones quedan resumidas en la tabla:
| Método | Cuándo usarlo |
|---|---|
| winget | Usuarios de Windows 11/10 — recomendado |
| MSI | Servidores y despliegues empresariales |
| MSIX / Microsoft Store | Usuarios ocasionales |
| ZIP | Portátil, múltiples versiones, ARM |
¿Por qué es cómoda para el usuario de escritorio?
Ahora, seguramente pensaras que PowerShell es una herramienta solo para desarrolladores, pero la realidad, es que los usuarios de escritorio también pueden beneficiarse de la misma. Después de todo, PowerShell ofrece dos ventajas inmediatas: tareas de administración en una sola línea y un asistente de instalación de aplicaciones integrado.
Tareas como navegar por el sistema, consultar el estado del equipo o diagnosticar problemas son tareas que en el explorador o los paneles de configuración requieren varios clics y ventanas. En PowerShell bastan unas palabras, que incluso puedes programar. Por ejemplo, para saber cuánta memoria libre hay, solo tecleas:
Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory, TotalVisibleMemorySize
O puedes hacer una función:
function Get-RAM { Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory, TotalVisibleMemorySize }
Y ahora con solo usar Get-RAM podrás saber la memoria RAM libre de tu sistema.
Si por ejemplo, quieres listar los servicios que están detenidos en tu sistema, algo que en el administrador de servicios implica filtrar manualmente:
Get-Service | Where-Object Status -eq 'Stopped' | Select-Object Name, DisplayName
O puedes escribirlo de esta manera:
function List-Stopped-Proc { Get-Service | Where-Object Status -eq 'Stopped' | Select-Object Name, DisplayName }
Y luego usarlo solo ejecutando List-Stopped-Proc.
Ciertamente, esto sirve para simplificar la administración del sistema, tal como pasa en Linux o MacOS, dos sistemas donde la shell de comando está fuertemente integrada y permite hacer este tipo de tareas de forma muy sencilla también.
¿Por qué es útil para el desarrollador?
Para los desarrolladores, PowerShell es el pegamento entre el sistema operativo y sus herramientas. Sirve para automatizar el aprovisionamiento de máquinas, gestionar variables de entorno, invocar herramientas de compilación, ejecutar tareas de integración y orquestar entornos de desarrollo completos, eso sin contar que es el motor detrás de herramientas como GitHub Actions cuando se ejecuta en runners Windows, y de los flujos de despliegue de Azure DevOps.
A esto hay que añadir que el ecosistema de módulos amplía el shell sin límites. Microsoft publica módulos oficiales para Azure (Az), gestión de Office 365, SQL Server, AWS (AWSPowerShell.NetCore) y docenas de servicios más, instalables desde la galería de módulos. En PowerShell 7.6, la gestión de módulos corre a cargo de PSResourceGet 1.2.0, que reemplazó a la veterana Install-Module y trae mejoras de rendimiento y de manejo de dependencias.
Una capacidad particularmente valiosa es que PowerShell puede invocar tanto herramientas nativas de Windows como, a través de WSL, herramientas Linux. Esto convierte al shell en un único punto de control para un flujo de trabajo mixto: editas en Windows, compilas con toolchains Linux y automatizas todo desde el mismo script.
Ejemplo práctico 1: instalar aplicaciones con winget
Winget, el gestor de paquetes de Windows, se maneja mejor desde PowerShell y convierte la instalación de software en una operación repetible y verificable. En lugar de descargar instaladores de cada web y aceptar wizard a wizard, escribes una línea.
Para buscar una aplicación:
winget search git
Para instalar un paquete concreto, indicando el identificador exacto:
winget install --id Git.Git --source winget
El sistema verifica el hash del instalador antes de ejecutarlo —una garantía de integridad que la descarga manual no ofrece— y gestiona las actualizaciones posteriores de forma centralizada:
winget upgrade --all
La potencia real aparece cuando se combina con el lenguaje de PowerShell. Para instalar el conjunto habitual de herramientas de un equipo nuevo en un solo comando:
$apps = @('Microsoft.VisualStudioCode', 'Git.Git', '7zip.7zip', 'VideoLAN.VLC')
foreach ($app in $apps) { winget install --id $app --accept-source-agreements --accept-package-agreements }
Se puede incluso generar una lista de instalación desde un equipo de referencia y reproducirla en otros, lo que convierte a PowerShell + winget en un sustituto ligero de imágenes de sistema personalizadas. Es la forma más práctica de usar Windows como usuario de escritorio: menos clics, menos instaladores basura y un inventario claro de lo instalado (winget list).
Si quieres una lista completa de aplicaciones que puedes instalar con este sistema, puedes revisar la web de Winstall, donde tienes aplicaciones que se pueden instalar de esta manera.

Ejemplo práctico 2: preparar un entorno de desarrollo con WSL2
WSL (Windows Subsystem for Linux) permite ejecutar un kernel de Linux real dentro de Windows, sin la sobrecarga de una máquina virtual tradicional. Con WSL2 —la arquitectura por defecto desde 2020— obtienes compatibilidad total con llamadas al sistema Linux, lo que significa que Node.js, Python, Docker y los toolchains de Linux funcionan tal cual. Y lo mejor: todo el proceso de instalación se controla desde PowerShell.
El comando para instalar WSL2 y una distribución Ubuntu por defecto es:
wsl --install
Requiere Windows 10 versión 2004 (build 19041) o posterior, o Windows 11. El comando habilita los componentes opcionales de WSL y de Plataforma de Máquina Virtual, descarga e instala el kernel de Linux, configura WSL2 como versión por defecto e instala Ubuntu. Es probable que el sistema pida reiniciar.
Si se prefiere otra distribución, primero se consultan las disponibles:
wsl --list --online
Y se instala la elegida:
wsl --install -d Debian
Tras el reinicio y la creación del usuario de Linux, se verifica el estado con:
wsl --list --verbose
Instalando y usando Linux en Windows con PowerShell
Ahora viene la parte que a los desarrolladores les cambia el día. Con el sistema Linux dentro de Windows, se puede actualizar e instalar herramientas directamente en Ubuntu desde PowerShell. Primero se entra en la distribución:
wsl -d Ubuntu
Y dentro de ella se actualizan los paquetes y se instalan las herramientas de desarrollo:
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl git
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt install -y nodejs
Pero la magia mayor es la interoperabilidad: los comandos Linux se pueden ejecutar desde PowerShell sin entrar en Ubuntu. Estas tres líneas, lanzadas desde pwsh, muestran cómo el shell unifica ambos mundos:
wsl node --version
wsl -e sh -c "git clone https://github.com/ejemplo/proyecto.git && cd proyecto && npm install"
wsl docker --version
Para trabajar de forma cómoda, Windows Terminal —incluido en Windows 11— muestra pestañas para PowerShell y para cada distribución WSL, y Visual Studio Code con la extensión WSL conecta el editor al sistema de archivos Linux remoto. El resultado es un entorno de desarrollo completo con la herramienta correcta para cada tarea: la línea de comandos de Linux cuando toca compilar y ejecutar, y PowerShell cuando toca administrar el sistema Windows que la sostiene.

