web-dev-qa-db-ja.com

T-SQLスクリプトまたはPowerShellによってSQLサーバーエージェントサービスを有効にする

T-SQLスクリプトまたはPowerShell/cmdでSQLサーバーエージェントサービスを有効/無効にできますか?

7
Puskar

@Shawn Meltonの回答で述べられているものを何も割り引かないと、これを行う1つの特定の文書化されていないストアドプロシージャがあります。 xp_servicecontrol。これにより、TSQLでSQL Serverエージェントサービスのサービスの状態を開始、停止、および確認できます。

SQL Serverエージェントサービスの開始、停止、または「実行中/停止中」のステータスを確認する場合、構文は次のとおりです。

EXEC xp_servicecontrol N'Querystate|Start|Stop',N'Service Name' 

TSQLを介してSQLServerエージェントサービスを開始する場合、構文は次のとおりです。

SQL Serverエージェントを開始するには

EXEC xp_servicecontrol N'START',N'SQLServerAGENT';
GO

SQL Serverエージェントを停止するには

EXEC xp_servicecontrol N'STOP',N'SQLServerAGENT';
GO

SQL Serverエージェントサービスのサービスステータスを表示する場合、構文は次のようになります。

EXEC xp_servicecontrol N'querystate',N'SQLServerAGENT';
Go

SQL Serverエージェントサービスを開始すると、次のようなメッセージが表示されます。

サービス開始

メッセージ22003、レベル1、状態0

SQL Serverエージェントサービスを停止すると、次のようなメッセージが表示されます

サービスが停止しました

メッセージ22003、レベル1、状態0

:-xp_servicecontrolは文書化されていないシステムストアドプロシージャであるため、サポートされません。さらに、コードの変更やパラメーターの変更が発生する可能性があるため、これを使用する場合は注意してください。

参考のために here および here を参照してください。

4

実行しているPowerShellのバージョンによって異なりますが、このコマンドは少なくとも3.0以降で使用できます。

Set-Service SQLSERVERAGENT -StartupType Disabled

enter image description here

代わりにWMIを使用するか、SQL Server WMI(Microsoft.sqlserver.management.smo.wmi名前空間)を使用できます。

T-SQLには、サービスと対話するためのネイティブのメカニズムはありません。 xp_cmdshellおよびPowerShellまたはcmdコマンドの呼び出し。

7
user507