;installation de KASPERSKY ANTIVIRUS FOR WINDOWS WORKSTATION 6.0.3.837 à partir du fichier kav6.0.3.837_winwksfr.exe
;JEAN-RENE DANIS 03-12-08
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit la destination temporaire :
$dossierprov = '%systemdrive%\install\kav6.0.3.837_winwksfr'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'
;Création du dossier pour mettre le fichier log si ce dossier n'existe pas
IF NOT EXIST ($DossierDeLog)
MD $DossierDeLog
ENDIF
;Ouverture du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
?? "Ouverture de " + @SCRIPTNAME + " à " + @TIME
ELSE
? "Impossible de créer le fichier log"
GOTO "finerreur"
ENDIF
;verifie la présence de 7zip
IF EXIST ($SEI_7Z)
? "$SEI_7Z existe."
ELSE
? "L'installation necessite un logiciel de décompression."
? "$SEI_7Z n'esiste pas, installez le puis recommencer."
GOTO "finerreur"
ENDIF
;determine le chemin du dossiers "program files" pour les applications 32 bits
;Dans le cas d'un système d'exploitation 64 bits : les applications 32 bits sont dans le dossiers ProgramFilesDir (x86).
$PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir (x86)")
IF $PRGDIR =""
;Si ProgramFilesDir (x86) n'exite pas : c'est que le sysème d'exploitation est 32bits, dans ce cas les applications 32bits sont dans le dossier ProgramFilesDir.
$PRGDIR=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion","ProgramFilesDir")
ENDIF
? 'Chemin du dossiers "program files" pour les applications 32bits : $PRGDIR'
;verifie si le logiciel est déjà installé
IF EXIST ("$PRGDIR\Kaspersky Lab\Kaspersky Anti-Virus 6.0 for Windows Workstations\avp.com")
? "Kaspersky Anti-Virus 6.0 for Windows Workstations existe sur cet ordinateur."
GOTO "finerreur"
ELSE
? "Kaspersky Anti-Virus 6.0 for Windows Workstations n'existe pas sur cet ordinateur."
ENDIF
cd @SCRIPTDIR\
;Décompression du fichier
$fichieradecomp = 'kav6.0.3.837_winwksfr.exe'
$destinationdeladecomp = $dossierprov
$commande='"$SEI_7Z\7z.exe" x -o$destinationdeladecomp $fichieradecomp'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
copy "*.cfg" "$dossierprov\"
copy "*.key" "$dossierprov\"
;Creation du fichier setup.ini
IF RedirectOutput("$dossierprov\setup.ini") = 0
? "[Setup]"
? "Reboot=no"
? "SelfProtection=yes"
?? "[Components]"
? "FileMonitor=yes"
? "MailMonitor=yes"
? "WebMonitor=yes"
? "ProactiveDefence=yes"
? "AntiSpy=yes"
? "AntiHacker=yes"
? "AntiSpam=yes"
?? "[Tasks]"
? "ScanMyComputer=yes"
? "ScanStartup=yes"
? "ScanCritical=yes"
? "Updater=yes"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : setup.ini"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer le fichier setup.ini"
ENDIF
;Lancement du programme d'installation
$commande='msiexec /i $dossierprov\kav6ws.fr.msi /qn'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;Importe les dernieres mises à jour du logiciel et des module depuis le serveur local
;dans la variable $ServeurDeMiseAJourKAV, je renseigne le serveur source des mises à jour.
;pour utiliser la valeur par defaut de l'application mettre $ServeurDeMiseAJourKAV = ""
$ServeurDeMiseAJourKAV = "kaspersky_sei"
? "Importation des mise à jour depuis le serveur $ServeurDeMiseAJourKAV..."
$commande='"$PRGDIR\Kaspersky Lab\Kaspersky Anti-Virus 6.0 for Windows Workstations\avp.com" UPDATE $ServeurDeMiseAJourKAV'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
;label pour effacer le dossier temporraire
:effacedossiertmp
;effacement d'un dossier
$dossierasupprimer = $dossierprov
del $dossierasupprimer + "\*.*" /c /f /s
rd $dossierasupprimer /s
IF NOT EXIST ($dossierasupprimer)
? "Le dossier : " + $dossierasupprimer + " a été supprimé"
ELSE
? "Le dossier : " + $dossierasupprimer + " n'a pas été supprimé complétement"
ENDIF
GOTO "fin"
;label de fin avec erreurs
:finerreur
? "fin du script d'installation : erreur"
;Ouverture du fichier log pour signaler la présence d'erreurs
IF RedirectOutput($DossierDeLog + "ERREUR_" + @SCRIPTNAME +".txt") = 0
?? "Ouverture de erreur_" + @SCRIPTNAME + " à " + @TIME
? "le script d'installation à rencontrer des erreurs : consulter le fichier log :"
? $DossierDeLog + @SCRIPTNAME +".txt"
ENDIF
IF EXIST ($dossierprov)
? "Suppression du dossier temporaire $dossierprov"
goto "effacedossiertmp"
ENDIF
;label de fin sans erreurs
:fin
? "fin du script d'installation"
;annule la redirection vers un fichier
RedirectOutput("")
|