Suporte do Editor do PowerShell para 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.

PowerShell extension

Recursos

  • Realce de sintaxe
  • Snippets 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ímbolo de documento e de workspace
  • 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 atualizações futuras de extensão!

Você também pode instalar um pacote VSIX na página nossa página Versões instalá-lo usando a linha de comando:

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

Suporte a 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 no Linux, talvez precise instalar também 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 impedirá que o foco mude para o console, mesmo quando você usar um comando que chame explicitamente chamadas para entrada, como Get-Credential.

Exemplos do SQL PowerShell

Para usar estes exemplos (abaixo), é necessário instalar o módulo SqlServer na 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 desse comando incluirá o nome da instância, a versão, o Service Pack e o nível de atualização da CU das instâncias.

Get-SqlInstance -ServerInstance ServerA, ServerB

Veja um exemplo de qual será a aparência da 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 módulo SqlServer contém um provedor chamado SQLRegistration que permite que você acesse de maneira programática os seguintes tipos de conexões salvas do SQL Server:

  • Servidor do Mecanismo de Banco de Dados (Servidores Registrados)
  • CMS (Sistema de Gerenciamento Central)
  • Serviços de análise
  • Serviços de Integração
  • Reporting Services

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

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

Veja um exemplo de qual poderia ser a aparência da saída:

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 somente o parâmetro -ServerInstance, uma lista completa de todos os bancos de dados nessa instância será retornada.

Veja um exemplo de qual será a aparência da 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. Quando o usuário clicar no botão “OK”, apenas o backup dos bancos de dados realçados será feito.

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

Este exemplo, novamente, obtém a lista de todas as instâncias do SQL Server listadas no arquivo de Servidores Registrados e, em seguida, chama o Get-SqlAgentJobHistory que relata cada trabalho com falha do SQL Agent desde a 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, faremos um dir (alias de Get-ChildItem) para obter a lista de todas as instâncias do SQL Server listadas em seu arquivo de Servidores Registrados e usaremos 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
}

Veja um exemplo de qual será a aparência da 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 obter problemas de segurança, confira aqui.

Contribuir com 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.