Поддержка редактора PowerShell для Azure Data Studio
Это расширение обеспечивает полноценную поддержку редактора PowerShell в Azure Data Studio. С его помощью вы получаете возможность создания и отладки скриптов PowerShell в интерфейсе Azure Data Studio, схожем с интегрированной средой разработки.
Функции
- Выделение синтаксиса
- Фрагменты кода
- Технология IntelliSense для командлетов и многое другое
- Анализ на основе правил с использованием анализатора скриптов PowerShell
- Переход к определению командлетов и переменных
- Поиск ссылок на командлеты и переменные
- Обнаружение символов в документе и рабочей области
- Запуск выбранного фрагмента кода PowerShell с помощью клавиши F8
- Запуск интерактивной справки для символа под курсором с помощью сочетания клавиш CTRL+F1
- Базовая поддержка интерактивной консоли
Установка расширения
Чтобы установить официальный выпуск расширения PowerShell, выполните действия, указанные в документации по Azure Data Studio. В области "Расширения" найдите расширение PowerShell и установите его. Уведомления о последующих обновлениях этого расширения будут приходить автоматически.
Также вы можете установить пакет VSIX со страницы Выпуски и с помощью командной строки:
azuredatastudio --install-extension PowerShell-<version>.vsix
Поддержка платформы
- ОС с Windows 7 по Windows 10 с Windows PowerShell версии 3 или более поздней и PowerShell Core
- Linux с PowerShell Core (все поддерживаемые PowerShell дистрибутивы)
- macOS с PowerShell Core
Ответы на часто задаваемые вопросы см. в этой статье.
Установка PowerShell Core
Если вы работаете с Azure Data Studio в MacOS или Linux, также может потребоваться установка PowerShell Core.
PowerShell Core — это проект с открытым исходным кодом на сайте GitHub. Дополнительные сведения об установке PowerShell Core на платформах MacOS или Linux см. в следующих статьях:
Примеры скриптов
Далее приводится несколько примеров скриптов в папке расширения examples
, которые можно использовать для знакомства с возможностями редактирования и отладки PowerShell. Дополнительные сведения об их использовании см. в файле README.md.
Путь к этой папке:
$HOME/.azuredatastudio/extensions/microsoft.powershell-<version>/examples
или для предварительной версии расширения
$HOME/.azuredatastudio/extensions/microsoft.powershell-preview-<version>/examples
Чтобы открыть и просмотреть примеры расширения в Azure Data Studio, выполните следующий код из командной строки PowerShell:
azuredatastudio (Get-ChildItem $Home\.azuredatastudio\extensions\microsoft.powershell-*\examples)[-1]
Создание и открытие файлов
Чтобы создать и открыть новый файл в редакторе, выполните команду New-EditorFile из встроенного терминала PowerShell.
PS C:\temp> New-EditorFile ExportData.ps1
Эта команда работает для файлов любого типа, а не только для файлов PowerShell.
PS C:\temp> New-EditorFile ImportData.py
Чтобы открыть один или несколько файлов в Azure Data Studio, воспользуйтесь командой Open-EditorFile
.
Open-EditorFile ExportData.ps1, ImportData.py
Отсутствие фокуса в консоли во время выполнения
Если вы работали с SSMS, то наверняка привыкли к возможности выполнить запрос и затем повторить его выполнение, не переключаясь обратно в панель запросов. В таком случае реализованное по умолчанию поведение редактора кода может показаться вам непривычным. Чтобы сохранять фокус в редакторе при выполнении с помощью клавиши F8, измените следующую настройку:
"powershell.integratedConsole.focusConsoleOnExecute": false
Значение по умолчанию true
устанавливается в соответствии с требованиями к поддержке специальных возможностей.
Обратите внимание, что при установке этой настройки фокус не будет переноситься в консоль, даже если вы используете команду, явно требующую ввода данных, например Get-Credential
.
Примеры SQL для PowerShell
Чтобы использовать приведенные ниже примеры, установите модуль SqlServer из коллекции PowerShell.
Install-Module -Name SqlServer
Примечание.
В версии 21.1.18102
и более поздних модуль SqlServer
помимо Windows PowerShell поддерживает PowerShell Core 6.2 и более поздних версий.
В этом примере используется командлет Get-SqlInstance
для получения управляющих объектов SQL Server для экземпляров ServerA и ServerB. По умолчанию в выходных данных этой команды будут содержаться имя экземпляра, версия, а также уровень пакета обновления и накопительного обновления для экземпляров.
Get-SqlInstance -ServerInstance ServerA, ServerB
Ниже приводится пример соответствующих выходных данных:
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
Модуль SqlServer
содержит поставщик SQLRegistration
, который обеспечивает программный доступ к следующим типам сохраненных подключений SQL Server:
- Сервер ядра СУБД (зарегистрированные серверы)
- Центральный сервер управления (CMS)
- Службы Analysis Services
- Службы Integration Services
- Службы отчетов
В следующем примере выполняется команда dir
(псевдоним Get-ChildItem
) для получения списка всех экземпляров SQL Server, которые перечислены в файле зарегистрированных серверов.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse
Ниже приводится пример выходных данных:
Mode Name
---- ----
- ServerA
- ServerB
- localhost\SQL2017
- localhost\SQL2016Happy
- localhost\SQL2017
Для многих операций с базами данных или содержащимися в них объектами можно использовать командлет Get-SqlDatabase
. Если заданы значения параметров -ServerInstance
и -Database
, будут извлечены только эти объекты базы данных. Тем не менее, если вы зададите только параметр -ServerInstance
, будет возвращен полный список баз данных в этом экземпляре.
Ниже приводится пример соответствующих выходных данных:
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
В следующем примере используется командлет Get-SqlDatabase
для извлечения списка всех баз данных на экземпляре ServerB. После этого с помощью командлета Out-GridView
выводится таблица для выбора баз данных, для которых требуется выполнить резервное копирование. После нажатия кнопки "ОК" будет выполнено резервное копирование только для выделенных баз данных.
Get-SqlDatabase -ServerInstance ServerB |
Out-GridView -PassThru |
Backup-SqlDatabase -CompressionOption On
В этом примере снова возвращается список всех экземпляров SQL Server, перечисленных в файле зарегистрированных серверов, после чего вызывается командлет Get-SqlAgentJobHistory
, который выводит список всех завершившихся сбоем заданий агента SQL (начиная с полуночи) для каждого представленного в списке экземпляра SQL Server.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE {$_.Mode -ne 'd' } |
FOREACH {
Get-SqlAgentJobHistory -ServerInstance $_.Name -Since Midnight -OutcomesType Failed
}
В этом примере выполняется команда dir
(псевдоним Get-ChildItem
) для получения списка всех экземпляров SQL Server, перечисленных в файле зарегистрированных серверов. Затем выполняется командлет Get-SqlDatabase
для получения списка баз данных для каждого из этих экземпляров.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE { $_.Mode -ne 'd' } |
FOREACH {
Get-SqlDatabase -ServerInstance $_.Name
}
Ниже приводится пример соответствующих выходных данных:
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
Отчеты о проблемах
Если вы столкнулись с проблемами при работе расширения PowerShell, ознакомьтесь со сведениями о диагностике ошибок и отправке сообщений о них в документации по устранению неполадок.
Примечание по безопасности.
Сведения о проблемах, связанных с безопасностью, см. в этой статье.
Участие в улучшении кода
Если вы хотите принять участие в улучшении этого расширения, ознакомьтесь с документацией для разработчиков.
Издатели
- Кит Хилл - @r_keith_hill
- Тайлер Леонардт — @TylerLeonhardt
- Роб Холт (Rob Holt)
Лицензия
Это расширение лицензируется на условиях лицензии MIT. Дополнительные сведения о двоичных файлах сторонних производителей, включаемых в выпуски этого проекта, см. в файле заметок стороннего производителя.
Правила поведения
В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.