Usando o Visual Studio Code para edição e depuração remotas

Para aqueles que se familiarizaram com o ISE, talvez se lembrem que podiam executar psedit file.ps1 no console integrado para abrir arquivos locais ou remotos diretamente no ISE.

Esse recurso também está disponível na extensão do PowerShell para VSCode. Este guia mostra como fazê-lo.

Prerequisites

Este guia pressupõe que você tenha:

  • Um recurso remoto (p.ex.: uma VM, um contêiner) ao qual você tenha acesso
  • O PowerShell em execução nesse recurso e no computador host
  • VSCode e a extensão do PowerShell para VSCode

Esse recurso funciona no Windows PowerShell e no PowerShell.

Esse recurso também funciona ao se conectar a um computador remoto via WinRM, PowerShell Direct ou SSH. Se você quer usar o SSH, mas está usando o Windows, consulte a versão Win32 do SSH!

Importante

Os comandos Open-EditorFile e psedit funcionam somente no Console integrado do PowerShell criado pela extensão do PowerShell para VSCode.

Exemplos de uso

Esses exemplos mostram a edição e a depuração remotas de uma VM Ubuntu em execução no Azure por um MacBook Pro. O processo é idêntico no Windows.

Edição de arquivo local com o Open-EditorFile

Com a extensão do PowerShell para VSCode iniciada e o Console Integrado do PowerShell aberto, podemos digitar Open-EditorFile foo.ps1 ou psedit foo.ps1 para abrir o arquivo foo.ps1 local diretamente no editor.

O arquivo foo.ps1 no Open-EditorFile funciona localmente

Observação

O arquivo foo.ps1 já deve existir.

A partir daí, podemos:

  • Adicionar pontos de interrupção à medianiz

    Adicionar um ponto de interrupção à medianiz

  • Pressione F5 para depurar o script do PowerShell.

    Depurar o script local do PowerShell

Durante a depuração, você pode interagir com o console de depuração, ver as variáveis no escopo à esquerda e todas as outras ferramentas de depuração padrão.

Edição de arquivo remoto com o Open-EditorFile

Agora, vamos abordar a edição e a depuração de arquivo remoto. As etapas são praticamente as mesmas, com exceção de um pequeno detalhe: precisamos informar nossa sessão do PowerShell ao servidor remoto.

Há um cmdlet para fazer isso. Ele se chama Enter-PSSession.

Resumindo:

  • Enter-PSSession -ComputerName foo inicia uma sessão via WinRM
  • Enter-PSSession -ContainerId foo e Enter-PSSession -VmId foo iniciam uma sessão via PowerShell Direct
  • Enter-PSSession -HostName foo inicia uma sessão via SSH

Para saber mais, veja a documentação para o Enter-PSSession.

Ao usar remotamente uma VM do Ubuntu no Azure, use também SSH.

Primeiro, no Console Integrado, execute Enter-PSSession. Você estará conectado à sessão remota quando o [<hostname>] aparecer à esquerda de seu prompt.

Chame Enter-PSSession para conectar a uma sessão remota

Agora, é possível seguir as mesmas etapas como se você fosse editar um script local.

  1. Execute Open-EditorFile test.ps1 ou psedit test.ps1 para abrir o arquivo test.ps1 remoto

    Edite o script no sistema remoto

  2. Edite os pontos de interrupção do arquivo/conjunto

    Edite e defina os pontos de interrupção

  3. Comece a depurar (F5) o arquivo remoto

    Depurar o script remoto

Em caso de problemas, você pode abrir ocorrências no repositório GitHub.