Detectar si SQL Server esta instalado en un equipo
Estoy tratando de crear un sencillo script en Asp.net, emulando la simplicidad de WordPress, para instalar un aplicacion web en cualquier equipo.
Como estoy usando SQL Server como base de datos, necesito que antes de instalar el esquema de la aplicacion en sql server, verificar que SQL server este instalado en el equipo.
Windows 2000 en adelante (XP, 2003, etc) trae en el core WMI el cual permite revisar, y hacer acciones sobre los servicios de windows.
Una herramienta muy util para esto es WMI Code Creator disponible en Microsoft, el cual me ayudo a crear la consulta destinada a descubrir los servicios del equipo.
Sin mas rollo el codigo:
Imports System
Imports System.Management
Private Function isServerInstalled(ByVal servername As String) As Boolean
Try
Dim searcher As New ManagementObjectSearcher( _
"root\CIMV2", _
"SELECT * FROM Win32_Service WHERE Name = '" & servername.ToUpper & "'")
If searcher.Get.Count = 0 Then
Return False
End If
For Each queryObj As ManagementObject In searcher.Get()
If queryObj("Name").ToString.Equals(servername.ToUpper) Then
Return True
Else
Return False
End If
Next
Catch err As ManagementException
Return False
End Try
End Function
Y para usarla dentro de la pagina:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not (isServerInstalled("MSSQLSERVER") OrElse isServerInstalled("MSSQL$SQLEXPRESS")) Then
Response.Redirect("nosqlserver.aspx")
End If
End Sub
Listo!
Comentarios