Pour mon boulot, j'utilise un serveur doté de TFTPd32, qui me permet de faire une diffusion en PXE sur le réseau. Une image WIM est chargée de manière systématique, et un script est paramétré directement dans l'image WIM pour lancer le fichier SCRIPT.BAT, qui est stocké sur le serveur TFTP, dans un répertoire partagé.
Le hic est que j'ai un large panel de masters à installer, et de clients (sans compter toutes les procédures programmées que je lance après la restauration de l'image sur une machine).
Jusqu'à maintenant, je modifiais à la mano mon fichier SCRIPT.BAT, suivant le besoin : mais là, j'en ai eu marre, et voici le résultat
Code : Tout sélectionner
; ***************************************************************
; * Choix master - ECRIT PAR GHOST LINE - 2012 *
; ***************************************************************
; * Ce programme a pour but de simplifier le changement de *
; * script d'installation sur les serveurs PXE de la plateforme *
; ***************************************************************
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Selecteur", 226, 85, 476, 264)
$client = GUICtrlCreateCombo("client", 0, 0, 225, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$type = GUICtrlCreateCombo("type", 0, 32, 225, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$generer = GUICtrlCreateButton("Générer !", 160, 56, 65, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$ini_file = "C:\definition.ini"
$dest_file = "c:\ghost\script.bat"
$sectionnames = IniReadSectionNames($ini_file)
local $Namenliste
For $i = 1 To $sectionnames[0]
$Namenliste = $Namenliste & "|" & $sectionnames[$i]
Next
GUICtrlSetData($client, $Namenliste, $sectionnames[1])
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $client
$masternames = IniReadSection($ini_file,GUICtrlRead($client))
$masterliste = ""
For $i = 1 To $masternames[0][0]
$masterliste = $masterliste & "|" & $masternames[$i][0]
Next
GUICtrlSetData($type, $masterliste, $masternames[1][0])
Case $generer
FileWrite(FileOpen($dest_file,2),IniRead($ini_file,GUICtrlRead($client),GUICtrlRead($type),"NotFound"))
Exit
EndSwitch
WEnd
Code : Tout sélectionner
[CELIO]
Master caisse français = ghost32.exe -clone,mode=restore,src="y:\CELIO\master fr\WincorV9\WINFRAV9.GHO",dst=1 -sure -crcignore -or
Master caisse italien = ghost32.exe -clone,mode=restore,src="y:\\CELIO\master italie celio\MasterV4\WINCOR V4 ITALIE.GHO",dst=1 -sure -crcignore -or
Master caisse espagnol = ghost32.exe -clone,mode=restore,src="y:\CELIO\MASTER ESP V3\WINCORV3ESP.GHO",dst=1 -sure -crcignore -or
Master caisse belge fr =ghost32.exe -clone,mode=restore,src="y:\CELIO\Wincor BL FRA V3\WincorV3BELFRA.GHO",dst=1 -sure -crcignore -or
Master caisse belge fl = ghost32.exe -clone,mode=restore,src="y:\CELIO\Wincor BL FLA V3\WincorBELFLAMANDV3.GHO",dst=1 -sure -crcignore -or
Master Dell 390 = ghost32.exe -clone,mode=restore,src="y:\CELIO\celio PC DELL 390 V1\pc DELL 390.GHO",dst=1 -sure -crcignore -or
[TOTAL]
Master caisse = y:\total\script_total.bat
[PICARD]
Master caisse = y:\picard\script_picard.bat