Header image
Jean-René DANIS

 

   Retour à Script d'administration et de connexion                

  


Script pour modification le fichier boot.ini sous Windows 2000 et Windows XP

 

Voici un script qui permet modifier le fichier boot.ini pour réduire le décompte du temps à 0 seconde.

Ce scripte fonctionne aussi bien pour Windows 2000 que pour Windows XP.

Principe

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

DecompteTempPasseDe30A00.kix : décrit ci-dessous
bootini1.exe : C'est un fichier compilé que j'avais fait en C mais je n'ai plus le code source. Il sert pour Windows 2000.
Il est disponible ici : bootini1.7z

Pour l'executer lancer la commande "kix32.exe DecompteTempPasseDe30A00.kix"

Détail des scripts

Contenu du fichier DecompteTempPasseDe30A00.kix disponnible en PDF couleur ici.

;Modification du boot.in de windows 2000,XP ou vista pour ramené de décomptage des secondes de 30 à 0 secondes
;A partir du fichier que j'avais fait en C quand j'étais plus jeune pour Windows 2000
;Malheureusement je n'ai plus le code source
;Sinon avec la commande bootcfg.exe pour Windows XP
;JEAN-RENE DANIS 18/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

;Lancement d'un commande en fonction du system d'exploitation
$TableauDeValeur = @PRODUCTTYPE,''
$ResultatRecherche = ASCAN($TableauDeValeur, 'Windows XP', , , 1)
; Retourne 0 si la chaine "Windows XP" est dans @PRODUCTTYPE
IF $ResultatRecherche = 0

? "Modification pour Windows XP : @PRODUCTTYPE"
$commande = 'bootcfg /timeout 0'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

ELSE

$ResultatRecherche = ASCAN($TableauDeValeur, 'Windows 2000', , , 1)
; Retourne 0 si la chaine "Windows 2000" est dans @PRODUCTTYPE
IF $ResultatRecherche = 0

? "Modification pour Windows 2000 : @PRODUCTTYPE"
;Déprotection d'un fichier
$FichierADeproteger = "c:\boot.ini"
? "Déprotection de $FichierADeproteger"
SETFILEATTR ($FichierADeproteger, 128)
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

;Installation du programme
$commande = '@SCRIPTDIR\bootini1.exe'
? $commande
shell '%COMSPEC% /c ' + $commande
IF @ERROR <> 2
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

;Protection d'un fichier
$FichierADeproteger = "c:\boot.ini"
? "Protection de $FichierADeproteger"
SETFILEATTR ($FichierADeproteger, 7)
IF @ERROR <> 0
? "Erreur n° " + @ERROR
GOTO "finerreur"
ENDIF

ELSE

? "Ce systeme d'exploitation n'est pas prise en compte"
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