Header image
Jean-René DANIS

 

   Retour à Script d'installation silencieuse                

  


Scripts d'installation silencieuse
ActivSync 4.5

 

Voici un script qui permet d'installer ActivSync 4.5 sans assistance en Kixtart.

De plus la séléction de l'ordinateur se fait en fonction de son numéro de série ce qui permet de ne pas installer ActivSync sur tous les PC.

Ligne de commande : "msiexec /i setup.msi /passive /norestart"

Principe

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

setup.msi (le fichier d'installation de ActivSynck 4.5, ce fichier peut être télechargé sur ce site : http://www.microsoft.fr )
install.bat : décrit ci-dessous
activsync45.kix : décrit ci-dessous
elligible.txt: décrit ci-dessous : contient la liste des numéros de série des ordinateurs sur lesquel ActivSync sera installé.
WMIQuery.udf : fonction Kixtart pour récuperer le numéro de série de l'ordinateur.

Pour installer ActivSync 4.5 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 ActivSync 4.5
@echo JEAN-RENE DANIS 14/11/08
@echo .............................

kix32 activsync45.kix




Contenu du fichier elligible.txt

___________A40
CND4431SFM

___________NX9105
44088186H

___________L810
GG93N1J
BMSS12J

___________L820
JKGXQ2J
BW28Q2J
1LGXQ2J
CWF8Y2J
F4NQT2J
8W28Q2J

___________L830
692NK3J
792NK3J
BS6973J
9ZJN43J
8DL973J




 

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

;installation de ActivSync 4.5 à partir du fichier setup.msi
;Installation uniquement sur des ordinateurs dont le numéro de serie fait parti de la liste elligible.txt
;Installation uniquement sur des ordinateurs dont le systeme d'exploitation est Windows XP
;JEAN-RENE DANIS 14/11/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

cd @SCRIPTDIR\

;Chargement d'une fonction : WMIQuery
;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 = "WMIQuery.udf"
IF $existWMIQuery = "exist"
? "La fonction " + $emplacementfonction + " a déjà été chargée"
ELSE
IF EXIST ($emplacementfonction)
CALL $emplacementfonction
$existWMIQuery = "exist"
? "La fonction " + $emplacementfonction + " a été chargée"
ELSE
? "La fonction " + $emplacementfonction + " n'a pas été trouvée"
ENDIF
ENDIF

;Verifie que le systeme d'exploitation est bien Windows XP
$TableauDeValeur = @PRODUCTTYPE,''
$ResultatRecherche = ASCAN($TableauDeValeur, 'Windows XP', , , 1)
; Retourne -1 si "Windows XP" n'exite pas dans @PRODUCTTYPE
IF $ResultatRecherche = -1
? "la chaine de caractère 'Windows XP' n'extiste pas dans la '@PRODUCTTYPE' "
GOTO "finerreur"
ENDIF

;verifie que le numéro de série de l'ordinateur fait parti de la liste elligible.txt
$ServiceTag = WMIQuery("SerialNumber","Win32_SystemEnclosure")[0]
? "Le numéro de série de l'ordnateur est : [$ServiceTag]"
? "Parcours de la liste des ordinateurs elligibles"
$scrresult = 0
IF Open(3, "elligible.txt") = 0
$x = ReadLine(3)
;parcours des lignes
WHILE @ERROR = 0
; compare la ligne avec le serial number du PC
if INSTR ($x, $ServiceTag)
$scrresult = 1
endif
$x = ReadLine(3)
LOOP
Close (3)
ELSE
? "Impossible d'ouvrir le fichier, code d'erreur : [" + @ERROR + "]"
GOTO "finerreur"
ENDIF
;affiche le résultat de la recherche
IF $scrresult = 1
?"L'ordinateur fait parti de la liste, l'installation peut commencer."
ELSE
?"L'ordinateur ne fait pas parti de la liste."
GOTO "finerreur"
ENDIF

;Installation du programme
$commande = 'msiexec /i setup.msi /passive /norestart'
? $commande
shell '%COMSPEC% /c ' + $commande
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"

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



 

 

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