PowerShell エディターによる Azure Data Studio のサポート
この拡張機能で、Azure Data Studio に高機能な PowerShell エディターのサポートが提供されます。 Azure Data Studio が提供する、優れた IDE に似たインターフェイスを使用して PowerShell スクリプトを作成およびデバッグできるようになります。
特徴
- 構文の強調表示
- コード スニペット
- コマンドレットなどの IntelliSense
- PowerShell Script Analyzer で提供されるルールベースの分析
- コマンドレットと変数の定義に進む
- コマンドレットと変数のリファレンスを探す
- ドキュメントとワークスペースのシンボル検出
- F8 キーを使用して選択した PowerShell コードの選択を実行する
- Ctrl+F1 キーを使用してカーソルの下にあるシンボルのオンライン ヘルプを起動する
- 基本的な対話型コンソールのサポート
拡張機能のインストール
PowerShell の拡張機能の公式リリースをインストールするには、Azure Data Studio のドキュメントの手順に従います。 [機能拡張] ウィンドウで「PowerShell」の拡張機能を検索し、そこでインストールします。 今後、拡張機能の更新があれば、自動的に通知されます。
リリース ページから VSIX パッケージをインストールし、コマンド ラインからインストールすることもできます。
azuredatastudio --install-extension PowerShell-<version>.vsix
プラットフォームのサポート
- Windows PowerShell v3 以降、および PowerShell Core がインストールされた Windows 7 から 10
- PowerShell Core がインストールされた Linux (PowerShell がサポートされているすべてのディストリビューション)
- PowerShell Core がインストールされた macOS
よく寄せられる質問の回答については、「FAQ」を参照してください。
PowerShell Core のインストール
macOS または Linux 上で Azure Data Studio を実行している場合は、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]
ファイルを作成して開く
エディター内で新しいファイルを作成して開くには、PowerShell 統合ターミナル内から New-EditorFile を使用します。
PS C:\temp> New-EditorFile ExportData.ps1
このコマンドは、PowerShell ファイルだけでなく、あらゆるファイルの種類に使用できます。
PS C:\temp> New-EditorFile ImportData.py
Azure Data Studio で 1 つ以上のファイルを開くには、Open-EditorFile
コマンドを使用します。
Open-EditorFile ExportData.ps1, ImportData.py
実行時にコンソールにフォーカスなし
SSMS での作業に慣れているユーザーの場合、クエリを実行できること、そしてクエリ ウィンドウに切り替えることなくクエリを再実行できることに慣れています。 このような場合、コード エディターの既定の動作は奇妙に感じられるかもしれません。 F8 キーを押して実行するときにエディターのフォーカスを維持するには、次の設定を変更します。
"powershell.integratedConsole.focusConsoleOnExecute": false
アクセシビリティのため、既定値は true
です。
Get-Credential
のように明示的に入力を要求するコマンドを使用した場合でも、この設定によってフォーカスがコンソールに変更されなくなることに注意してください。
SQL PowerShell の例
これらの (以下の) 例を使用するには、PowerShell ギャラリーから SqlServer モジュールをインストールする必要があります。
Install-Module -Name SqlServer
Note
バージョン 21.1.18102
以降では、SqlServer
モジュールは Windows PowerShell に加えて PowerShell Core 6.2 以降をサポートします。
この例では、Get-SqlInstance
コマンドレットを使用して ServerA と ServerB のサーバー SMO オブジェクトを取得します。 このコマンドの既定に出力には、インスタンスのインスタンス名、バージョン、サービス パック、および CU の更新レベルが含まれます。
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
- Reporting Services
次の例では、登録済みサーバー ファイルに記載されているすべての SQL Server インスタンスの一覧を取得するために dir
(Get-ChildItem
のエイリアス) を実行します。
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse
出力例は次のようになります。
Mode Name
---- ----
- ServerA
- ServerB
- localhost\SQL2017
- localhost\SQL2016Happy
- localhost\SQL2017
データベースが関係するさまざまな操作に対して、あるいはデータベース内のオブジェクトに対して Get-SqlDatabase
コマンドレットを使用できます。 -ServerInstance
パラメーターと -Database
パラメーターの両方に値を提供する場合、その 1 つのデータベース オブジェクトだけが取得されます。 ただし、-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
コマンドレットを使用して) グリッド/テーブルを表示して、バックアップするデータベースを選択します。 ユーザーが [OK] ボタンをクリックすると、強調表示されたデータベースのみがバックアップされます。
Get-SqlDatabase -ServerInstance ServerB |
Out-GridView -PassThru |
Backup-SqlDatabase -CompressionOption On
この例でも、Registered Servers ファイルに記載されているすべての SQL Server インスタンスの一覧を取得し、記載されている各 SQL Server インスタンスについて、午前 0 時以降に失敗したすべての SQL エージェント ジョブを報告する Get-SqlAgentJobHistory
を呼び出します。
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE {$_.Mode -ne 'd' } |
FOREACH {
Get-SqlAgentJobHistory -ServerInstance $_.Name -Since Midnight -OutcomesType Failed
}
この例では、dir
(Get-ChildItem
のエイリアス) を実行して Registered Servers ファイルに記載されているすべての 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 拡張機能に関する問題が発生した場合は、問題の診断と報告の詳細についてはトラブルシューティングのドキュメントを参照してください。
セキュリティに関する注意
セキュリティの問題については、こちらを参照してください。
コードへの貢献
この拡張機能に貢献する方法の詳細については、開発ドキュメントを参照してください。
保守担当者
- Keith Hill - @r_keith_hill
- Tyler Leonhardt - @TylerLeonhardt
- Rob Holt
ライセンス
この拡張機能は MIT ライセンスに従ってライセンスが付与されます。 このプロジェクトのリリースに含まれているサードパーティ製バイナリの詳細については、サードパーティに関する通知のファイルを参照してください。
倫理規定
このプロジェクトは、「Microsoft のオープン ソースの倫理規定」を採用しています。 詳細については、倫理規定についてよくあるご質問を参照するか、opencode@microsoft.com 宛てにご質問またはコメントをお送りください。