Puedes ver los servicios y activarlos o desactivarlos con este código, 4 listbox y 3 botones.
Código vb:
Ver originalPrivate Sub Command1_Click()
CargaListas
End Sub
Private Sub Command2_Click()
' activar
Dim strServiceName As String
Dim objWMIService
Dim colListOfServices
Dim objService
strServiceName = List2.Text
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='" & strServiceName & "'")
For Each objService In colListOfServices
objService.StartService
Next
CargaListas
End Sub
Private Sub Command3_Click()
' desactivar
Dim strServiceName As String
Dim objWMIService
Dim colListOfServices
Dim objService
strServiceName = List2.Text
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='" & strServiceName & "'")
For Each objService In colListOfServices
objService.StopService
Next
CargaListas
End Sub
Private Sub CargaListas()
Dim objWMIService
Dim colListOfServices
Dim objService
Dim valor As String
Dim F As Long
On Local Error Resume Next
List1.Clear
List2.Clear
List3.Clear
List4.Clear
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objService In colListOfServices
valor = ""
valor = objService.DisplayName
List1.AddItem valor
valor = ""
valor = objService.Name
List2.AddItem valor
valor = ""
valor = objService.State
List3.AddItem valor
valor = ""
valor = objService.Description
List4.AddItem valor
Next
End sub
Para lo de guardar una copia, quizá creando una funcion que guarde un listado de los servicios activos y otra funcion que los active o desactive segun marque el listado guardado.
Que se de bien.