PowerShell エディターによる Azure Data Studio のサポート

この拡張機能で、Azure Data Studio に高機能な PowerShell エディターのサポートが提供されます。 Azure Data Studio が提供する、優れた IDE に似たインターフェイスを使用して PowerShell スクリプトを作成およびデバッグできるようになります。

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 拡張機能に関する問題が発生した場合は、問題の診断と報告の詳細についてはトラブルシューティングのドキュメントを参照してください。

セキュリティに関する注意

セキュリティの問題については、こちらを参照してください。

コードへの貢献

この拡張機能に貢献する方法の詳細については、開発ドキュメントを参照してください。

保守担当者

ライセンス

この拡張機能は MIT ライセンスに従ってライセンスが付与されます。 このプロジェクトのリリースに含まれているサードパーティ製バイナリの詳細については、サードパーティに関する通知のファイルを参照してください。

倫理規定

このプロジェクトは、「Microsoft のオープン ソースの倫理規定」を採用しています。 詳細については、倫理規定についてよくあるご質問を参照するか、opencode@microsoft.com 宛てにご質問またはコメントをお送りください。