1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
|
' ==========================================================================
' Nom : ludo.vbs
' Objet : Demarrage et Arret d un service systeme windows
' Environnements : WINDOWS Y2K, Y2K3
' Parametre(s) : Commande à lancer avec ses arguments
' Lancer <Commande> [<arg1> <arg2> ...]
' Sortie : retourne code erreur / Sortie si pas d'argument
' Codes retour : 0 -> ok
' 1 -> erreur de syntaxe
===================================================================
Const PID = "_"
Const terminal = "not_a_TTY"
Const gravite = "WARNING"
Const valeur = "OK"
Const EVENT_SUCCESS = 0
Private FSO, FicLog, FicLogBis
Dim ETAT_SERVICE
Dim WIN_SERVICE1
'On instancie l'objet
Set FSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
'On instancie le fichier texte
Set Ftxt = FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", False)
'On récupère les variables environnement
Function getSystemVar(VarName)
Dim wss, env
Set wss = CreateObject("WScript.Shell")
Set env = wss.environment("process")
getSystemVar = env(VarName)
End Function
'On recupere une partie dela chaine de caractere
resultat1 = Mid(getSystemVar("UNISON_SCHED"),2,3)
resultat2 = Mid(getSystemVar("UNISON_SCHED"),7,3)
resultat3 = Mid(getSystemVar("UNISON_SCHED"),5,3)
resultat4 = Mid(getSystemVar("UNISON_JOB"),14,43)
resultat5 = Mid(getSystemVar("USERNAME"),13.6)
'Fonction remontant le service et son etat
Dim objWMIService, objItem, objService
Dim colListOfServices, strComputer, intSleep
strComputer = "."
intSleep = 5000
' NB strService is case sensitive.
Set args = Wscript.Arguments
ETAT_SERVICE = args(0)
WIN_SERVICE1 = args(1)
message = "The service" & (WIN_SERVICE1) & "is in state :" & (ETAT_SERVICE)
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service Where Name ="_
& WIN_SERVICE1 & " ")
For Each objService in colListOfServices
'Test du parametre de l'arret ou du démarrage du service
If (ETAT_SERVICE) <> "Startservice" and (ETAT_SERVICE) <>"Stopservice" then
parametre = "Parametre invalide"
'Creation dy fichier Log
If Err.Number = 0 Then
Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
FtxtBis.writeline (parametre)
FtxtBis.Close
Set FtxtBis = Nothing
Ftxt.Close
Set Ftxt = Nothing
Else
Set Ftxt = FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", False)
Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
FtxtBis.writeline (parametre)
FtxtBis.Close 'Fermeture
Set FtxtBis = Nothing
Ftxt.Close
Set Ftxt = Nothing
End If
FSO.Close
WScript.Quit(1)
End If
'-------------------------------------------------------------------------------------------------------------------------
If (ETAT_SERVICE) = "Startservice" Then
return = objService.StartService(WIN_SERVICE1)
'Create Shell object
Dim objShell
Dim bIsRunning
oShell = CreateObject("Shell.Application")
'Verify that the service is running. If it isn't, then start it.
If NOT oShell.IsServiceRunning(WIN_SERVICE1) then
WScript.echo ("toto start")
WScript.Sleep 10000
oShell.ServiceStart(WIN_SERVICE1)
WScript.Sleep 10000
else if oShell.IsServiceRunning(WIN_SERVICE1) Then
WScript.echo ("ludo stop")
WScript.Sleep 10000
oShell.ServiceStop (WIN_SERVICE1)
WScript.echo ("ludo start")
WScript.Sleep 10000
oShell.ServiceStart (WIN_SERVICE1)
end if
end if
'Creation dy fichier Log
If Err.Number = 0 Then
Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
FtxtBis.Close
Set FtxtBis = Nothing
Ftxt.Close
Set Ftxt = Nothing
Else
Set Ftxt = FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", False)
Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
FtxtBis.Close 'Fermeture
Set FtxtBis = Nothing
Ftxt.Close
Set Ftxt = Nothing
End If
FSO.Close
'Ecrire dans l'event Log
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.LogEvent EVENT_SUCCESS, _
(now) & chr(10) & "Les services" & chr(1) & (strService) & "sur le serveur" & chr(1) & (getSystemVar ("COMPUTERNAME")) & chr(1) & "ont étés" & chr(1) & "par l'utilisateur" & chr(1) & (getSystemVar("username"))' & chr(1) & (sh.IsServiceRunning("Alerter"))
WScript.Quit(return)
'-------------------------------------------------------------------------------------------------------------------------
Else If (ETAT_SERVICE) = "Stopservice" Then
return = objService.StopService(WIN_SERVICE1)
'Create Shell object
set objShell = CreateObject("Shell.Application")
'Verify that the service is Stop. If it isn't, then stop it.
iF objShell.IsServiceRunning(WIN_SERVICE1) = FALSE Then
WScript.echo ("tata stop")
WScript.Sleep 10000
objShell.ServiceStart (WIN_SERVICE1), TRUE
WScript.Sleep 10000
objShell.ServiceStop (WIN_SERVICE1), TRUE
else If objShell.IsServiceRunning(WIN_SERVICE1) = TRUE Then
WScript.echo ("tata start")
WScript.Sleep 10000
objShell.ServiceStop (WIN_SERVICE1), TRUE
WScript.Sleep 1000
end if
end if
If Err.Number = 0 Then
Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
FtxtBis.Close
Set FtxtBis = Nothing
Ftxt.Close
Set Ftxt = Nothing
Else
Set Ftxt = FSO.CreateTextFile("D:\production\home\tws\log\SYS_LOG_systeme.log", False)
Set Ftxt = FSO.GetFile("D:\production\home\tws\log\SYS_LOG_systeme.log")
Set FtxtBis = Ftxt.OpenAsTextStream(8, -2)
FtxtBis.writeline (Year(date)) & vbTab & (Month(date)) & vbTab & (Day(date)) & vbTab & (time) & vbTab & (getSystemVar("COMPUTERNAME")) & vbTab & resultat1 & vbTab & resultat2 & vbTab & (PID) & vbTab & (terminal) & vbTab & resultat5 & vbTab & resultat4 & vbTab & return & vbTab & (gravite) & vbTab & resultat3 & vbTab & (getSystemVar("UNISON_JOBNUM")) & vbTab & (valeur) & vbTab & (message)
FtxtBis.Close 'Fermeture
Set FtxtBis = Nothing
Ftxt.Close
Set Ftxt = Nothing
End If
FSO.Close
'- Ecrire dans l'event Log
Set objShell = Wscript.CreateObject("Wscript.Shell")
objShell.LogEvent EVENT_SUCCESS, _
(now) & chr(10) & "Les services" & chr(1) & (strService) & "sur le serveur" & chr(1) & (getSystemVar ("COMPUTERNAME")) & chr(1) & "ont étés" & chr(1) & "par l'utilisateur" & chr(1) & (getSystemVar("username"))' & chr(1) & (sh.IsServiceRunning("Alerter"))
WScript.Quit(return)
End If
End If
WSCript.Sleep intSleep
Next |
Partager