Dim strComputer, objWMIService, colListOfServices, objService
Dim ListeServices, TableauServices, ParseCaracter, UnService, NomService
Dim WSHShell
Dim vAPPDATA, vSystemDrive, vSystemRoot, vSESSIONNAME, vCOMPUTERNAME, vProgramFilesx32, vProgramFilesx64
Dim CheminScriptActuel, objFSO, objFichierLog, objFichierResultat
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8
Call DetectExeType()
ListeServices = "dmserver;NMSSvc;NWCWorkstation"
Set WSHShell = CreateObject("WScript.Shell")
vAPPDATA = WSHShell.ExpandEnvironmentStrings("%APPDATA%")
vSystemDrive = WSHShell.ExpandEnvironmentStrings("%SystemDrive%")
vSystemRoot = WSHShell.ExpandEnvironmentStrings("%systemroot%")
vSESSIONNAME = WSHShell.ExpandEnvironmentStrings("%SESSIONNAME%")
vCOMPUTERNAME = WSHShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
vProgramFilesx32 = WSHShell.ExpandEnvironmentStrings("%programfiles(x86)%")
vProgramFilesx64 = WSHShell.ExpandEnvironmentStrings("%programfiles%")
If Left(vProgramFilesx32,1) = "%" Then
vProgramFilesx32 = vProgramFilesx64
vProgramFilesx64 = ""
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
CheminFichierdeLog = CheminScriptActuel & "\" & wscript.scriptname & "_" & vCOMPUTERNAME & "_Log.txt"
CheminFichierResultat = CheminScriptActuel & "\" & wscript.scriptname & "_" & vCOMPUTERNAME & "_Resultat.txt"
Wscript.Echo "Fichier de log dans " & CheminFichierdeLog
Wscript.Echo "Fichier avec les résultats dans " & CheminFichierResultat
Set objFichierLog = objFSO.OpenTextFile(CheminFichierdeLog, ForWritting, True)
Set objFichierResultat = objFSO.OpenTextFile(CheminFichierResultat, ForWritting, True)
ParseCaracter = ";"
TableauServices = Split(ListeServices, ParseCaracter)
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery ("Select * from Win32_Service")
objFichierLog.WriteLine("Services présent sur la machine :")
For Each objService in colListOfServices
objFichierLog.WriteLine("Service : " & objService.Name & VbTab & objService.State)
NomService = objService.Name
NomService = Lcase(Trim(NomService))
For Each UnService In TableauServices
If (NomService = Lcase(Trim(UnService))) Then
objFichierResultat.WriteLine(vCOMPUTERNAME & VbTab & NomService & VbTab & objService.DisplayName & VbTab & objService.StartMode & VbTab & objService.State & VbTab & objService.PathName & VbTab & "Service trouvé alors qu'il ne devrait pas")
objFichierLog.WriteLine(UnService & " a été trouvé alors qu'il ne devrait pas.")
exit for
End If
Next
Next
objFichierLog.Close
objFichierResultat.Close
Set objFichierLog = Nothing
Set objFichierResultat = Nothing
Set objFSO = Nothing
Set WSHShell = Nothing
Wscript.Echo "Terminé"
Sub DetectExeType()
Dim ScriptHost
Dim ShellObject
Dim CurrentPathExt
Dim EnvObject
Dim RegCScript
Dim RegPopupType
RegPopupType = 32 + 4
On Error Resume Next
ScriptHost = WScript.FullName
ScriptHost = Right(ScriptHost, Len(ScriptHost) - InStrRev(ScriptHost, "\"))
If (UCase(ScriptHost) = "WSCRIPT.EXE") Then
WScript.Echo ("This script does not work with WScript.")
Set ShellObject = WScript.CreateObject("WScript.Shell")
RegCScript = ShellObject.PopUp("Would you like to register CScript as your default host for VBscript?", 0, "Register CScript", RegPopupType)
If (Err.Number <> 0) Then
ReportError ()
WScript.Echo "To run this script using CScript, type: ""CScript.exe " & WScript.ScriptName & """"
WScript.Quit (GENERAL_FAILURE)
WScript.Quit (Err.Number)
End If
If (RegCScript = 6) Then
ShellObject.RegWrite "HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command\", "%WINDIR%\System32\CScript.exe //nologo ""%1"" %*", "REG_EXPAND_SZ"
ShellObject.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VBSFile\Shell\Open\Command\", "%WINDIR%\System32\CScript.exe //nologo ""%1"" %*", "REG_EXPAND_SZ"
CurrentPathExt = ShellObject.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATHEXT")
If Err.Number = &H80070002 Then
Err.Clear
Set EnvObject = ShellObject.Environment("PROCESS")
CurrentPathExt = EnvObject.Item("PATHEXT")
End If
ShellObject.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATHEXT", CurrentPathExt & ";.VBS", "REG_SZ"
If (Err.Number <> 0) Then
ReportError ()
WScript.Echo "Error Trying to write the registry settings!"
WScript.Quit (Err.Number)
Else
WScript.Echo "Successfully registered CScript"
End If
Else
WScript.Echo "To run this script type: ""CScript.Exe adsutil.vbs <cmd> <params>"""
End If
Dim ProcString
Dim ArgIndex
Dim ArgObj
Dim Result
ProcString = "Cscript //nologo " & WScript.ScriptFullName
Set ArgObj = WScript.Arguments
For ArgIndex = 0 To ArgCount - 1
ProcString = ProcString & " " & Args(ArgIndex)
Next
Result = ShellObject.Run(ProcString, 0, True)
WScript.Quit (Result)
End If
End Sub
Lien vers le fichier : cliquez ici