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.
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 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
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 Get-SqlDatabase
cmdlet para recuperar uma lista de todos os bancos de dados na instância ServerB e, em seguida, apresenta uma grade/tabela (usando o Out-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 Get-ChildItem
) 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 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 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
- Monte Keith - @r_keith_hill
- Tyler Leonhardt - @TylerLeonhardt
- Rob Holt
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.