Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
Skype 4.0

 

Voici un script qui permet d'installer Skype 4.0 sans assistance en Kixtart.
Le script détecte la présence de skype 3.8 et le desinstall automatiquement.

Ligne de commande : "SkypeSetup.exe /VERYSILENT /nogoogle /nodesktopicon"

Principe

Mettre les 3 fichiers suivants dans le même dossier :

SkypeSetup.exe : fichier d'installation téléchargé sur le site de skype : http://www.skype.com
install.bat : décrit ci-dessous
SkypeSetup.kix : décrit ci-dessous

Pour installer Skype 4.0 de manière silencieuse : double cliquer sur install.bat

Détail des scripts nécessaires

Contenu du fichier install.bat

Prompt $H
cls
@echo OFF

@echo .........................
@echo INSTALLATION DE Skype 3.8
@echo JEAN-RENE DANIS 15/10/08
@echo .........................

IF NOT EXIST %WINDIR%\system32\kix32.exe (
    @echo ......................................................................
    @echo CE SCRIPT NECESSITE LA PRESENCE DU FICHIER %WINDIR%\system32\kix32.exe
    @echo VOUS POUVEZ LE TELECHARGER ET LE COPIER A PARTIR DU SITE WEB :
    @echo www.kixtart.org
    @echo ......................................................................
    pause
) ELSE (
    @echo ON
    kix32 SkypeSetup.kix
)
Prompt






Contenu du SkypeSetup.kix (télécharger ce script en pdf couleur ici)

;installation de Skype 4.0 à partir du fichier SkypeSetup.exe
;desinstallation de skype 3.8 s'il est installé
;JEAN-RENE DANIS 27/02/09

;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"

;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

cd @SCRIPTDIR\

;determine le chemin du menu démarrer\programmes de tous les utilisateurs
$ALLUSERPRG=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Common Programs")
? "Chemin du menu démarrer\programmes : " + $ALLUSERPRG

;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 programme est déjà installé
$prgatester = $PRGDIR + "\Skype\Phone\Skype.exe"
IF EXIST ($prgatester)
   ? "Le programme est déjà installé"
   GOTO "desinstallation"
ELSE
   ? "Le programme n'est pas déjà installé : lancement de l'installation."
   GOTO "installation"
ENDIF

:desinstallation

;Verifie si le programme déja installé est skype 3.8
$prgatester = "%windir%\installer\{5C82DAE5-6EB0-4374-9254-BE3319BA4E82}\"
IF EXIST ($prgatester)
    ? "Skype 3.8 a été détecté : désinstallation en cours"
    ;desinstallation du programme
    $commande='msiexec /x {5C82DAE5-6EB0-4374-9254-BE3319BA4E82} /quiet'
    ? $commande
    shell '%COMSPEC% /c ' + $commande
    IF @ERROR <> 0
       ? "Erreur n° " + @ERROR
       GOTO "finerreur"
    ENDIF
    GOTO "installation"
ELSE
   ? "Le programme n'a pas pu être désinstallé"
   GOTO "finerreur"
ENDIF

;verifie si un dossier skype existe dans le menu démarrer, si oui : supprime le.
;suppression des raccourcis des anciennes version
IF EXIST ("$ALLUSERPRG\Skype")
    $dossierasupprimer = "$ALLUSERPRG\Skype"
    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
ENDIF

IF EXIST ("$ALLUSERPRG\Utilitaires\Skype")
    $dossierasupprimer = "$ALLUSERPRG\Utilitaires\Skype"
    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
ENDIF

:installation

;installation du programme
$commande='SkypeSetup.exe /VERYSILENT /nogoogle /nodesktopicon'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
   ? "Erreur n° " + @ERROR
   GOTO "finerreur"
ENDIF

;Si le dossier "menu démarrer\Utilitaires" n'existe : le créer
IF ADDPROGRAMGROUP ("Utilitaires",1) = 0
   ? "Dossier Utilitaires créé ou exist déjà"
ELSE
   ? "Erreur création dossier Utilitaires"
   GOTO "Finerreur"
ENDIF

;Déplacement du raccourci dans dossier "menu démarrer\utilitaires"
MOVE $ALLUSERPRG + '\Skype\' $ALLUSERPRG + "\Utilitaires\Skype\"


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
sleep 5

;label de fin sans erreurs
:fin
? "fin du script d'installation"

;annule la redirection vers un fichier
RedirectOutput("")


 

 

Vous pouvez poster vos commentaires sur mon blog : http://installation-silencieuse.blogspot.com