Utilizar o Visual Studio Code para a edição e depuração remotas

Para aqueles que estão familiarizados com o ISE, deve lembrar-se de que pode executar psedit file.ps1 a partir da consola integrada para abrir ficheiros ( locais ou remotos) diretamente no ISE.

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

Pré-requisitos

Este guia pressupõe que tem:

  • Um recurso remoto (por exemplo: uma VM, um contentor) ao qual tem acesso
  • PowerShell em execução no mesmo e no computador anfitrião
  • VSCode e a extensão do PowerShell para VSCode

Esta funcionalidade funciona no PowerShell e Windows PowerShell.

Esta funcionalidade também funciona ao ligar a um computador remoto através de WinRM, PowerShell Direct ou SSH. Se quiser utilizar o SSH, mas estiver a utilizar o Windows, consulte a versão Win32 do SSH!

Importante

Os Open-EditorFile comandos e psedit só funcionam na Consola Integrada do PowerShell criada pela extensão do PowerShell para VSCode.

Exemplos de utilização

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

Edição de ficheiro local com Open-EditorFile

Com a extensão do PowerShell para VSCode iniciada e a Consola Integrada do PowerShell aberta, podemos escrever Open-EditorFile foo.ps1 ou psedit foo.ps1 abrir o ficheiro foo.ps1 local diretamente no editor.

Open-EditorFile foo.ps1 funciona localmente

Nota

O ficheiro foo.ps1 já tem de existir.

A partir daí, podemos:

  • Adicionar pontos de interrupção à medianiz

    Adicionar um ponto de interrupção à medianiz

  • Prima F5 para depurar o script do PowerShell.

    depurar o script do PowerShell local

Durante a depuração, pode interagir com a consola de depuração, verificar as variáveis no âmbito à esquerda e todas as outras ferramentas de depuração padrão.

Edição remota de ficheiros com Open-EditorFile

Agora, vamos entrar na edição e depuração remota de ficheiros. Os passos são praticamente os mesmos, só precisamos de fazer uma coisa: introduzir a nossa sessão do PowerShell no servidor remoto.

Existe um cmdlet para o fazer. Esta chama-se Enter-PSSession.

Resumindo:

  • Enter-PSSession -ComputerName foo inicia uma sessão através do WinRM
  • Enter-PSSession -ContainerId foo e Enter-PSSession -VmId foo inicie uma sessão através do PowerShell Direct
  • Enter-PSSession -HostName foo inicia uma sessão através de SSH

Para obter mais informações, veja a documentação para Enter-PSSession.

Uma vez que estamos a fazer a comunicação remota para uma VM do Ubuntu no Azure, estamos a utilizar o SSH.

Primeiro, na Consola Integrada, execute Enter-PSSession. Está ligado à sessão remota quando [<hostname>] aparece à esquerda da sua linha de comandos.

Chamar Enter-PSSession para ligar a uma sessão remota

Agora, podemos efetuar os mesmos passos que estamos a editar um script local.

  1. Executar Open-EditorFile test.ps1 ou psedit test.ps1 abrir o ficheiro remoto test.ps1

    Editar o script no sistema remoto

  2. Editar os pontos de interrupção do ficheiro/definir

    Editar e definir pontos de interrupção

  3. Iniciar a depuração (F5) do ficheiro remoto

    Depurar o script remoto

Se tiver problemas, pode abrir problemas no repositório do GitHub.