J’ai réussi, voici mon code, si ça peux servir un jour à quelqu’un:
Ce fichier stop le service passé en paramètre:
'----------------------------------------------------------------------------------------------------------------------------------------
' Fichier VBScript : "StopService.vbs"
' Arret du service
'----------------------------------------------------------------------------------------------------------------------------------------
Dim objFSO, objWMIService, objService, colServiceList
Dim objReseau, Ordinateur
Dim Reponse
Dim service
Set arg = Wscript.Arguments
service = arg(0)
Set objReseau = CreateObject("WScript.Network")
Ordinateur = LCase(objReseau.ComputerName)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & Ordinateur & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='"& service &"'" )
For Each objService In colServiceList
If (objService.Name = service) Then
If (objService.State <> "Stopped") Then
Reponse = objService.StopService()
Else
msgbox "Service " & objService.Name & " deja stopé"
End If
End If
Next
Set objFSO = Nothing
Set objReseau = Nothing
WScript.Quit
'------------------------------------------------------------------------------------------------
Celui ci démarré le service passé en paramètre et appel le fichier testscript.vbs afin de vérifier si le service a bien démarré:
'----------------------------------------------------------------------------------------------------------------------------------------
' Fichier VBScript : "StartService.vbs"
' Démarrage du service
'----------------------------------------------------------------------------------------------------------------------------------------
Dim objFSO, objWMIService, objService, colServiceList
Dim objReseau, Ordinateur
Dim Reponse
Dim WshShell
Dim service
Set arg = Wscript.Arguments
service = arg(0)
Set WshShell = CreateObject("WScript.Shell")
Set objReseau = CreateObject("WScript.Network")
Ordinateur = LCase(objReseau.ComputerName)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & Ordinateur & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='"& service &"'")
For Each objService In colServiceList
If (objService.Name = service) Then
If (objService.State <> "Running") Then
Reponse = objService.StartService()
WScript.Sleep 20000
End If
End If
Next
WshShell.Run "testservice.vbs " & service
Set WshShell = Nothing
Set objFSO = Nothing
Set objReseau = Nothing
WScript.Quit
'------------------------------------------------------------------------------------------------
Ce dernier test si le service passer en parametre est bien demarré et si c’est pas le cas envoi un mail:
'----------------------------------------------------------------------------------------------------------------------------------------
' Fichier VBScript : "testservice.vbs"
' Test si le service est bien demarré si non, envoi d'un mail
'----------------------------------------------------------------------------------------------------------------------------------------
Public Sub EnvoiMail(Expediteur,Destinataire,Sujet,Message,Smtp,Port)
Set Mail = CreateObject("CDO.Message")
With Mail
.From=Expediteur
.To=Destinataire
.Subject=Sujet
.TextBody=Message
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtp
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
.Configuration.Fields.Update
.Send
End With
End Sub
Dim objFSO, objWMIService, objService, colServiceList, arg
Dim objReseau, Ordinateur
Dim Reponse, service
Set arg = Wscript.Arguments
service = arg(0)
Set objReseau = CreateObject("WScript.Network")
Ordinateur = LCase(objReseau.ComputerName)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & Ordinateur & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='"& service &"'")
For Each objService In colServiceList
If (objService.Name = service) Then
If (objService.State <> "Running") Then
EnvoiMail "adresse@expediteur","adresse@destinataire","Sujet","Message","serveur smtp","port du serveur smtp"
End If
End If
Next
Set objFSO = Nothing
Set objReseau = Nothing
WScript.Quit
'------------------------------------------------------------------------------------------------