Cómo instalar y ejecutar PowerShell en Linux y macOS

Power ha lanzado una versión multiplataforma de código abierto de PowerShell, llamada PowerShell Core 6.0, que no solo se ejecuta en Windows, sino que también se ejecuta en macOS y Linux. En el futuro, esta versión va a ser desarrollada activamente con el PowerShell original que hemos estado utilizando durante los últimos 10 años y que solo obtendrá actualizaciones de seguridad a partir de ahora.

Lanzado a disponibilidad general el 10 de enero, los paquetes para PowerShell Core están disponibles para Windows 7+, Ubuntu, Redhat, Centos, macOS, Fedora, OpenSuse y Debian. Esto permite a los administradores del sistema utilizar un lenguaje de scripting administrativo común en todos los servidores que administran.

Las instrucciones para instalar PowerShell Core han sido creadas por Microsoft para las versiones de macOS, Linux y Windows. Instalar PowerShell Core en Windows es tan simple como descargar el instalador y ejecutarlo. Esto instalará PowerShell Core junto con el PowerShell ya instalado en Windows. De esta forma, puede probar y migrar scripts de PowerShell existentes a PowerShell Core.

Para instalar PowerShell en Linux y macOS , Microsoft ha lanzado paquetes para casi todas las distribuciones de Linux. Por ejemplo, para instalar PowerShell Core en Ubuntu 16.04, puede usar los siguientes comandos:

Una vez que PowerShell Core está instalado, puede iniciarlo desde una consola utilizando el comando pwsh  .

PowerShell Core en Ubuntu 16.04

Desafortunadamente, para hacer que PowerShell Core funcione en diferentes sistemas operativos, Microsoft tuvo que eliminar soporte para varias tecnologías.

Como parte del cambio a .NET Core y otros sistemas operativos,
nos vimos obligados a dejar atrás algunas tecnologías que Windows PowerShell estaba usando.

En otros casos, aprovechamos la oportunidad de PowerShell para cambiar su diseño y dejar de admitir las tecnologías menos utilizadas. Algunas de estas tecnologías pueden eventualmente regresar a PowerShell Core, pero muchas no lo harán.

En un alto nivel, estos incluyen:

  • Flujos de trabajo de PowerShell
  • Complementos de PowerShell
  • Cmdlets WMIv1 ( Get-WmiObject,  Invoke-WmiMethod, etc.)
    • Recomendamos el uso de los cmdlets CIM / WMIv2  (Get-CimInstance,  Invoke-CimMethod, etc.)
  • Ejecutar recursos de configuración de estado deseado (DSC) utilizando PowerShell Core

También hemos creado una serie más larga de pequeños cambios en el lenguaje, motor y cmdlets de PowerShell que técnicamente califican como cambios de última hora.

Para obtener más información sobre por qué realizamos estos cambios / eliminaciones, consulte nuestro documento sobre cómo  romper el cambio.