Create a PowerShell Script Job Step
適用対象: SQL Server Azure SQL Managed Instance
重要
現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。
このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server で PowerShell スクリプトを実行する SQL Server エージェント ジョブ ステップを作成して定義する方法について説明します。
はじめに
セキュリティ
詳細については、「 SQL Server エージェントのセキュリティの実装」をご覧ください。
フィードバックをお待ちしております。 この記事の手順やコード例の中で、古い情報や間違っている情報を見つけた場合は、ぜひお知らせください。 このページの下部にある [フィードバック] セクション内で [このページ] ボタンをクリックしてください。 SQL に関するフィードバックのすべての項目に目を通しています (通常は翌日)。 よろしくお願いいたします。
SQL Server Management Studio を使用する
PowerShell スクリプト ジョブ ステップを作成するには
オブジェクト エクスプローラー で、 SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[SQL Server エージェント] を展開し、新しいジョブを作成するか、既存のジョブを右クリックして [プロパティ] をクリックします。 ジョブの作成の詳細については、「 ジョブの作成」を参照してください。
[ジョブのプロパティ] ダイアログで [ステップ] ページをクリックし、 [新規作成] をクリックします。
[新しいジョブ ステップ] ダイアログの [ステップ名] ボックスにジョブ ステップ名を入力します。
[種類] ボックスの一覧で [PowerShell] をクリックします。
[実行するアカウント名] ボックスの一覧で、ジョブで使用する資格情報を備えたプロキシ アカウントをクリックします。
[コマンド] ボックスに、ジョブ ステップで実行する PowerShell スクリプト構文を入力します。 または、 [開く] をクリックしてスクリプト構文が記述されたファイルを選択します。 PowerShell スクリプトの例については、以下の「 Transact-SQL の使用 」を参照してください。
[詳細設定] ページをクリックして、ジョブ ステップのオプションのうち、ジョブ ステップが成功または失敗した場合のアクション、 SQL Server エージェントによるジョブ ステップの再試行回数、および再試行間隔を設定します。
Transact-SQL の使用
PowerShell スクリプト ジョブ ステップを作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
-- creates a PowerShell job step that finds the processes -- that use more than 1000 MB of memory and kills them USE msdb; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Kills all processes that use more than 1000 MB of memory', @subsystem = N'PowerShell', @command = N'Get-Process | Where-Object { $_.WS -gt 1000MB } | Stop-Process', @retry_attempts = 5, @retry_interval = 5 ; GO
詳細については、「 sp_add_jobstep (Transact-SQL)」を参照してください。
SQL Server 管理オブジェクトの使用
PowerShell スクリプト ジョブ ステップを作成するには
Visual Basic、Visual C#、PowerShell などの選択したプログラミング言語で JobStep クラスを使用します。