Unattended : Utiliser la fonctionnalité RunOnceEx

   Mais pourquoi faire ? 

          Ce fichier va gérer vos installations silencieuses, soit à -12 minutes de la fin de l'installation de XP (à l'aide d'une astuce), soit au premier login de l'utilisateur (qui peut être automatique). C'est une méthode que je préfère aux classiques .bat/.cmd lancés par cmdlines.txt pour son esthétisme et sa plus grande souplesse.

Pour utiliser le fichier RunOnceEx.cmd, nous allons créer un petit fichier nommé cmdlines.txt dans le répertoire $OEM$. Ce fichier au format texte ne va contenir que 2 lignes :

[Commands]
"RunOnceEx.cmd"


Le fichier RunOnceEx.cmd est également placé dans $OEM$...

Voilà le contenu typique (raccourci et commenté) d'un RunOnceEx.cmd :

REM cmdow sert à cacher la hideuse fenêtre noire de ce CMD (à mettre dans $OEM$\$$\System32 par exemple)... Disponible ici.

cmdow @ /HID
@echo off


REM Variable avec la dernière version d'AV qui sera gravée sur le CD (sert plus loin et évite de
REM chercher la modif. à faire à chaque changement de signature + gravure.

SET SDAT=4688


REM On attribue à la variable KEY le nom de la clé ou tout va être écrit...

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx


REM La commande REG ADD permet d'écrire des clés/valeurs dans le registre

REM On donne un titre à la boîte qui va afficher l'avancement des installations

REG ADD %KEY% /V TITLE /D "1/3 - Installations et personnalisations" /f


REM On écrit une clé 005 dont la valeur par défaut sera le titre de la manipulation en cours
REM         (ne mettez pas de lettres accentuées, elles ne s'affichent pas correctement)
REM Le N° de la clé détermine l'ordre d'installation. Laisser de la place entre les N°, ça peut servir...
REM Dans cette même clé, on écrit une valeur avec le nom "1" qui contient la commande à passer

REG ADD %KEY%\005 /VE /D "Desactivation du service Mise a jour automatique" /f
REG ADD %KEY%\005 /V 1 /D "sc config wuauserv start= disabled" /f


REM      ...     Quelques manips plus tard      ...

REM Voici un cas différent :
REM 1) On exécute 2 commandes (valeurs 1 et 2)
REM 2) Le winrar.bat est trop rapide et on doit temporiser à l'aide de l'utilitaire sleep.exe
REM       (à mettre au même endroit que cmdow. Vous pouvez le trouver ici ou le remplacer
REM        par un :
%comspec% /c cmdow @ /HID&ping -n 31 127.0.0.1             à tester
REM         pour 30 secondes à attendre...
REM         le signe & permet d'enchainer 2 commandes sur la même ligne...)

REG ADD %KEY%\017 /VE /D "WinRAR" /f
REG ADD %KEY%\017 /V 1 /D "%systemdrive%\Apps\WinRAR\winrar.bat" /f
REG ADD %KEY%\017 /V 2 /D "%comspec% /c cmdow @ /HID&sleep 30" /f


REM Un exemple de ce qu'il faut bidouiller pour s'en sortir avec certaines installations...

REG ADD %KEY%\030 /VE /D "Acrobat Reader 7.0.5 FR" /f
REG ADD %KEY%\030 /V 1 /D "%systemdrive%\Apps\AR7\AdobeR~1.msi TRANSFORMS=%systemdrive%\Apps\AR7\AdobeR~1.mst /qb" /f


REM Commande pour ajouter un administrateur du nom de adm1n avec mot de passe
REM le \ avant le " permet de "l'échapper" (nécessaire quand on veut écrire des commandes avec guillemets)

REG ADD %KEY%\065 /VE /D "Ajout de ADM1N" /f
REG ADD %KEY%\065 /V 1 /D "net user \"adm1n\" MotDePasse /add" /f
REG ADD %KEY%\065 /V 2 /D "net localgroup Administrateurs \"adm1n\" /add" /f
REG ADD %KEY%\065 /V 3 /D "net accounts /maxpwage:unlimited" /f


REM Voilà un point très important : si on n'utilise pas cette commande, ce que l'on vient d'écrire
REM dans le registre ne sera exécuté qu'au premier login d'un utilisateur...

REM Le système va donc maintenant exécuter les différentes commandes, puis nettoyer automatiquement
REM du registre ce qui a été exécuté...

REM ---------- LANCER A -12 minutes ------------------
start /wait rundll32.exe iernonce.dll,RunOnceExProcess


REM ---------------------AV MCAFEE---------------------

REM On a exécuté les valeurs précédentes...   On remet ça !

REG ADD %KEY% /V TITLE /D "2/3 - AntiVirus McAfee" /f

REM Petite astuce esthétique pour lancer l'install. de McAfee et
REM attendre 60 secondes tout en gardant la progression affichée...

REG ADD %KEY%\075 /VE /D "McAfee" /f
REG ADD %KEY%\075 /V 1 /D "%comspec% /c cmdow @ /HID&sleep.exe 60" /f

REG ADD %KEY%\080 /VE /D "Suppr fich. install progs" /f
REG ADD %KEY%\080 /V 1 /D "%systemdrive%\inst\CleanApps.cmd" /f

start /wait %systemdrive%\Apps\VSC\Setup.exe /q

REM Vous avez suivi ? On écrit le registre et on lance l'installation séparément...
REM Pourquoi ? Tout simplement à cause du système d'installation de McAfee :
REM le setup.exe lance un processus secondaire et se coupe tout de suite. Donc,
REM il rend la main et le iernonce continue en croyant que c'est fini, ce qui est faux !

REM l'astuce utilisée est simple : On lance l'install directement et on lance le Processus
REM RunOnceExProcess qui va se contenter... d'attendre 60 secondes ! (temps estimé
REM suffisant pour laisser cette application s'installer.

REM ---------- LANCER A -12 minutes ------------------
start /wait rundll32.exe iernonce.dll,RunOnceExProcess

REM Hop, 3ème fois...    :-)))

REG ADD %KEY% /V TITLE /D "3/3 - Installations et personnalisations 2" /f

REG ADD %KEY%\275 /VE /D "DirectX 9 c" /f
REG ADD %KEY%\275 /V 1 /D "%systemdrive%\patchs\DX9c\dxsetup.exe /silent" /f

REM Ce bat est dispo ici...

REG ADD %KEY%\285 /VE /D "Copie du I386 (LONG : Patienter)" /f
REG ADD %KEY%\285 /V 1 /D "%systemdrive%\inst\cpy_i386.bat" /f


REM Diverses modifications du registre...

REG ADD %KEY%\290 /VE /D "Configuration du registre" /f
REG ADD %KEY%\290 /V 1 /D "REGEDIT /S %systemdrive%/bin_inst/registre.reg" /f
REG ADD %KEY%\290 /V 2 /D "REGEDIT /S %systemdrive%/bin_inst/explorer.reg" /f
REG ADD %KEY%\290 /V 3 /D "REGEDIT /S %systemdrive%/bin_inst/HKU_def.reg" /f


REM ---------- LANCER A -12 minutes ------------------
start /wait rundll32.exe iernonce.dll,RunOnceExProcess


REM ----------LE RESTE SERA LANCE AU LOGIN------------

REG ADD %KEY% /V TITLE /D "Installations et personnalisations 3" /f

REG ADD %KEY%\506 /VE /D "Installation SDAT %SDAT%" /f
REG ADD %KEY%\506 /V 1 /D "%systemdrive%\RunOnce\sdat%SDAT%.exe /F /SILENT" /f


REM J'utilise ici un utilitaire de JCB et une autre astuce pour obtenir un affichage correct.

REG ADD %KEY%\515 /VE /D "Resolution de l'ecran" /f
REG ADD %KEY%\515 /V 1 /D "%windir%\Setvideo x=1280 y=1024 b=32 f=60" /f
REG ADD %KEY%\515 /V 2 /D "%windir%\Setvideo x=1024 y=768 b=32 f=60" /f
REG ADD %KEY%\515 /V 3 /D "%windir%\Setvideo x=1024 y=768 b=32 f=70" /f
REM (on demande deux fréquences, le système applique celle qui est compatible)


REM UPHclean a été placé dans
$OEM$\$$\System32

REG ADD %KEY%\520 /VE /D "UPHClean (MS) (protection du registre)" /f
REG ADD %KEY%\520 /V 1 /D "%systemdrive%\windows\system32\uphclean.exe -install" /f


REM Bat de nettoyage final des fichiers qui ne sont plus nécessaires...
REM et éventuel ajout d'un dernier point de lancement pour un VBS de configuration interactif dans :
REM      C:\Documents and Settings\All Users\Menu Démarrer\Programmes\Démarrage

REG ADD %KEY%\525 /VE /D "Nettoyage" /f
REG ADD %KEY%\525 /V 1 /D "%systemdrive%\RunOnce\RunOnce.bat" /f
REG ADD %KEY%\525 /V 2 /D "%comspec% /c cmdow @ /HID&sleep 10" /f

EXIT



Vous pouvez maintenant graver, si vous le désirez, un CD d'installation de XP, mais il vous manque encore quelque chose... vous n'avez pas intégré les pilotes...