PowerShell

PowerShell 7.6 – Automatiza, administra y configura sistemas con la shell moderna de Microsoft

Descripción del programa PowerShell

PowerShell es un shell de línea de comandos y un lenguaje de scripting moderno, desarrollado por Microsoft, diseñado originalmente para la administración de sistemas y la automatización de tareas. Nacido como una herramienta exclusiva de Windows, desde 2016 se ha convertido en una plataforma de código abierto y multiplataforma, funcionando también en Linux y macOS, y construida sobre el entorno de ejecución .NET. Su función principal va mucho más allá del antiguo símbolo del sistema (CMD), ya que permite a los profesionales de TI y a los usuarios avanzados controlar y automatizar la configuración de sistemas operativos y servicios completos.

La principal ventaja de PowerShell reside en su naturaleza orientada a objetos. A diferencia de otras shells basadas en texto, donde los comandos devuelven cadenas de caracteres que luego necesitan ser interpretadas, los cmdlets de PowerShell devuelven objetos.NET estructurados. Esto significa que, usando la tubería, se pueden filtrar, ordenar y manipular los resultados de un comando de forma increíblemente precisa sin necesidad de complejos análisis sintácticos, agilizando tareas de administración o la generación de informes.

La historia de PowerShell se remonta a 2006, cuando Microsoft lanzó la primera versión para Windows. Después de varias iteraciones y una fuerte integración con el sistema, en 2016 decidieron hacer de PowerShell Core un producto de código abierto y multiplataforma. La versión más reciente, PowerShell 7.6, lanzada el 18 de marzo de 2026, representa la última versión de soporte a largo plazo (LTS), construida sobre .NET 10 y considerada la edición recomendada para entornos de producción.

¿Necesitas una herramienta que te permita automatizar tareas repetitivas y administrar cientos de servidores con la misma facilidad que tu propio ordenador?

Características clave de PowerShell

1. Automatización orientada a objetos

PowerShell se distingue por el uso de un modelo de procesamiento basado en objetos. Los cmdlets como Get-Process o Get-Service no devuelven texto, sino objetos con propiedades y métodos. Esto permite construir secuencias de automatización muy potentes encadenando comandos con la barra vertical, donde cada paso puede filtrar o actuar sobre una propiedad específica de los objetos recibidos, simplificando tareas complejas de administración.

2. Conjunto robusto de cmdlets y módulos

La herramienta incluye un conjunto de comandos integrados llamados cmdlets, y un sistema de módulos que los amplía. Los módulos actualizados en la versión 7.6, como PSReadLine para la edición en la consola y PSResourceGet para la gestión de paquetes, mejoran la experiencia del usuario. La capacidad de extender la funcionalidad mediante la instalación de módulos desde la Galería de PowerShell es una de sus grandes fortalezas.

3. Acceso profundo al sistema de archivos, registro y certificados

PowerShell permite navegar no solo por el sistema de archivos, sino también por el registro de Windows, el almacén de certificados y las variables de entorno como si fueran unidades de disco. Esto posibilita, por ejemplo, listar o modificar las claves del registro (HKCU: o HKLM:) con los mismos comandos que se usarían para archivos (Get-ChildItem, Set-ItemProperty), ofreciendo un control total y unificado sobre la configuración del sistema.

4. Potentes funciones de comunicación remota (Remoting)

La funcionalidad de remoting, basada en el protocolo WS-Management, permite ejecutar comandos en uno o cientos de ordenadores remotos de forma simultánea y segura. Los administradores del sistema pueden, con un solo script, verificar el estado de un servicio de Windows o la versión del kernel de Linux en toda una flota de servidores, lo que agiliza drásticamente las tareas de diagnóstico y mantenimiento masivo.

5. Canalizaciones robustas y tolerantes a errores

Una característica técnica diferenciadora es el manejo de errores en las canalizaciones. PowerShell distingue entre errores de terminación y no terminación, lo que permite al script decidir cómo reaccionar ante un fallo sin detener todo el flujo de trabajo. Esta robustez es fundamental para crear scripts empresariales fiables que pueden gestionar situaciones inesperadas con elegancia.

Explicación detallada de las funcionalidades

El motor de completado de pestañas en PowerShell 7.6 ha sido objeto de mejoras que eliminan frustraciones de larga data. La completado ahora es mucho más inteligente, capaz de inferir tipos en asignaciones de variables y ofrecer sugerencias contextuales más precisas. Un ejemplo notable es que ya no es necesario especificar el ámbito de una variable para que el autocompletado funcione, y se ha mejorado el completado de parámetros para cmdlets comunes como Get-Command, que ahora permite excluir módulos específicos con -ExcludeModule.

La gestión de la información del portapapeles ha ganado una utilidad inesperada con el nuevo parámetro -Delimiter del cmdlet Get-Clipboard. Anteriormente, al obtener el contenido del portapapeles, siempre se devolvía como un único bloque de texto. Ahora, es posible especificar un delimitador para dividirlo automáticamente en un array. Por ejemplo, si copias una lista separada por comas, puedes recuperarla directamente como una colección de elementos, lista para ser procesada en un bucle o una canalización sin necesidad de pasos intermedios.

Cabe destacar la introducción de los alias PSForEach y PSWhere para los métodos intrínsecos de PowerShell. Esto resuelve un conflicto de nomenclatura que ocurría cuando los objetos de la propia colección, como una lista, ya tenían métodos llamados ForEach o Where. Con estos nuevos alias, el programador evita ambigüedades y se asegura de que se está invocando el método de PowerShell y no el del objeto.NET subyacente, lo que mejora la claridad del código.

En este sentido, la mejora en la eficiencia del cmdlet Start-Process -Wait subyace en un refinamiento de la lógica de espera a la finalización del proceso hijo y en la adición de la capacidad de cancelar dicha espera de forma más efectiva. Esto es especialmente útil en scripts de construcción y despliegue, donde un paso depende de la finalización de un proceso externo, y la capacidad de cancelar de forma limpia una operación bloqueada mejora la solidez general del script.

Descarga e instalación de PowerShell

  • Página oficial: Microsoft PowerShell en GitHub
  • Versión actual: La última versión estable LTS es la 7.6.0, publicada el 18 de marzo de 2026. Existe una actualización menor a la 7.6.1.
  • Últimas versiones: 7.6.1, 7.6.0 y 7.5.5.
  • Tamaño: Aproximadamente 110 MB en su versión para Windows.
  • Sistemas operativos compatibles: Windows 11, Windows 10 y Windows Server para la versión 7.x. También está disponible para Linux (Ubuntu, RHEL, Debian) y macOS.
  • Requisitos mínimos: Se basa en el entorno de ejecución.NET correspondiente. La versión 7.6 se construye sobre.NET 10.
  • Licencia: Código abierto bajo la licencia MIT.
  • Idiomas: La documentación está disponible en varios idiomas. El producto en sí se usa principalmente con la línea de comandos en inglés técnico.
  • Soporte técnico: El soporte se ofrece a través del repositorio de GitHub. La versión 7.6, al ser LTS, cuenta con soporte hasta 2028.

Cómo usar PowerShell

Una vez descargado el instalador adecuado para tu sistema desde la página de lanzamientos de GitHub, lo ejecutas y sigues los pasos del asistente. Al abrir PowerShell 7.6 por primera vez, te encontrarás ante una interfaz de línea de comandos que se instala en paralelo al Windows PowerShell 5.1 que ya está integrado en el sistema, por lo que no hay conflictos. Puedes verificar la instalación correcta de inmediato ejecutando el comando $PSVersionTable.PSVersion.

El flujo de trabajo diario se basa en el uso de cmdlets. Para navegar por el sistema, usas comandos familiares como Set-Location para cambiar de directorio y Get-ChildItem para listar archivos. La verdadera potencia comienza al encadenar comandos con la barra vertical. Por ejemplo, puedes usar Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 5 para identificar los procesos que más memoria están consumiendo. La salida estructurada en forma de tabla permite interpretar los resultados de un vistazo.

Para tareas de administración avanzadas, puedes crear tus propios scripts y funciones. El sistema de módulos te permite empaquetarlos y compartirlos. Una función muy útil de la nueva versión es la mejora en la remasterización. Si necesitas ejecutar una tarea en varias máquinas, utilizas el cmdlet Invoke-Command, que te permite envolver un bloque de script entero y ejecutarlo de forma segura en uno o varios equipos remotos en paralelo. Para volver a una versión anterior de los módulos, puedes utilizar comandos de gestión de paquetes o realizar una desinstalación limpia desde «Aplicaciones y características».

Observaciones sobre el programa PowerShell

PowerShell 7.6 se distingue de otras shells como Bash o CMD por su modelo de objetos y su profunda integración con el ecosistema .NET. Mientras que las otras shells manipulan texto, PowerShell manipula objetos, lo que lo convierte en una herramienta de automatización y administración de sistemas de alto nivel. La tranquilidad que aporta una versión LTS, que será mantenida por Microsoft durante tres años y cuyo fin de vida está previsto para noviembre de 2028, es un argumento de peso para los departamentos de tecnología que planifican sus infraestructuras a largo plazo.

El principal beneficio práctico de esta versión es el refinamiento y la fiabilidad. Las numerosas correcciones en el completado de pestañas y el motor de scripting ofrecen una experiencia más fluida y con menos fricciones, lo que es directamente proporcional a la productividad de los desarrolladores y los profesionales de sistemas. La seguridad de contar con una herramienta actualizada y respaldada por la comunidad y Microsoft es un factor clave para su adopción en servidores de producción.

Microsoft, el desarrollador de PowerShell, realizó una apuesta estratégica al hacerlo de código abierto en 2016. Esto le permitió expandir su alcance a plataformas como Linux y macOS, convirtiéndolo en una herramienta de gestión universal para entornos heterogéneos. La naturaleza de su desarrollo, principalmente a través de contribuciones en GitHub, asegura una evolución constante y transparente.

Las actualizaciones de PowerShell se basan en su ciclo de vida de soporte. La versión 7.6 es la actual LTS, una elección recomendada para estabilidad a largo plazo. Las versiones como la 7.5 tienen un ciclo de soporte más corto. Para instalar la última versión o actualizar desde una anterior, se puede usar el gestor de paquetes winget de Windows con el comando winget install --id Microsoft.PowerShell --source winget, que es la forma más rápida y sencilla.

No se proporciona una versión portable oficial en el sentido tradicional de un archivo comprimido listo para usar. Sin embargo, el instalador MSI permite una instalación paralela que no interfiere con la versión integrada de Windows, logrando un efecto similar sin conflictos en las variables de entorno.

Más allá de las características, un aspecto avanzado de la instalación es el soporte para actualizaciones automáticas mediante Microsoft Update. Durante la instalación del MSI, se puede activar la opción ENABLE_MU=1, lo que le permite a PowerShell mantenerse actualizado en segundo plano como cualquier otro componente de Windows.

Limitaciones importantes

  • PowerShell 7.6 incluye cambios importantes que rompen la compatibilidad con scripts antiguos. Por ejemplo, el cmdlet Join-Path ahora espera un array de strings para -ChildPath, y la forma en que WildcardPattern.Escape maneja las comillas invertidas ha cambiado.
  • No es un reemplazo directo del motor de Windows PowerShell 5.1, que viene preinstalado. La versión 7 se instala por separado, y ciertas características heredadas del sistema, como algunos flujos de trabajo de automatización, solo funcionan en la versión 5.1.
  • La configuración avanzada de remoting requiere pasos técnicos específicos, como la habilitación de WinRM en los equipos objetivo, lo que puede representar una barrera inicial en entornos con políticas de seguridad muy restrictivas.

Alternativa recomendada

Windows Terminal no es una alternativa a PowerShell, sino el complemento perfecto. Se trata de una aplicación moderna y de código abierto de Microsoft que unifica múltiples shells, pestañas y paneles en una sola ventana, y que a menudo se instala junto con PowerShell 7.6.

Frente a la consola tradicional de PowerShell, la principal ventaja de Windows Terminal es su soporte completo para Unicode, la aceleración por GPU para el renderizado de texto, y las funciones de personalización. Puedes configurarla para que sea la interfaz predeterminada para PowerShell 7.6, mejorando visualmente la experiencia de escritura y ejecución de comandos. Puedes descargar la última versión de PowerShell desde el repositorio oficial de Microsoft para probar sus últimas mejoras.

Sección FAQ

¿PowerShell es gratis o de pago?

PowerShell es una plataforma completamente gratuita y de código abierto bajo la licencia MIT. No existe una versión de pago ni funciones premium ocultas. Tanto su uso personal como empresarial no tiene ningún coste.

¿Funciona en Linux, macOS, Windows 10 y Windows 11?

Sí, PowerShell es multiplataforma. La versión 7.6 se puede instalar de forma nativa en Windows 10, Windows 11, Windows Server, múltiples distribuciones de Linux (como Ubuntu y Red Hat) y macOS.

¿Qué diferencia a PowerShell de otras shells como CMD o Bash?

La principal diferencia es que PowerShell trabaja con objetos.NET en lugar de cadenas de texto. Mientras que en otras shells necesitas analizar complejos textos para extraer información, con PowerShell puedes acceder directamente a las propiedades de los resultados de un comando (ej. (Get-Process).ProcessName), lo que lo convierte en una herramienta mucho más potente para administración.

¿Cuál es la diferencia entre Windows PowerShell y la versión 7?

Windows PowerShell es la versión 5.1 que viene integrada en Windows, construida sobre.NET Framework y limitada a este sistema operativo. PowerShell 7 es la versión moderna, multiplataforma y de código abierto, construida sobre .NET (ahora en su versión 10), que recibe las últimas funcionalidades y mejoras de rendimiento.

¿Es seguro instalar PowerShell 7.6 en un servidor de producción?

Sí, es la versión recomendada para entornos de producción por Microsoft. PowerShell 7.6 es una versión de soporte a largo plazo (LTS), lo que significa que recibe correcciones de seguridad y estabilidad críticas durante años, con soporte oficial previsto hasta noviembre de 2028.