Suporte do Editor do PowerShell para o Azure Data Studio

Esta 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

Funcionalidades

  • Realce da sintaxe
  • Fragmentos de código
  • IntelliSense para cmdlets e muito mais
  • Análise baseada em regras fornecida pelo PowerShell Script Analyzer
  • Ir para Definição de cmdlets e variáveis
  • Localizar referências de cmdlets e variáveis
  • Descoberta de símbolos de documentos e espaços de trabalho
  • Executar a seleção selecionada do código do PowerShell usando F8
  • Inicie a ajuda online para o símbolo sob o cursor usando Ctrl+F1
  • Suporte básico de console interativo!

Instalando 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, procure a extensão "PowerShell" e instale-a lá. Você será notificado automaticamente sobre quaisquer futuras atualizações de extensão!

Você também pode instalar um pacote VSIX a partir de nossa página de versões e instalá-lo através da linha de comando:

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

Suporte da plataforma

  • Windows 7 a 10 com Windows PowerShell v3 e superior e PowerShell Core
  • Linux com PowerShell Core (todas as distribuições suportadas pelo PowerShell)
  • macOS com PowerShell Core

Leia as Perguntas frequentes para obter respostas a perguntas comuns.

Instalar o PowerShell Core

Se você estiver executando o Azure Data Studio no macOS ou Linux, também pode ser necessário instalar o PowerShell Core.

O PowerShell Core é um projeto de código aberto no GitHub. Para obter mais informações sobre como instalar o PowerShell Core em plataformas macOS ou Linux, consulte os seguintes artigos:

Scripts de exemplo

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

Esta pasta pode ser encontrada no seguinte caminho:

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

ou se estiver a utilizar a versão de pré-visualização 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 no prompt de comando do PowerShell:

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

Criação e abertura de ficheiros

Para criar e abrir um novo arquivo dentro do editor, use o New-EditorFile de dentro do Terminal Integrado do PowerShell.

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

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

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

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

Open-EditorFile ExportData.ps1, ImportData.py

Sem foco no console durante a execução

Para os usuários que estão acostumados a trabalhar com o SSMS, você está acostumado a poder executar uma consulta e, em seguida, ser capaz de executá-la novamente sem ter que voltar para o painel de consulta. 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 explicitamente solicita entrada, como Get-Credential.

Exemplos do SQL PowerShell

Para usar esses exemplos (abaixo), você precisa instalar o módulo SqlServer da Galeria do PowerShell.

Install-Module -Name SqlServer

Nota

Com versão 21.1.18102 e superior, o módulo suporta o SqlServer PowerShell Core 6.2 e superior, além do Windows PowerShell.

Neste exemplo, usamos o Get-SqlInstance cmdlet para Obter os objetos SMO do servidor para ServerA & ServerB. A saída padrão para este comando incluirá o nome da instância, versão, Service Pack, & Update Level das instâncias.

Get-SqlInstance -ServerInstance ServerA, ServerB

Aqui está um exemplo de como será essa 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)
  • Servidor de Gerenciamento Central (CMS)
  • Analysis Services
  • Serviços de Integração
  • Reporting Services

No exemplo a seguir, faremos um dir (alias para ) para Get-ChildItemobter 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

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

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 Get-SqlDatabase cmdlet pode ser usado. Se você fornecer valores para os -ServerInstance parâmetros e -Database , somente um 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 de como será essa 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 para recuperar uma lista de todos os bancos de dados na instância ServerB e, em seguida, apresenta uma grade/tabela (usando o Get-SqlDatabaseOut-GridView cmdlet) para selecionar quais bancos de dados devem ser submetidos a backup. Uma vez que o usuário clica no botão "OK", apenas os bancos de dados destacados serão copiados.

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 em seu arquivo de Servidores Registrados e, em seguida, chama o que relata cada trabalho do SQL Agent com falha desde a Get-SqlAgentJobHistory 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 para) para obter a lista de todas as instâncias do SQL Server listadas em seu arquivo de Servidores Registrados e, em seguida, usaremos o Get-SqlDatabase cmdlet para obter uma lista de Bancos de Dados para Get-ChildItemcada 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 de como será essa 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

Comunicar problemas

Se você tiver algum problema com a Extensão do PowerShell, consulte os documentos de solução de problemas para obter informações sobre como diagnosticar e relatar problemas.

Nota sobre segurança

Para quaisquer problemas de segurança, consulte aqui.

Contribuição para o Código

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

Mantenedores

Licença

Esta extensão está licenciada sob a Licença MIT. Para obter detalhes sobre os binários de terceiros que incluímos nas versões deste projeto, consulte o arquivo de avisos de terceiros.

Código de Conduta

Este projeto adotou o Código de Conduta Open Source da Microsoft. Para mais informações, veja as Perguntas Frequentes do Código de Conduta ou contacte opencode@microsoft.com com quaisquer questões ou comentários adicionais.