Uso de Visual Studio Code para la edición y la depuración de forma remota

Aquellos usuarios que están familiarizados con el ISE pueden recordar que era posible ejecutar psedit file.ps1 desde la consola integrada para abrir archivos, locales o remotos, directamente en el ISE.

Esta característica también está disponible en la extensión de PowerShell para VSCode. Esta guía muestra cómo hacerlo.

Prerequisites

En esta guía se da por supuesto que tiene lo siguiente:

  • un recurso remoto (p. ej.: una máquina virtual, un contenedor) al que tiene acceso.
  • PowerShell ejecutándose en él y en el equipo host
  • VSCode y la extensión de PowerShell para VSCode

Esta característica funciona en PowerShell y Windows PowerShell.

Esta característica también funciona al conectarse a un equipo remoto a través de WinRM, PowerShell Direct o SSH. Si desea usar SSH, pero está usando Windows, consulte la versión Win32 de SSH.

Importante

Los comandos Open-EditorFile y psedit solo funcionan en la consola integrada de PowerShell que la extensión de PowerShell crea para VSCode.

Ejemplos de uso

Estos ejemplos muestran la depuración y la edición remotas desde un equipo MacBook Pro a una máquina virtual Ubuntu que se ejecuta en Azure. El proceso es idéntico en Windows.

Edición de archivo local con Open-EditorFile

Con la extensión de PowerShell para VSCode iniciada y la consola integrada de PowerShell abierta, podemos escribir Open-EditorFile foo.ps1 o psedit foo.ps1 para abrir el archivo foo.ps1 local directamente en el editor.

Open-EditorFile foo.ps1 funciona localmente

Nota

El archivo foo.ps1 ya debería existir.

Desde ahí, podemos hacer lo siguiente:

  • Agregar puntos de interrupción en el medianil.

    Adición de un punto de interrupción en el medianil

  • Presionar F5 para depurar el script de PowerShell.

    Depuración del script de PowerShell local

Durante la depuración, puede interactuar con la consola de depuración y consultar las variables en el ámbito de la izquierda y todas las demás herramientas de depuración estándar.

Edición de archivo remoto con Open-EditorFile

Ahora veamos la edición y la depuración de un archivo remoto. Los pasos son prácticamente los mismos, solo hay una cosa que debemos hacer primero: escribir nuestra sesión de PowerShell en el servidor remoto.

Hay un cmdlet para hacerlo. Se llama Enter-PSSession.

La explicación desglosada del cmdlet es:

  • Enter-PSSession -ComputerName foo inicia una sesión a través de WinRM
  • Enter-PSSession -ContainerId foo y Enter-PSSession -VmId foo inician una sesión a través de PowerShell Direct
  • Enter-PSSession -HostName foo inicia una sesión a través de SSH

Para más información, consulte la documentación para Enter-PSSession.

Como vamos desde macOS a una máquina virtual Ubuntu en Azure, usamos SSH para la comunicación remota.

En primer lugar, ejecute Enter-PSSession en la consola integrada. Se conecta a la sesión remota cuando [<hostname>] aparece a la izquierda del símbolo del sistema.

Llamada a Enter-PSSession para conectarse a una sesión remota

Ahora, podemos completar los mismos pasos que llevaríamos a cabo si estuviéramos editando un script local.

  1. Ejecute Open-EditorFile test.ps1 o psedit test.ps1 para abrir el archivo test.ps1 remoto.

Edición del script en el sistema remoto

  1. Editar el archivo/establecer los puntos de interrupción

    Edición y establecimiento de puntos de interrupción

  2. Iniciar la depuración (F5) del archivo remoto

    Depuración del script remoto

Si tiene algún problema, puede abrir los problemas que hay en el repositorio de GitHub.