Windows PowerShell es una parte integral del sistema operativo Windows. Es un shell de línea de comandos y un lenguaje de secuencias de comandos que se utiliza para automatizar tareas repetitivas que consumen mucho tiempo, crear herramientas de administración personalizadas y crear, probar e implementar soluciones para varios otros problemas.
La versión predeterminada de PowerShell que viene preempaquetada dentro del sistema operativo Windows es PowerShell 5.1, o simplemente Windows PowerShell. Pero con PowerShell 7 ya lanzado y estable, ¿no tiene más sentido que el sistema operativo Windows use la última versión de PowerShell? ¿Qué beneficios ofrece PowerShell 7 de todos modos? ¿Y vale la pena la actualización? ¡Hablemos de eso!
¿Qué es PowerShell 7?
PowerShell 7 es la última versión LTS de PowerShell. Esta versión de PowerShell se desarrolla a través del nuevo marco .NET Core, que permite varias actualizaciones importantes que los usuarios avanzados de Windows encontrarán útiles.
PowerShell 7 está registrado y licenciado bajo la Licencia MIT. Esto es ahora
software de código abierto, donde las personas pueden ver, modificar y distribuir libremente su propia copia del código fuente del software. Los desarrolladores también pueden contribuir a los lanzamientos oficiales de PowerShell uniéndose Página oficial de GitHub de PowerShell.¡Con el apoyo de la comunidad, esta versión de PowerShell ahora es multiplataforma! Lo que significa que ahora se puede instalar y usar en Windows, macOS y Linux. Aquí hay una lista de los sistemas operativos x64 compatibles:
- Windows 8.1, 10, 11
- Windows Server 2012, 2012 R2, 2016 y 2019
- mac OS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- Fedora 30+
- Debian 9
- Ubuntu LTS 16.04+
Alpine Linux 3.8+ PowerShell 7 también es compatible con varias distribuciones ARM32 y ARM64 de Debian, Ubuntu y ARM64 Alpine Linux. Para aquellos interesados, también hay paquetes no compatibles con Arch y Kali Linux.
¿Cuáles son las nuevas funciones incluidas en PowerShell 7?
Además de ser multiplataforma y de código abierto, PowerShell 7 tiene muchas otras características nuevas que mejoran aún más la productividad. Aquí están algunos de los más notables:
1. Compatibilidad con versiones anteriores mejorada
Con la diferencia en el marco, las versiones de Windows PowerShell y PowerShell que usan el marco .NET Core tendrán incompatibilidades. Para facilitar la transición de las personas, PowerShell 7 ahora integra el módulo de compatibilidad de Windows. Este módulo está diseñado para permitir módulos de Windows PowerShell y muchos Comandos CMD populares para trabajar en PowerShell 7.
2. Paralelización de canalizaciones con ForEach-Object
PowerShell 7 ahora tiene un parámetro paralelo. En Windows PowerShell, cada objeto canalizado que usa el cmdlet ForEach-Object se ejecutará de uno en uno. Pero con el nuevo parámetro Parallel, todos los objetos canalizados ahora se ejecutan simultáneamente. Esto mejora drásticamente el rendimiento, lo que puede ahorrarle tiempo.
3. Operadores Ternarios
Los condicionales de Windows PowerShell se realizan a través de declaraciones if-else. PowerShell 7 hace que esto sea aún más simple al introducir operadores ternarios, que son básicamente versiones simplificadas de las declaraciones if-else mediante el uso de "?" y “:” en la sintaxis. Esta función permite una experiencia de secuencias de comandos más rápida y limpia.
4. Operadores de la cadena de oleoductos
Los operadores de canalización son una característica importante de Windows PowerShell. Le permite crear expresiones complejas tomando la salida de un cmdlet y usándola en otro cmdlet. Sin embargo, esto está limitado ya que Windows PowerShell no puede procesar expresiones condicionales mediante operadores de canalización normales.
PowerShell 7 soluciona este problema mediante la introducción de operadores de cadena de canalización, que son "&&" y "||". Este nuevo operador de canalización permite que PowerShell ejecute comandos con expresiones condicionales.
El operador && se usa para ejecutar el comando de tubería de la derecha solo si el comando anterior al operador es exitoso. Mientras que el operador || solo ejecutará el comando de canalización de la derecha si falla el comando anterior al operador.
¿Por qué PowerShell 7 no es el predeterminado en Windows?
PowerShell 7 es un software multiplataforma de código abierto que proporciona características que pueden mejorar drásticamente el rendimiento y la velocidad de las secuencias de comandos. Entonces, ¿por qué Microsoft no lo convierte en el PowerShell predeterminado en Windows?
El PowerShell actual que viene preinstalado con los sistemas Windows más nuevos es PowerShell 5.1. Esta es la última versión de PowerShell que utiliza el marco .NET. Si bien es cierto que sus versiones posteriores brindan mejores características, Windows PowerShell aún tiene una ventaja que el PowerShell más nuevo no tiene: compatibilidad completa con versiones anteriores.
El primer PowerShell se lanzó el 14 de noviembre de 2006. Esto fue cuando Windows Vista y XP todavía eran los últimos sistemas operativos de Windows. De acuerdo a investigación de enlyft, solo en los Estados Unidos hay más de 46 000 empresas que todavía usan Windows XP. Estas empresas simplemente no pueden actualizar a la versión más reciente de PowerShell, ya que causaría muchos problemas de incompatibilidad con versiones anteriores, incluso con el módulo de compatibilidad de Windows integrado de PowerShell 7.
Para grandes empresas y diversas infraestructuras críticas (cajeros automáticos, proveedores de energía, ferrocarriles, hospitales, etc.), retrasar servicio durante semanas o meses solo para reconstruir, probar e implementar scripts que ya funcionaron con PowerShell 5.1 simplemente no es un opción. No importa todos los errores que puedan surgir durante las horas de funcionamiento reales.
Dado que PowerShell 5.1 es el último PowerShell integrado en. NET framework, se garantiza que funcionará con todas las versiones anteriores de PowerShell, incluso la que se lanzó en 2006.
¿Debería actualizar a PowerShell 7?
PowerShell 7 ofrece muchas actualizaciones útiles que hacen que la interfaz de línea de comandos y la creación de secuencias de comandos sean más fáciles, rápidas y convenientes con su soporte multiplataforma. Por el contrario, Windows PowerShell proporciona compatibilidad retroactiva completa con todos los PowerShell heredados anteriores a PowerShell 6. Entonces, ¿debería seguir usando Windows PowerShell o actualizar al nuevo PowerShell 7?
Lo bueno de PowerShell 7 es que fue diseñado para coexistir con Windows PowerShell 5.1. Además del módulo de compatibilidad de Windows integrado, PowerShell 7 también proporciona una ruta de instalación separada, un nombre ejecutable, PSModulePath y registros de eventos para garantizar que no interfiera con el Windows ya instalado Potencia Shell.
Por lo tanto, para la gran mayoría de las personas que desean probar las nuevas características de PowerShell 7, ciertamente pueden hacerlo manteniendo su Windows PowerShell predeterminado. Si tiene curiosidad por saber si el PowerShell más nuevo es para usted, definitivamente debería probar el PowerShell más nuevo.
Aunque PowerShell 7 proporciona una buena compatibilidad con versiones anteriores, siempre habrá algunas discrepancias debido a sus diferencias en el marco. Si trabaja en una empresa u organización que depende en gran medida de herramientas y programas personalizados creados a partir de Windows PowerShell, es posible que no sea una buena idea migrar el sistema de la empresa a PowerShell 7.
PowerShell 7 proporcionó muchas actualizaciones, pero también eliminó algunos módulos y cmdlets heredados. Si es una persona que ya está satisfecha con el PowerShell predeterminado, entonces realmente no hay razón para migrar, especialmente si no tiene tiempo para leer la documentación.
PowerShell 7 hace que las secuencias de comandos sean más rápidas
PowerShell 7 es una de las versiones estables más recientes de PowerShell con soporte a largo plazo (LTS). Proporciona una forma más rápida y fácil de usar PowerShell, incluso si usa otros sistemas operativos como macOS o Linux. Aunque puede tomar un poco de tiempo leer su documentación, finalmente ahorrará más tiempo una vez que domine las nuevas actualizaciones.