Cualquiera que haya utilizado Windows en los últimos años probablemente haya oído hablar de Windows PowerShell en algún momento. Esta herramienta de scripting y terminal basada en CLI existe desde hace casi 19 años y es una herramienta muy importante para administradores y entusiastas de TI. Los scripting ayudan a automatizar tareas y a hacer ciertas cosas más rápido. Además, para las tareas que normalmente haría con el símbolo del sistema, PowerShell puede tener un lenguaje más amigable.
Sin embargo, en los últimos años también hemos visto la llegada de PowerShell, que, aunque no lo creas, es diferente de Windows PowerShell. En esencia, hacen básicamente lo mismo, pero hay algunas diferencias importantes.
5 prácticas recomendadas de PowerShell para trabajar de forma aún más eficiente
Cómo hacer que PowerShell funcione mejor
¿Qué es Windows PowerShell?
Solo para Windows y en su mayor parte con soporte vital
Windows PowerShell es la versión de PowerShell que se incluye con Windows desde su primera aparición en 2006 y todavía se incluye enWindows 11.Windows PowerShell está actualizado hasta la versión 5.1, lanzada en 2016, y no ha recibido actualizaciones importantes desde entonces. Esta versión de PowerShell se basa en .NET Framework 4.5, que también se encuentra en su mayor parte en modo de mantenimiento, ya que ha sido reemplazado por .NET (brevemente conocido como .NET Core).
Debido a esto, Windows PowerShell está mayormente congelado en el tiempo, lo que significa que, en su mayor parte, todo lo diseñado para él siempre funcionará con él, sin preguntas.
¿En qué se diferencia PowerShell?
Multiplataforma y actualización constante
PowerShell, que debutó como PowerShell Core en 2018, es la versión más reciente y moderna de PowerShell y viene con un par de cambios importantes, en particular el hecho de que ahora es un producto multiplataforma. En lugar de estar disponible solo en Windows, PowerShell ahora también se ejecuta en macOS y Linux, lo que lleva el mismo lenguaje de scripting a otras plataformas, lo que facilita el desarrollo y la implementación de los mismos scripts para diferentes dispositivos.
PowerShell se basa en .NET y cada nueva versión de PowerShell se basa en la última versión de .NET. Esto puede significar nuevas funciones y otras mejoras, pero las nuevas versiones de PowerShell también pueden introducir cambios importantes que podrían afectar a determinados cmdlets o módulos. En el momento de redactar este artículo, a principios de 2025, la última versión de PowerShell es la 7.5, que se lanzó a principios de año y se basa en .NET 9.0.1.
11 módulos de PowerShell que deberías probar en tu PC con Windows 11
Lleve la funcionalidad de PowerShell al siguiente nivel con estos increíbles módulos
Sin embargo, a pesar de estar en múltiples plataformas, algunas diferencias entre PowerShell son inevitables, ya que muchos cmdlets y módulos tienen que ver con características específicas de Windows.
PowerShell puede (en su mayoría) reemplazar a Windows PowerShell
Puede haber algunos problemas
El PowerShell multiplataforma está pensado para reemplazar a Windows PowerShell para casi todos los usuarios, pero la naturaleza en constante evolución de esta nueva versión y la tecnología .NET subyacente significa que algunas cosas seguramente serán diferentes. Un punto importante que menciona Microsoft son los cambios en el método .NET que afectan a las últimas versiones. Es posible que algunos comandos deban escribirse en un formato diferente para devolver el resultado deseado que normalmente obtendría en Windows PowerShell. Desafortunadamente, eso significa que algunos scripts escritos para Windows PowerShell pueden no ser totalmente compatibles con PowerShell y viceversa.
Por ejemplo, supongamos que desea dividir una cadena de texto cuando aparece un carácter específico. En Windows PowerShell, si desea dividir una cadena como "XDA es genial. Vaya a XDA" donde aparece el punto, deberá utilizar este comando:
"XDA es genial.Vaya a XDA".Split('.')
Lo que devolvería el texto como
XDA es genial
Ir a XDA
Sin embargo, en PowerShell, para obtener el mismo resultado, necesitaría utilizar el comando de la siguiente manera:
"XDA es genial. Ve a XDA".Split([char[]]'.')
Otros cambios como este son algo que se debe tener en cuenta al crear scripts para PowerShell. Además, algunos módulos de Windows PowerShell ya no se incluyen con PowerShell por razones de compatibilidad, incluidosISE,Microsoft.PowerShell.LocalAccountsoPSScheduledJob, entre otros. Además, varios cmdlets para módulos que aún existen ya no son compatibles. La lista de estos es bastante extensa, por lo que es posible que desee consultaresta lista. Si bien la transición inicial a PowerShell eliminó la compatibilidad con muchos cmdlets, también se han agregado muchos más, lo que significa que la última versión de PowerShell tiene significativamente más cmdlets que Windows PowerShell.
Puedes utilizar ambos
Otra gran diferencia es que PowerShell tiene un nuevo nombre de archivo ejecutable (pwsh.exe), que permite a los usuarios tener Windows PowerShell y PowerShell ejecutándose al mismo tiempo en la misma máquina. Además, gracias a Windows Terminal y a la compatibilidad con pestañas, puede ejecutar estas instancias de PowerShell en paralelo en la misma ventana, cada una con su conjunto único de características. Esto hace que sea realmente fácil pasarse lentamente al nuevo PowerShell mientras se recurre a Windows PowerShell si es necesario.
Considere migrar a PowerShell
Si bien no hay una fecha límite ni indicios de que Windows PowerShell vaya a desaparecer en el futuro cercano, la versión multiplataforma de PowerShell es obviamente más moderna y ha ido añadiendo nuevos cmdlets de forma constante que la convierten en una plataforma más capaz. Si bien se requerirán algunas adaptaciones para algunos scripts, PowerShell le permitirá estar más preparado para el futuro y, además, tendrá más posibilidades de crear scripts que funcionen en varias plataformas. Pero en el futuro previsible, podrá seguir usando Windows PowerShell para cualquier cosa que lo necesite.