Header image
Jean-René DANIS
&

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
Microsoft Calculatrice Plus 1.0

 

Voici un script qui permet d'installer Microsoft Calculatrice Plus 1.0 sans assistance en Kixtart.

Ligne de commande : " msiexec /i @SCRIPTDIR\CalcPlus.msi /qn ALLUSERS="2" "

Principe

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

CalcPlus.msi (ce fichier peut être télechargé sur ce site de Microsoft: http://www.microsoft.fr )
install.bat : décrit ci-dessous
calcplus10.kix : décrit ci-dessous
GetExtFileProperties.udf : fonction Kixtart pour récuperer les attributs des fichiers

Pour installer Microsoft Calculatrice Plus 1.0 de manière silencieuse : double cliquer sur install.bat

Détail des scripts nécessaires

Contenu du fichier install.bat

Prompt
cls

@echo ...............................................
@echo INSTALLATION DE Microsoft Calculatrice Plus 1.0
@echo JEAN-RENE DANIS 02/10/08
@echo ...............................................

kix32 calcplus10.kix


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

;installation de Microsoft Calculatrice Plus 1.0 à partir du fichier CalcPlus.msi
;JEAN-RENE DANIS 02/10/08

;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

;Chargement d'une fonction : GetExtFileProperties
;Ce script charge une fonction sauf si elle a déjà été chargée.
;Verifier que le nom de la fonction à chargée est bien présent dans
;le nom de la variable $exist...des 2ieme et 7ieme lignes ci-dessou
$emplacementfonction = "GetExtFileProperties.udf"
IF $existGetExtFileProperties = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existGetExtFileProperties = "exist"
? "La fonction " + $emplacementfonction + " a été chargée"
ELSE
? "La fonction " + $emplacementfonction + " n'a pas été trouvée"
ENDIF
ENDIF

;determine le dossier "program files 32 bits" en fonction de l'architecture du systeme d'exploitation
IF @ONWOW64 = 1
$progx86 = "%SYSTEMDrive%\Program Files (x86)"
ELSE
$progx86 = "%SYSTEMDrive%\Program Files"
ENDIF
? "Dossier d'installation des programme 32bits :" + $progx86

;Verifie si le programme est déjà installé et affiche sa version
$prgatester = $progx86 + "\Microsoft Calculatrice Plus\CalcPlus.exe"
IF EXIST ($prgatester)
IF @PRODUCTTYPE = "Windows Vista Business Edition"
? "Le programme est déjà installé à la version : " + GetExtFileProperties($prgatester,145)
ELSE
? "Le programme est déjà installé à la version : " + GetExtFileProperties($prgatester,37)
ENDIF
GOTO "finerreur"
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF

;determine le chemin du burreau de tous les utilisateurs
$ALLUSERBUREAU=readvalue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Common Desktop")
? "Chemin du bureau : " + $ALLUSERBUREAU

;Installation du programme
$commande = 'msiexec /i @SCRIPTDIR\CalcPlus.msi /qn ALLUSERS="2"'
? $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 $ALLUSERBUREAU + '\Microsoft Calculatrice Plus' $ALLUSERBUREAU + "\Utilitaires\Microsoft Calculatrice Plus\"

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