Partilhar via


Suporte do Editor do PowerShell para Azure Data Studio

Importante

O Azure Data Studio está desativado a partir de 28 de fevereiro de 2026. Você deve migrar para Visual Studio Code. Para obter mais informações, consulte o que está acontecendo com o Azure Data Studio.

Essa extensão fornece suporte avançado ao editor do PowerShell no Azure Data Studio. Agora você pode escrever e depurar scripts do PowerShell usando a excelente interface semelhante ao IDE que o Azure Data Studio fornece.

Extensão do PowerShell

Features

  • Realce de sintaxe
  • Trechos de código
  • IntelliSense para cmdlets e mais
  • Análise baseada em regra fornecida pelo Analisador de Script do PowerShell
  • Ir para a Definição de cmdlets e variáveis
  • Localizar Referências de cmdlets e variáveis
  • Descoberta de símbolos em documentos e áreas de trabalho
  • Executar a seleção selecionada de código do PowerShell usando F8
  • Iniciar ajuda online para o símbolo embaixo do cursor usando Ctrl+F1
  • Suporte básico ao console interativo!

Instalar a extensão

Você pode instalar a versão oficial da extensão do PowerShell seguindo as etapas na documentação do Azure Data Studio. No painel Extensões, pesquise a extensão “PowerShell” e instale-a lá. Você será notificado automaticamente sobre as futuras atualizações de extensão!

Você também pode instalar um pacote VSIX na nossa página de lançamentos e instalá-lo usando a linha de comando.

azuredatastudio --install-extension PowerShell-<version>.vsix

Suporte da plataforma

  • Windows 7 até 10 com o Windows PowerShell v3 e superior e o PowerShell Core
  • Linux com PowerShell Core (todas as distribuições com suporte do PowerShell)
  • macOS com o PowerShell Core

Leia as Perguntas frequentes para obter respostas para perguntas comuns.

Instalar o PowerShell Core

Se você estiver executando o Azure Data Studio no macOS ou linux, talvez também precise instalar o PowerShell Core.

O PowerShell Core é um projeto de software livre no GitHub. Para saber mais sobre como instalar o PowerShell Core em plataformas macOS ou Linux, confira os seguintes artigos:

Scripts de exemplo

Há alguns scripts de exemplo na pasta examples da extensão que você pode usar para descobrir a funcionalidade de edição e de depuração do PowerShell. Confira o arquivo README.md incluído para saber mais sobre como usá-los.

Essa pasta pode ser encontrada no seguinte caminho:

$HOME/.azuredatastudio/extensions/microsoft.powershell-<version>/examples

Ou se você estiver usando a versão prévia da extensão,

$HOME/.azuredatastudio/extensions/microsoft.powershell-preview-<version>/examples

Para abrir/exibir os exemplos da extensão no Azure Data Studio, execute o seguinte código em seu prompt de comando do PowerShell:

azuredatastudio (Get-ChildItem $Home\.azuredatastudio\extensions\microsoft.powershell-*\examples)[-1]

Criar e abrir arquivos

Para criar um arquivo e abri-lo no editor, use o New-EditorFile de dentro do Terminal Integrado do PowerShell.

PS C:\temp> New-EditorFile ExportData.ps1

Esse comando funciona para qualquer tipo de arquivo, não apenas arquivos do PowerShell.

PS C:\temp> New-EditorFile ImportData.py

Para abrir um ou mais arquivos no Azure Data Studio, use o comando Open-EditorFile.

Open-EditorFile ExportData.ps1, ImportData.py

Sem foco no console ao executar

Para os usuários que estão acostumados a trabalhar com o SSMS, você está acostumado a poder executar uma consulta e poder executá-la novamente sem precisar voltar para o painel de consultas. Nesse caso, o comportamento padrão do editor de código pode parecer estranho para você. Para manter o foco no editor quando você executa com F8, altere a seguinte configuração:

"powershell.integratedConsole.focusConsoleOnExecute": false

O padrão é true para fins de acessibilidade.

Lembre-se de que essa configuração impede que o foco seja alterado para o console, mesmo quando você usa um comando que solicita explicitamente entrada, como Get-Credential.

Exemplos do SQL PowerShell

Para usar os exemplos a seguir, você precisa instalar o módulo SqlServer da Galeria do PowerShell.

Install-Module -Name SqlServer

Observação

Com a versão 21.1.18102 e posterior, o módulo SqlServer dá suporte ao PowerShell Core 6.2 e superior, além do Windows PowerShell.

Neste exemplo, usamos o cmdlet Get-SqlInstance para obter os objetos SMO do servidor para ServerA e ServerB. A saída padrão para esse comando inclui o nome da instância, a versão, o Service Pack e o Nível de Atualização das instâncias.

Get-SqlInstance -ServerInstance ServerA, ServerB

Aqui está um exemplo da aparência dessa saída:

Instance Name             Version    ProductLevel UpdateLevel  HostPlatform HostDistribution
-------------             -------    ------------ -----------  ------------ ----------------
ServerA                   13.0.5233  SP2          CU4          Windows      Windows Server 2016 Datacenter
ServerB                   14.0.3045  RTM          CU12         Linux        Ubuntu

O SqlServer módulo contém um provedor chamado SQLRegistration que permite acessar programaticamente os seguintes tipos de conexões salvas do SQL Server:

  • Servidor do Mecanismo de Banco de Dados (Servidores Registrados)
  • CMS (Sistema de Gerenciamento Central)
  • Analysis Services
  • Serviços de integração
  • Serviços de Relatórios

No exemplo a seguir, fazemos um dir (apelido para Get-ChildItem) para obter a lista de todas as instâncias do SQL Server listadas no seu arquivo de Servidores Registrados.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse

Aqui está um exemplo de como essa saída poderia ser:

Mode Name
---- ----
-    ServerA
-    ServerB
-    localhost\SQL2017
-    localhost\SQL2016Happy
-    localhost\SQL2017

Para muitas operações que envolvem um banco de dados ou objetos dentro de um banco de dados, o cmdlet Get-SqlDatabase pode ser usado. Se você fornecer valores para os parâmetros -ServerInstance e -Database, somente esse objeto de banco de dados será recuperado. No entanto, se você especificar apenas o -ServerInstance parâmetro, uma lista completa de todos os bancos de dados nessa instância será retornada.

Aqui está um exemplo da aparência dessa saída:

Name                 Status           Size     Space  Recovery Compat. Owner
                                            Available  Model     Level
----                 ------           ---- ---------- -------- ------- -----
AdventureWorks2017   Normal      336.00 MB   57.01 MB Simple       140 sa
master               Normal        6.00 MB  368.00 KB Simple       140 sa
model                Normal       16.00 MB    5.53 MB Full         140 sa
msdb                 Normal       48.44 MB    1.70 MB Simple       140 sa
PBIRS                Normal      144.00 MB   55.95 MB Full         140 sa
PBIRSTempDB          Normal       16.00 MB    4.20 MB Simple       140 sa
SSISDB               Normal      325.06 MB   26.21 MB Full         140 sa
tempdb               Normal       72.00 MB   61.25 MB Simple       140 sa
WideWorldImporters   Normal         3.2 GB     2.6 GB Simple       130 sa

Este próximo exemplo usa o cmdlet Get-SqlDatabase para recuperar uma lista de todos os bancos de dados na instância ServerB e apresenta uma grade/tabela (que usa o cmdlet Out-GridView) para selecionar de quais bancos de dados o backup deve ser feito. Depois que o usuário seleciona o botão "OK", somente os bancos de dados realçados são armazenados em backup.

Get-SqlDatabase -ServerInstance ServerB |
Out-GridView -PassThru |
Backup-SqlDatabase -CompressionOption On

Este exemplo, novamente, obtém uma lista de todas as instâncias do SQL Server listadas no arquivo Servidores Registrados e, em seguida, chama o Get-SqlAgentJobHistory, que relata todos os trabalhos do SQL Agent com falha desde meia-noite, para cada instância do SQL Server listada.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE {$_.Mode -ne 'd' } |
FOREACH {
    Get-SqlAgentJobHistory -ServerInstance  $_.Name -Since Midnight -OutcomesType Failed
}

Neste exemplo, fazemos um dir (pseudônimo de Get-ChildItem) para obter a lista de todas as instâncias do SQL Server listadas no arquivo de Servidores Registrados e, em seguida, usamos o cmdlet Get-SqlDatabase para obter uma lista de Bancos de Dados para cada uma dessas instâncias.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE { $_.Mode -ne 'd' } |
FOREACH {
    Get-SqlDatabase -ServerInstance $_.Name
}

Aqui está um exemplo da aparência dessa saída:

Name                 Status           Size  Space     Recovery Compat. Owner
                                            Available Model    Level
----                 ------           ---- ---------- -------- ------- -----
AdventureWorks2017   Normal      336.00 MB   57.01 MB Simple       140 sa
master               Normal        6.00 MB  368.00 KB Simple       140 sa
model                Normal       16.00 MB    5.53 MB Full         140 sa
msdb                 Normal       48.44 MB    1.70 MB Simple       140 sa
PBIRS                Normal      144.00 MB   55.95 MB Full         140 sa
PBIRSTempDB          Normal       16.00 MB    4.20 MB Simple       140 sa
SSISDB               Normal      325.06 MB   26.21 MB Full         140 sa
tempdb               Normal       72.00 MB   61.25 MB Simple       140 sa
WideWorldImporters   Normal         3.2 GB     2.6 GB Simple       130 sa

Relatar problemas

Se você tiver problemas com a Extensão do PowerShell, confira os documentos de solução de problemas para saber mais sobre como diagnosticar e relatar problemas.

Observação sobre segurança

Para quaisquer problemas de segurança, confira aqui.

Contribuindo para o Código

Confira a documentação de desenvolvimento para obter mais detalhes sobre como contribuir com essa extensão!

Mantenedores

Licença

Essa extensão está licenciada nos termos da Licença do MIT. Para obter detalhes sobre os binários de terceiros que incluímos com as versões deste projeto, confira o arquivo avisos de terceiros.

Código de conduta

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o código de conduta ou entre em contato com opencode@microsoft.com para enviar outras perguntas ou comentários.