获取SQL SERVER服务状态及启用的协议

1. 通过注册表获取SQL SERVER服务的启动状态。与获取其它服务的启动状态一样。方法是通过查找注册表:HK_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\{服务名},下的Start键的值。其值的意义是:

  • 2 表示自动(Automatic)
  • 3 表示手动(Manual)
  • 4 表示禁用(Diabled)

2. 获取或设置SqlServer的启动状态。
通过使用System.ServiceProcess.ServiceController类来获取或设置服务状态。

3. 获取或设置Sqlserver启用的协议。
Sqlserver提供了四种协议,分别是ShareMemory, Named Pipe, Tcp, Via.
也可以通过查找注册表来获取某一种协议是否启用。以查看SqlExpress下的Tcp协议是否启用为例。

  • 一般地,每个SQL SERVER实例都会在HK_LOCAL_MACHINE\Software\Microsoft\Microsoft Sql Server\Instance\SQL下有一个键。先获取这个目录下SQLEXPRESS键的值。假设是MSSQL.1。
  • 到HK_LOCAL_MACHINE\Software\Microsoft\Microsoft Sql Server\MSSQL.1\MSSQLServer\SuperSocketNetLib下可以看到四个目录每个目录代表一个协议。其中,Np代表Named Pipe,Sm代表Shared Memory,另外两个是Tcp和Via。
  • 查看Tcp下的Enabled键的值。若值为1表示协议启用,0表示协议禁用。
原文地址:https://www.cnblogs.com/qkhh/p/1402434.html