Puis-je démarrer le service de browser SQL Server avec smo?

J'ai besoin d'énumérer des servers SQL à partir d'un programme VB.Net. Cela échoue si le service SQL Browser n'est pas activé. L'installation par défaut semble l'avoir désactivé.

Comment puis-je tester l'état du service et, si nécessaire, l'activer et le démarrer?

Vous n'avez pas nécessairement besoin de SMO. Vous pouvez utiliser la class ServiceController. Voici un exemple simple de démarrage d'un service qui n'est pas en cours d'exécution:

' don't forget to reference the System.ServiceProcess and Imports System.Management DLLs imports System imports System.ServiceProcess imports System.Management public module MyModule Sub Main() Dim serviceName as Ssortingng = "SQLBrowser" Dim sc As ServiceController = New ServiceController(serviceName) ' make sure start mode is automatic Dim path As Ssortingng = "Win32_Service.Name='" & serviceName & "'" Dim p As New ManagementPath(path) Dim ManagementObj As New ManagementObject(p) Dim parameters As Object() = New Object(0) {} Dim value As Ssortingng = "Automatic" parameters(0) = value ManagementObj.InvokeMethod("ChangeStartMode", parameters) if sc.Status = ServiceControllerStatus.Stopped or sc.Status = ServiceControllerStatus.Paused then Console.WriteLine(serviceName + " is starting.") sc.Start() else Console.WriteLine(serviceName + " is running.") end if End Sub 

module de fin