Header image
Jean-René DANIS
&

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse et de personnalisation
FileZilla 3.2.0

 

Voici un script qui permet d'installer FileZilla 3.2.0 sans assistance en Kixtart.
Point supplémentaires : Le script ajout une liste de sites FTP dans le gestionnaires de site et modifie les modes de transfert : passif/actif

Principe

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

FileZilla_3.2.0_win32.zip (ce fichier peut être télechargé sur le site de Filezilla : http://filezilla-project.org/ )
install.bat : décrit ci-dessous
FileZilla_3.2.0_win32.kix : décrit ci-dessous

Pour installer et parametrer FileZilla 3.2.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 FileZilla 3.2.0
@echo JEAN-RENE DANIS 14/01/09
@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 FileZilla_3.2.0_win32.kix
)
Prompt



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

;installation de FileZilla 3.2.0 à partir du fichier FileZilla_3.2.0_win32.zip
;Modification des paramètres par défauts de FileZilla : langue, mode de transfert FTP passif ou actif)
;Ajout d'une liste de sites dans le "Gestionnaire de sites"
;JEAN-RENE DANIS 14/01/09 www.jrdanis.com

;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'
;variable qui définit le dossier de 7Zip ou se trouve 7z.exe :
$SEI_7Z = '%SYSTEMDrive%\Program Files\7-Zip'

;Liste des sites à créer dans le gestionnaire de sites de FileZilla
$TableauDesTitres= "SEI AIX-LES-BAINS", "SEI CASABLANCA", "SEI CRISSEY", "SEI DARDILLY", "SEI MOIRANS"
$TableauDesAdr= "172.18.83.10", "ftp.seicasablanca.com", "172.18.27.10", "172.18.27.10", "172.18.103.10"
$TableauDesMode= "0", "3", "0", "0", "0"

;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

;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'

;determine le chemin du dossier de "default user"
cd "%USERPROFILE%"
cd ".."
cd "Default User\"
$DEFUSERHOME=@CURDIR
? "Chemin du dossier de 'default user' : $DEFUSERHOME"

cd @SCRIPTDIR\

;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

;décompression d'un fichier
$fichieradecomp = 'FileZilla_3.2.0_win32.zip'
$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

;Copie d'un dossier
COPY "$dossierprov\FileZilla-3.2.0" "$PRGDIR\FileZilla\" /s

;Si le dossier "menu démarrer\Utilitaires" n'existe : le créer
If AddProgramGroup("Utilitaires", 1) = 0
? "Dossier Menu démarrer\Utilitaires créé...."
Endif

;création du raccourci
IF ADDPROGRAMITEM ('"$PRGDIR\FileZilla\FileZilla.exe"', "FileZilla", "", 0, "",0,0) = 0
? "Raccourci FileZilla créé...."
Endif

; Personalisation des paramètres de Filezilla pour les nouveaux profils
; Création du dossier où se situe le fichiers de paramètre :
MD "$DEFUSERHOME\application data\FileZilla\"
IF EXIST ("$DEFUSERHOME\application data\FileZilla\filezilla.xml")
DEL "$DEFUSERHOME\application data\FileZilla\filezilla.xml" /f /h
ENDIF
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\filezilla.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Settings>'
? ' <Setting name="Use Pasv mode" type="number">0</Setting>' ; Désactivation du mode passif
? ' <Setting name="Greeting version" type="string">3.2.0</Setting>' ; Désactivation du message de bienvenue
? ' </Settings>'
? '</FileZilla3>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : $DEFUSERHOME\application data\FileZilla\filezilla.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer le fichier $DEFUSERHOME\application data\FileZilla\filezilla.xml"
ENDIF

; Personalisation des paramètres de Filezilla pour le profil Courrant
; Création du dossier où se situe le fichiers de paramètre :
MD "%USERPROFILE%\application data\FileZilla\"
IF EXIST ("%USERPROFILE%\application data\FileZilla\filezilla.xml")
DEL "%USERPROFILE%\application data\FileZilla\filezilla.xml" /f /h
ENDIF
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\filezilla.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Settings>'
? ' <Setting name="Use Pasv mode" type="number">0</Setting>' ; Désactivation du mode passif
? ' <Setting name="Greeting version" type="string">3.2.0</Setting>' ; Désactivation du message de bienvenue
? ' </Settings>'
? '</FileZilla3>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : %USERPROFILE%\application data\FileZilla\filezilla.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer le fichier %USERPROFILE%\application data\FileZilla\filezilla.xml"
ENDIF

;Creation de la liste des sites pour les nouveaux profils
MD "$DEFUSERHOME\application data\FileZilla\"
IF EXIST ("$DEFUSERHOME\application data\FileZilla\sitemanager.xml")
DEL "$DEFUSERHOME\application data\FileZilla\sitemanager.xml" /f /h
ENDIF
? "Ecriture de l'entête de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\sitemanager.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Servers>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : entête de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : entête de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ENDIF
? "Ecriture du corps du fichier $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
$NumeroDeElement = 0
For Each $Element In $TableauDesTitres
? "$Element, " + $TableauDesAdr[$NumeroDeElement] + ", " + $TableauDesMode[$NumeroDeElement]
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\sitemanager.xml") = 0
? " <Server>"
? " <Host>" + $TableauDesAdr[$NumeroDeElement] + "</Host>"
? " <Port>21</Port>"
? " <Protocol>0</Protocol>"
? " <Type>0</Type>"
? " <User></User>"
? " <Logontype>" + $TableauDesMode[$NumeroDeElement] + "</Logontype>"
? " <TimezoneOffset>0</TimezoneOffset>"
? " <PasvMode>MODE_DEFAULT</PasvMode>"
? " <MaximumMultipleConnections>0</MaximumMultipleConnections>"
? " <EncodingType>Auto</EncodingType>"
? " <BypassProxy>0</BypassProxy>"
? " <Name>$Element</Name>"
? " <Comments></Comments>"
? " <LocalDir></LocalDir>"
? " <RemoteDir></RemoteDir>$Element"
? " </Server>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : corps de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : corps de $DEFUSERHOME\application data\FileZilla\sitemanager.xml pour site $NumeroDeElement"
ENDIF
$NumeroDeElement = $NumeroDeElement + 1
Next
? "Ecriture du pied de page de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("$DEFUSERHOME\application data\FileZilla\sitemanager.xml") = 0
? " </Servers>"
? "</FileZilla3>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : pied de page de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : pied de page de $DEFUSERHOME\application data\FileZilla\sitemanager.xml"
ENDIF

;Creation de la liste des sites pour l'utilisateur courrant
MD "%USERPROFILE%\application data\FileZilla\"
IF EXIST ("%USERPROFILE%\application data\FileZilla\sitemanager.xml")
DEL "%USERPROFILE%\application data\FileZilla\sitemanager.xml" /f /h
ENDIF
? "Ecriture de l'entête de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\sitemanager.xml") = 0
? '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'
? '<FileZilla3>'
? ' <Servers>'
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : entête de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : entête de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ENDIF
? "Ecriture du corps du fichier %USERPROFILE%\application data\FileZilla\sitemanager.xml"
$NumeroDeElement = 0
For Each $Element In $TableauDesTitres
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\sitemanager.xml") = 0
? " <Server>"
? " <Host>" + $TableauDesAdr[$NumeroDeElement] + "</Host>"
? " <Port>21</Port>"
? " <Protocol>0</Protocol>"
? " <Type>0</Type>"
? " <User></User>"
? " <Logontype>" + $TableauDesMode[$NumeroDeElement] + "</Logontype>"
? " <TimezoneOffset>0</TimezoneOffset>"
? " <PasvMode>MODE_DEFAULT</PasvMode>"
? " <MaximumMultipleConnections>0</MaximumMultipleConnections>"
? " <EncodingType>Auto</EncodingType>"
? " <BypassProxy>0</BypassProxy>"
? " <Name>$Element</Name>"
? " <Comments></Comments>"
? " <LocalDir></LocalDir>"
? " <RemoteDir></RemoteDir>$Element"
? " </Server>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : corps de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : corps de %USERPROFILE%\application data\FileZilla\sitemanager.xml pour site $NumeroDeElement"
ENDIF
$NumeroDeElement = $NumeroDeElement + 1
Next
? "Ecriture du pied de page de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
IF RedirectOutput("%USERPROFILE%\application data\FileZilla\sitemanager.xml") = 0
? " </Servers>"
? "</FileZilla3>"
;Reprise du fichier log et redirection des messages
IF RedirectOutput($DossierDeLog + @SCRIPTNAME + ".txt") = 0
? "Fichier créé : pied de page de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ELSE
GOTO "finerreur"
ENDIF
ELSE
? "Impossible de créer : pied de page de %USERPROFILE%\application data\FileZilla\sitemanager.xml"
ENDIF

;effacement d'un dossier
$dossierasupprimer = "$dossierprov\FileZilla-3.2.0"
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
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