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
|
' ' Assignation des variables pour Post message Tivoli ou Log
' =============================================================================
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
' =============================================================================
' Paramètre(s) entree :
'
' Sortie : (fichiers, tables, codes erreur, ...)
' -----------------------------------------------------------------------------
'
'
' -----------------------------------------------------------------------------
' Action principale
' --------------------
'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)
'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)
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
' -----------------------------------------------------------------------------
' Fin du Main {} |