Bonjour,
Je suis nouveau dans le petit monde de l’informatique, des scripts (et sur ce forum ),
je m'excuse d'avance si ce type de question existe où vous parait triviale je suis encore en phase d'apprentissage.
Dans le cadre de mon travail les postes clients utilisent un script lors de l'insertion d'un support lançant l'analyse par 2 antivirus (clamAV et Maccafee).
Jusqu'à présent ce script marche très bien sur des postes sous xp, actuellement le parc des machines se renouvèle (enfin!) mais avec seven.
Mon problème c'est que si le script détecte bien les clés USB, il ne lance plus le scan par les antivirus.
Il ne me met pas d'erreur c'est juste qu'il ne lance pas les scans en question.
Y a t'il des paramètres à changer sachant que j'ai déjà suivi la piste des UAC mais que cela ne change rien.
Merci d'avance de prendre du temps pour m'aider
Florent
PS ci dessous le script en question:
DIM EXCLU,TROUVE,objFSO,objTS,colDrives,wshshell,env,message
DIM CLAMSCAN,MCAFEE,TEMPDIR,DATABASE,LOGG,MCAFEE_LOG
DIM VIRUS,nbVirus,Lecteur,content,lignes,ligne,RESULTAT,fichier
Dim MCAFEE_Content,CLAMWIN_Content
Dim NbLignesPrecedentes_LOGG,NbLignesPrecedentes_MCAFEE_LOG
on error resume next
Preparation_des_objets()
Reglages_des_variables()
Decouverte_des_lecteurs_actuels()
Do
Test_decouverte_nouveau_lecteur()
If TROUVE Then
analyser_ancien_journaux_logs()
'reponse=MsgBox("Voulez-vous scanner le support "&Lecteur&": ?",vbYesNo)
message = MsgBox ("La station blanche vient de détecter que vous venez de connecter un support amovible USB ("&Lecteur&"."&vbcrlf&"Ce support va être scanné par deux antivirus. A l'issu, un message vous informera de la fin de l'analyse"&vbcrlf&""&vbcrlf&""&vbcrlf&"Cliquez sur OK pour lancer l'analyse",4096,"Connexion d'un support amovible USB" )
'if reponse=6 then
nbvirus=0
set fichier=objFSO.GetFile(LECTEUR&":\"&resultat)
fichier.attributes=0
set fichier=objFSO.opentextFile(LECTEUR&":\"&resultat,2,true)
Start_CLAMWIN()
if nbVirus=0 then
Start_MCAFEE()
if nbVirus=0 then
Calcul_checksum(LECTEUR&":\" )
' Ajout des resultats en fin de fichier
fichier.WriteLine MCAFEE_Content
fichier.WriteLine CLAMWIN_Content
FermerTAG()
set fichier=objFSO.GetFile(LECTEUR&":\"&resultat)
fichier.attributes=6
FermerTAG()
'wshshell.Run "deveject.exe -EjectDrive:"&LECTEUR&":",0,True
'wscript.echo "CLEF PROPRE, Aucun Virus !!!"&vbcrlf&"Vous pouvez la retirer..."
Ejecter_cle()
message = MsgBox ("Aucun Virus n'a été détecté sur le support amovible USB : vous pouvez déconnecter votre support. "&Lecteur&".",4096,"Fin de l'anaylse." )
end if
end if
'end if
end if
wscript.sleep(1000)
Loop
Sub Calcul_checksum(strFolder)
Dim oFs, oFolder, oFiles, oFile, oSubFolder
Dim colFolders, colFiles
Dim Ext
Set oFs = CreateObject ("Scripting.FileSystemObject" )
Set oFolder = oFs.GetFolder (strFolder)
Set colFolders = oFolder.SubFolders
Set colFiles = oFolder.Files
For Each oFile in colFiles
if oFile.Name<>resultat then
a1=oFile.Attributes
t1=split(oFile.DateLastModified," " )
t11=split(t1(0),"/" )
a2=cint(t11(0))+cint(t11(1))+cint(t11(2))
t12=split(t1(1),":" )
a3=cint(t12(0))+cint(t12(1))+cint(t12(2))
a4=oFile.Size
ares=a1+a2+a3+a4
'wscript.echo ares&vbclf&cstr(ares)
fichier.writeLine CRYPT(cstr(ares),"SAS_ANTIVIRUS" )
end if
Next
' parcours récursif des sous-dossiers
For Each oSubFolder in colFolders
Calcul_checksum strFolder & "\" & oSubFolder.name
Next
End Sub
Function CRYPT(CO,KE)
K="":X = 1
For A = 1 To Len(KE)
K = K & Asc(Mid(KE,X,1))
X = X + 1
Next
For F = 1 To 3
Y = 1
CF = ""
For V = 1 To -Int(-Len(CO)/Len(K))
X = 1
For G = 1 To Len(K)
K2 = CInt(Mid(K,X,1))
C = Asc(Mid(CO,Y,1))
W = C + K2
If W > 255 Then W = W - 255
If W = 0 Then W = 255
If W < 0 Then W = 255 + W
CF = CF & Chr(W)
X = X + 1
Y = Y + 1
If Y > Len(CO) Then Exit For
Next
Next
CO = CF
K = Len(K) & strReverse(K) & Mid(K,1,1)
Next
CRYPT=CO
End Function
sub Start_MCAFEE()
wshshell.Run "cmd /C """&""""&MCAFEE&""""&" "&LECTEUR&": /autoexit"&"""",0,True
set strm= CreateObject("adodb.stream" )
strm.Charset= "utf-8"
strm.Type=2
strm.open
strm.LoadFromFile McAFEE_LOG
content=strm.ReadText
strm.close
lignes=split(content,vbNewLine)
MCAFEE_Content=""
For i=NbLignesPrecedentes_McAFEE_LOG To UBound(lignes)
MCAFEE_Content=MCAFEE_Content&vbCrLf&lignes(i)
next
if instr(MCAFEE_Content,"Processus détectés : 0" )=0 or _
instr(MCAFEE_Content,"Secteurs d'amorçage détectés : 0" )=0 or _
instr(MCAFEE_Content,"Fichiers avec des détections : 0" )=0 or _
instr(MCAFEE_Content,"Détections de fichiers : 0" )=0 then
'###### VIRUS PRESENT ######
'wshshell.Run "notepad "&MCAFEE_LOG,3,False
wscript.echo "Virus détéctés !!!"&vbNewLine&"Veuillez enlever et remettre la clef pour la rescanner !"&vbcrlf&MCAFEE_Content
nbvirus=nbvirus+1
end if
end sub
sub Start_CLAMWIN()
If objFSO.FileExists(LOGG) Then
objFSO.deleteFile LOGG,True
End If
wshshell.Run "cmd /C """&""&""""&CLAMSCAN&""""&" --tempdir "&""""&TEMPDIR&""""&" --keep-mbox --stdout --database="&""""&DATABASE&""""&" --log="&""""&LOGG&""""&" --infected --max-files=500 --max-scansize=150M --max-recursion=50 --max-filesize=100M --show-progress --recursive --exclude=""[^\]*\.dbx$"" --exclude=""[^\]*\.tbb$"" --exclude=""[^\]*\.pst$"" --exclude=""[^\]*\.dat$"" --exclude=""[^\]*\.log$"" --exclude=""[^\]*\.evt$"" --exclude=""[^\]*\.nsf$"" --exclude=""[^\]*\.ntf$"" --exclude=""[^\]*\.chm$"" --kill """&LECTEUR&":\\""""",3,True
set objTS=objFSO.OpenTextFile(LOGG,1)
content=objTS.ReadAll
objTS.close
lignes=split(content,vbNewLine)
CLAMWIN_Content=""
For i=NbLignesPrecedentes_LOGG To UBound(lignes)
CLAMWIN_Content=CLAMWIN_Content&vbCrLf&lignes(i)
next
if instr(CLAMWIN_Content,"Infected files: 0" )=0 then
'###### VIRUS PRESENT ######
Lecture_OK=True
VIRUS=""
nbVirus=0
for Each ligne in lignes
if ligne="----------- SCAN SUMMARY -----------" then Lecture_OK=False
if mid(ligne,1,1)<>"" and mid(ligne,1,1)<>"-" and Lecture_OK then
VIRUS=VIRUS&ligne&vbNewLine
nbVirus=nbVirus+1
end if
next
if nbvirus<>0 then
wscript.echo nbVirus&" virus détécté !!!"&vbNewLine&"Veuillez Supprimer les fichiers concernés :"&vbNewLine&VIRUS&vbcrlf&vbcrlf&"Après la suppression, enlevez et rescannez la clef !!!"
end if
' wscript.quit
end if
' ##### pas de Virus ####
'if nbVirus=0 then wscript.echo "CLEF PROPRE, Aucun Virus !!!"
end sub
sub Test_decouverte_nouveau_lecteur()
TROUVE=False
NEW_EXCLU=""
Lecteur=""
'on error resume next
For Each objDrive in colDrives
If InStr(EXCLU,objDrive.DriveLetter)=0 Then
TROUVE=True
LECTEUR=objDrive.DriveLetter
End If
If InStr(NEW_EXCLU,objDrive.DriveLetter)=0 Then
NEW_EXCLU=NEW_EXCLU&objDrive.DriveLetter
end if
Next
'on error goto 0
if len(NEW_EXCLU)>0 then EXCLU=NEW_EXCLU
end sub
sub analyser_ancien_journaux_logs()
' on error resume next
err.clear
' objFSO.DeleteFile LOGG,True
MCAFEE_Content=""
CLAMWIN_Content=""
NbLignesPrecedentes_LOGG=0
Set objFile = objFSO.OpenTextFile(LOGG, 1)
if err.Number=0 then
Do Until objFile.AtEndOfStream
objFile.ReadLine
NbLignesPrecedentes_LOGG=NbLignesPrecedentes_LOGG+1
Loop
objFile.Close
end if
err.clear
' objFSO.DeleteFile MCAFEE_LOG,True
NbLignesPrecedentes_MCAFEE_LOG=0
Set objFile = objFSO.OpenTextFile(MCAFEE_LOG, 1)
if err.Number=0 then
Do Until objFile.AtEndOfStream or err.Number<>0
objFile.ReadLine
NbLignesPrecedentes_MCAFEE_LOG=NbLignesPrecedentes_MCAFEE_LOG+1
Loop
objFile.Close
end if
err.clear
' on error goto 0
end sub
sub Decouverte_des_lecteurs_actuels()
For Each objDrive in colDrives
If InStr(EXCLU,objDrive.DriveLetter)=0 Then
EXCLU=EXCLU&objDrive.DriveLetter
End If
Next
end sub
sub Preparation_des_objets()
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set colDrives = objFSO.Drives
set wshshell = createobject("wscript.shell" )
Set env=wshshell.Environment("process" )
end sub
sub Reglages_des_variables()
CLAMSCAN=env("ProgramFiles" )&"\ClamWin\bin\clamscan.exe"
MCAFEE=env("ProgramFiles" )&"\McAfee\VirusScan Enterprise\scan32.exe"
TEMPDIR=env("temp" )
DATABASE=env("ALLUSERSPROFILE" )&"\.clamwin\db"
LOGG=env("temp" )&"\logsCLAMAV.txt"
McAFEE_LOG=env("DEFLOGDIR" )&"\OnDemandScanLog.txt"
RESULTAT="CLEF_PASSE_EN_STATION_BLANCHE.DAT"
EXCLU=""
VIRUS=""
nbVirus=0
end sub
sub FermerTAG()
if (IsNull(fichier) = False) And (IsEmpty(fichier) = False) Then
tagFerme = False
Do
'MsgBox "je ferme le TAG"
fichier.Close
If err<>0 then
'MsgBox("FermerTAG ERREUR : "&err&" - "&err.Description&"." )
err.Clear
Else
'MsgBox("TAG fermé" )
tagFerme = True
End If
Wscript.Sleep 100
Loop Until tagFerme
End If
end sub
sub Ejecter_cle()
cleNonEjecte = True
Do
'MsgBox "J'éjecte la clé : "&LECTEUR
'MsgBox "test 1 (éjection de "&LECTEUR&" ): "& objFSO.DriveExists(LECTEUR)
wshshell.Run "deveject.exe -EjectDrive:"&LECTEUR&":",0,True
'wshshell.Run "deveject.exe -EjectDrive:I:"
cleNonEjecte = objFSO.DriveExists(LECTEUR)
'MsgBox "test 2 (éjection de "&LECTEUR&" ): "& cleNonEjecte
'If (err<>0) then
' 'MsgBox("Ejecter_cle ERREUR : "&err&" - "&err.Description&"." )
err.Clear
'Else
' 'MsgBox("clé éjecté" )
cleEjecte = True
'End If
Wscript.Sleep 100
Loop Until cleNonEjecte = False
Test_decouverte_nouveau_lecteur()
end Sub