|
Voici un script qui permet d'installer FileZilla
3.2.3.1 sans assistance en Kixtart.
Point supplémentaires :
-Le script désinstall les anciennes version de
Filezilla
-Le script ajout une liste de sites FTP dans le
gestionnaires de site et modifie les modes de transfert : passif/actif
pour cela il faut modifier les tableaux de variable citués au début du
script lignes 14 à 17. Paramètre de ligne de commande pour une installation silentieuse : FileZilla_3.2.3.1_win32-setup.exe /S Paramètre de ligne de commande pour une désinstallation silentieuse : %Dossier_d_install%\uninstall.exe /S
Principe
Mettre les 3 fichiers suivants dans le même
dossier :
FileZilla_3.2.3.1_win32-setup.exe (ce
fichier peut être télechargé sur le site de Filezilla : http://filezilla-project.org/
)
install.bat : décrit ci-dessous
FileZilla_3.2.3.1_win32.kix : décrit ci-dessous
Pour installer et parametrer FileZilla 3.2.3.1 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.3.1
@echo JEAN-RENE DANIS 03/04/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.3.1_win32.kix
)
Prompt
|
Contenu du fichier FileZilla_3.2.3.1_win32.kix
(télécharger ce script en pdf couleur ici)
;installation de FileZilla 3.2.3.1 à
partir du fichier FileZilla_3.2.3.1_win32-setup.exe
;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 03/04/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.31.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 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 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
;Verifie si le programme a déjà été installé par le setup de filezilla
$CleRegistreFileZilla = KeyExist("HKLM\SOFTWARE\FileZilla Client")
If $CleRegistreFileZilla
? "Une clé de registre FileZilla FTP Client a été
trouvé, lecture des informations : dossier d'installation et version
existante de FileZilla FTP Client"
$DossierInstallFileZilla = READVALUE
("HKLM\SOFTWARE\FileZilla Client", "")
$VersionFileZillaExistant = READVALUE
("HKLM\SOFTWARE\FileZilla Client", "Version")
? "Une version est installée :
$DossierInstallFileZilla : $VersionFileZillaExistant"
Endif
;Tentative de désinstallation de l'ancienne version
$prgatester = "$DossierInstallFileZilla\filezilla.exe"
IF EXIST ($prgatester)
? "Le programme est déjà installé :
tentative de déinstallation automatique"
IF EXIST
("$DossierInstallFileZilla\uninstall.exe")
;
désinstallation du programme FileZilla FTP Client
$commande
= '"$DossierInstallFileZilla\uninstall.exe" /S'
?
$commande
shell
'%COMSPEC% /c ' + $commande
IF @ERROR
<> 0
? "Erreur n° " + @ERROR
? "La désinstallation a échouée : il faut faire
une désinstallation manuelle"
GOTO "finerreur"
ENDIF
ENDIF
; attends la fin de la désinstallation
$UninstallFileZillaExist = 0
WHILE $UninstallFileZillaExist = 0
sleep 5
IF NOT
EXIST ("$DossierInstallFileZilla\uninstall.exe")
$UninstallFileZillaExist = 1
ENDIF
LOOP
sleep 5
IF EXIST ("$ALLUSERPRG\FileZilla FTP
Client")
;effacement d'un dossier du menu démarrer
DELPROGRAMGROUP ("FileZilla FTP Client",1)
IF NOT
EXIST ("$ALLUSERPRG\FileZilla FTP Client")
? "Le dossier : $ALLUSERPRG\FileZilla FTP Client a
été supprimé"
ELSE
? "Le dossier : $ALLUSERPRG\FileZilla FTP Client
n'a pas été supprimé complétement"
ENDIF
ENDIF
IF EXIST
("$ALLUSERPRG\Utilitaires\FileZilla FTP Client")
MOVE
"$ALLUSERPRG\Utilitaires\FileZilla FTP Client\" "$ALLUSERPRG\FileZilla
FTP Client\"
DELPROGRAMGROUP ("FileZilla FTP Client",1)
IF NOT
EXIST ("$ALLUSERPRG\FileZilla FTP Client")
? "Le dossier : $ALLUSERPRG\Utilitaires\FileZilla FTP Client
a été supprimé"
ELSE
? "Le dossier : $ALLUSERPRGVideoLAN ou
$ALLUSERPRG\Utilitaires\FileZilla FTP Client n'a pas été supprimé
complétement"
ENDIF
ENDIF
ELSE
? "Le programme n'est pas déjà installé :
lancement de l'installation."
ENDIF
;Si le programme existe encore c'est qu'il n'a pas été installé par le
setup
;désinstallation manuelle
$DossierFZ="$PRGDIR\FileZilla"
If EXIST ($DossierFZ)
? "Le logiciel a été trouvé dans le
dossier : $DossierFZ"
? "Une version est déjà installée sur
votre ordinateur."
? "Le programme va supprimer
l'installation existante et les raccourcis"
; suppression du dossier Filezilla
présent dans %programesfiles%
IF EXIST ($DossierFZ)
$dossierasupprimer = $DossierFZ
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"
GOTO "finerreur"
ENDIF
ENDIF
;suppression des raccourcis des
anciennes version
IF EXIST ("$ALLUSERPRG\FileZilla.lnk")
del
"$ALLUSERPRG\FileZilla.lnk" /c /f /s
IF NOT
EXIST ("$ALLUSERPRG\FileZilla.lnk")
? "Le fichier : $ALLUSERPRG\FileZilla.lnk a été
supprimé"
ELSE
? "Le fichier : $ALLUSERPRG\FileZilla.lnk n'a pas
été supprimé"
ENDIF
ENDIF
IF EXIST
("$ALLUSERPRG\Utilitaires\FileZilla.lnk")
del
"$ALLUSERPRG\FileZilla.lnk" /c /f /s
IF NOT
EXIST ("$ALLUSERPRG\Utilitaires\FileZilla.lnk")
? "Le fichier :
$ALLUSERPRG\Utilitaires\FileZilla.lnk a été supprimé"
ELSE
? "Le fichier :
$ALLUSERPRG\Utilitaires\FileZilla.lnk n'a pas été supprimé"
ENDIF
ENDIF
Endif
;installation du programme
$commande = 'FileZilla_3.2.3.1_win32-setup.exe /S'
? $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 Menu démarrer\Utilitaires créé...."
Endif
;Déplacement du raccourci dans dossier "menu démarrer\utilitaires"
? "Organisation des raccourcis"
MOVE $ALLUSERPRG + '\FileZilla FTP Client' $ALLUSERPRG +
"\Utilitaires\FileZilla FTP Client\"
; 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
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
|