Jump to content

Recommended Posts

Posted (edited)

Hi,

I'm actually working on a custom XP SP3 installation, based on a msdn version.

My goal is to write scripts to remove unwanted components, then to create a new master of the XP SP3 cd

I can't use nlite, and I can use only batch scripts.

here is a sample of a script I wrote to remove games components :


@echo off

REM Configuration file :
REM - games.inf
REM
REM External files :
REM - layout.inf
REM - txtsetup
REM - dosnet.inf
REM - sysoc.inf (games.inf)
REM - hivesft.inf
REM - hiveusd.inf
REM
REM Modules :
REM - Freecell
REM - Hearts
REM - Minesweeper
REM - Solitaire
REM - Spider


set backupDir="..\Backup ISO files"
set componentDir="Games"
set i386Dir="..\..\cd\i386"
set hiveUSDRef="Games.hiveusd"
set hiveSFTRef="Games.hivesft"


if not exist %backupDir% mkdir %backupDir%
if not exist %backupDir%\%componentDir% mkdir %backupDir%\%componentDir%

echo * Backup files :
move %i386Dir%\games.in_ %backupDir%\%componentDir%

echo - Freecell
move %i386Dir%\freecell.ex_ %backupDir%\%componentDir%
move %i386Dir%\freecell.ch_ %backupDir%\%componentDir%
move %i386Dir%\freecell.hl_ %backupDir%\%componentDir%
move %i386Dir%\freecell.cn_ %backupDir%\%componentDir%

echo - Hearts
move %i386Dir%\mshearts.ex_ %backupDir%\%componentDir%
move %i386Dir%\mshearts.ch_ %backupDir%\%componentDir%
move %i386Dir%\mshearts.cn_ %backupDir%\%componentDir%
move %i386Dir%\mshearts.hl_ %backupDir%\%componentDir%

echo - Minesweeper
move %i386Dir%\winmine.ex_ %backupDir%\%componentDir%
move %i386Dir%\winmine.ch_ %backupDir%\%componentDir%
move %i386Dir%\winmine.hl_ %backupDir%\%componentDir%
move %i386Dir%\winmine.cn_ %backupDir%\%componentDir%

echo - Solitaire
move %i386Dir%\sol.ex_ %backupDir%\%componentDir%
move %i386Dir%\sol.ch_ %backupDir%\%componentDir%
move %i386Dir%\sol.hl_ %backupDir%\%componentDir%

echo - Spider
move %i386Dir%\spider.ex_ %backupDir%\%componentDir%
move %i386Dir%\spider.ch_ %backupDir%\%componentDir%
move %i386Dir%\spider.hl_ %backupDir%\%componentDir%


echo * Generating Scripts
echo games.inf>> txtsetup.log

REM Freecell
echo freecell.exe>> txtsetup.log
echo freecell.chm>> txtsetup.log
echo freecell.hlp>> txtsetup.log
echo freecell.cnt>> txtsetup.log

REM Hearts
echo mshearts.exe>> txtsetup.log
echo mshearts.chm>> txtsetup.log
echo mshearts.cnt>> txtsetup.log
echo mshearts.hlp>> txtsetup.log

REM Minesweeper
echo winmine.exe>> txtsetup.log
echo winmine.chm>> txtsetup.log
echo winmine.hlp>> txtsetup.log
echo winmine.cnt>> txtsetup.log

REM Spider
echo sol.exe>> txtsetup.log
echo sol.chm>> txtsetup.log
echo sol.hlp>> txtsetup.log
echo spider.exe>> txtsetup.log
echo spider.chm>> txtsetup.log
echo spider.hlp>> txtsetup.log

echo * Updating configuration files :

echo - txtsetup.sif
findstr /v /b /i /g:txtsetup.log %i386Dir%\TXTSETUP.SIF > TXTSETUP.SIF
move TXTSETUP.SIF %i386Dir%\TXTSETUP.SIF

echo - dosnet.inf
FOR /F %%G IN (txtsetup.log) DO @echo d1,%%G>> dosnet.log
findstr /v /b /i /g:dosnet.log %i386Dir%\dosnet.inf > dosnet.inf
move dosnet.inf %i386Dir%\dosnet.inf
del dosnet.log

echo - layout.inf
findstr /v /b /i /g:txtsetup.log %i386Dir%\layout.inf > layout.inf
move layout.inf %i386Dir%\layout.inf
del txtsetup.log

echo - sysoc.inf
@expand -r %i386Dir%\sysoc.in_
type %i386Dir%\sysoc.inf > %i386Dir%\sysoc.inf.ansi
findstr /v /i /c:",games.inf," %i386Dir%\sysoc.inf.ansi > sysoc.inf
move sysoc.inf %i386Dir%\sysoc.inf
@makecab %i386Dir%\sysoc.inf %i386Dir%\sysoc.in_
del %i386Dir%\sysoc.inf.ansi
del %i386Dir%\sysoc.inf


echo - hivesft.inf
type %i386Dir%\HIVESFT.INF > HIVESFT.INF.ansi
findstr /v /i /L /g:%hiveSFTRef% HIVESFT.INF.ansi > HIVESFT.INF.ansi.tmp
cmd /u /c type HIVESFT.INF.ansi.tmp > %i386Dir%\HIVESFT.INF
del HIVESFT.INF.ansi
del HIVESFT.INF.ansi.tmp


echo - hiveusd.inf
type %i386Dir%\HIVEUSD.INF > HIVEUSD.INF.ansi
findstr /v /i /L /g:%hiveUSDRef% HIVEUSD.INF.ansi > HIVEUSD.INF.ansi.tmp
cmd /u /c type HIVEUSD.INF.ansi.tmp > %i386Dir%\HIVEUSD.INF
del HIVEUSD.INF.ansi
del HIVEUSD.INF.ansi.tmp

After removing these files, I edit the following files, to remove the '_x' parameter on the layout.inf line :

- TXTSETUP.SIF

- LAYOUT.INF

Then I replace setupapi.dl_ with a patched version, using this tuto : http://www.vorck.com/windows/edit-setupapi.html

I burn the image, but the installation process isn't the same.

On my custom install, I install my specific drivers, then I tell the system to don't install non signed drivers.

With the modification I made, the system can't install audio/videos codecs, video drivers, ...

If someone has an idea.

Thanks in advance

Edited by millenod

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...