Scripts d'installation silencieuseAdvance Structure 3.1 et du patch SP2
Voici un script qui permet d'installer Advance Structure 3.1 SP2 sans assistance en Kixtart.
Principe
Mettre les 7 fichiers suivants dans le même dossier :
Advance_ST_3.1_patch2.7z contient les fichiers d'installation téléchargé sur le site de Graitec et recompressé
NETHASP.INI : (facultatif) fichier contenant l'adresse du serveur de licence
install.bat : décrit ci-dessous
AdvanceStructure31SP2.kix : décrit ci-dessous
setup.iss : paramètre d'installation de ADDBDeploy décrit ci-dessous
ShellCmd.udf : fonction Kixtart pour lancer des lignes de commande
Pour installer Advance Structure 3.1 SP2 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 Advance Structure 31SP2
@echo JEAN-RENE DANIS 02/10/08
@echo .......................................
kix32 AdvanceStructure31SP2.kix
Contenu du AdvanceStructure31SP2.kix (télécharger ce script en pdf couleur ici)
;installation de Advance Structure 3.1SP2 à partir du fichier AdvanceStructure31SP2.7z
;JEAN-RENE DANIS 02/10/08
;Liste des variable(s)
;variable qui définit l'emplacement du fichier log
$DossierDeLog = "%systemdrive%\install\log\"
;variable qui définit des fichiers d'installation (copie du CD) :
$dossierinstall = '%systemdrive%\install'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'
;variables qui définisse le fichier MSI de la version 3.1SP1 de AdvanceStructure :
$msiversion31 = 'OLDMSI\AdvanceDesign.msi'
;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 : ShellCMD
;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 = "ShellCmd.udf"
IF $existShellCMD = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existShellCMD = "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 systeme d'exploitation est en anglais ou en francais
IF EXIST ("%SYSTEMDrive%\Documents and Settings\Administrator")
$LNGSEI="GB"
ELSE
$LNGSEI="FR"
ENDIF
? "Langue : " + $LNGSEI
;determine le chemin du dossier du bureau en fonction de la langue et du system d'exploitation
Select
Case @PRODUCTTYPE = "Windows 2000 Professional"
$ALLUSERBUREAU = "%ALLUSERSPROFILE%\bureau"
Case @PRODUCTTYPE = "Windows XP Professional"
IF $LNGSEI="FR"
$ALLUSERBUREAU = "%ALLUSERSPROFILE%\bureau"
ELSE
IF $LNGSEI="GB"
$ALLUSERBUREAU = "%ALLUSERSPROFILE%\Desktop"
ENDIF
ENDIF
Case @PRODUCTTYPE = "Windows Vista Business Edition"
$ALLUSERBUREAU = "%public%\desktop"
EndSelect
? "Chemin du bureau : " + $ALLUSERBUREAU
;creation du dossier de destination des fichiers d'install
IF NOT EXIST ($dossierinstall)
MD $dossierprov
? "Le dossier : " + $dossierinstall + " a été créé."
ELSE
? "Le dossier : " + $dossierinstall + " existe déjà."
ENDIF
;Verifie si le programme est déjà installé et le desinstallé
$prgatester = $progx86 + "\Graitec\Advance Structure 3.1\bin"
IF EXIST ($prgatester)
$cmd_sei = 'msiexec /x ' + $msiversion31 + ' /qb-!'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
ELSE
? "Le programme n'est pas déjà installé : lancement de l'installation."
ENDIF
;Efface le dossier d'install de l'ancienne version (3.1+SP1)
;effacement d'un dossier
$dossierasupprimer = $dossierinstall + '\AdvanceStructure31'
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
;efface l'ancien fichier ini
del $progx86 + "\Graitec\Advance Structure 3.1\bin\NETHASP.INI" /c /f /s
;décompression d'un fichier
$fichieradecomp = "Advance_ST_3.1_patch2.7z"
$destinationdeladecomp = $dossierinstall
IF EXIST ($fichieradecomp)
$cmd_sei = '"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
ELSE
? "Décompression impossible"
GOTO "finerreur"
ENDIF
;décompression d'un fichier
$fichieradecomp = $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy.exe'
$destinationdeladecomp = $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy'
IF EXIST ($fichieradecomp)
$cmd_sei = '"'+$SEI_7Z+'\7z.exe" x -o' + $destinationdeladecomp + ' ' + $fichieradecomp
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
ELSE
? "Décompression impossible"
GOTO "finerreur"
ENDIF
;installation de ADDBDeploy.exe
? "COPY setup.iss " + $dossierinstall + "\Advance_ST_3.1_patch2\Redist\ADDBDeploy\disk1\setup.iss"
COPY 'setup.iss' $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy\disk1\setup.iss'
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF
$cmd_sei = $dossierinstall + '\Advance_ST_3.1_patch2\Redist\ADDBDeploy\disk1\setup.exe -s'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
;installation de advance structure 3.1SP2
$cmd_sei = 'msiexec /i ' + $dossierinstall + '\Advance_ST_3.1_patch2\MSI\AdvanceDesign.msi /passive /norestart'
? $cmd_sei
$codrec = shellcmd('"$cmd_sei"',0)
IF $codrec <> 0
? "Erreur n° " + $codrec
GOTO "finerreur"
ENDIF
;copie du fichier ini contenant l'adresse du serveur de licence
?"COPY NETHASP.INI " + $progx86 + "\Graitec\Advance Structure 3.1\bin\NETHASP.INI"
COPY "NETHASP.INI" $progx86 + "\Graitec\Advance Structure 3.1\bin\NETHASP.INI"
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
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
sleep 5
;label de fin sans erreurs
:fin
? "fin du script d'installation"
Contenu du fichier setup.iss pour l'installation de ADDBDeploy (une dépendance de Advance Structure 3.1)
[InstallShield Silent]
Version=v6.00.000
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[Application]
Name=Advance Design Database Deploy
Version=1.00
Company=Graitec
Lang=0009
[{058B7CBA-E34B-43EC-9DE5-6DEE2133040D}-DlgOrder]
Dlg0={058B7CBA-E34B-43EC-9DE5-6DEE2133040D}-SdFinish-0
Count=1
[{058B7CBA-E34B-43EC-9DE5-6DEE2133040D}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
[{2D873FF2-B096-4CDF-8173-7B512EA0B945}-DlgOrder]
Count=0
[{3404667C-31F3-4AEE-91E3-BFF05EF1C3DD}-DlgOrder]
Count=0
[{11BF43E3-4B13-44AA-B081-3FCBA0AFC47E}-DlgOrder]
Count=0
[{4BA8B794-EB05-4F22-9B20-C244DB8C2DFF}-DlgOrder]
Count=0
[{D6D0D1CF-E7EB-4EC9-936C-FD5401269401}-DlgOrder]
Count=0
[{031D25FF-F978-4A74-926A-6734490B6FAD}-DlgOrder]
Count=0
[{B5915F97-6D10-4869-943E-A15D4DA39E95}-DlgOrder]
Count=0
[{28E5DE03-2ED0-44E5-A411-04BD5856D497}-DlgOrder]
Count=0
[{FA8CEE01-8C1B-4813-AB0B-CDA15E76216C}-DlgOrder]
Count=0
[{812135D5-44EE-4FBB-A7AD-231D15946C91}-DlgOrder]
Count=0
[{F80E02D1-6A78-4980-9925-13E2385CE8C6}-DlgOrder]
Count=0
mercredi 1 octobre 2008
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire