Main > Main Forum

Windows XP Build Script

Pages: (1/6) > >>

Bill Mote:

Build scripts are a great way to get nearly click-for-click identical machines across time and space ;)  (we don't build machines every day, but we often build them in different locations!)  I decided to share my build script for the arcade cabinet as I thought it might be of some use to the users here and it would be great to debate the ins-and-outs of what I've done and how it could be even better.  It's the same script from which I build office machines though not as many services can be turned off and I don't do all the work to hide the OS.

The result of my build has only 10 running processes and consumes a paltry 50 MB of memory.

So, without further adeu:


--- Code: ---Arcade Machine Build Notes

0. Partitioned the drive into 3 partitions 10% (c), everything -6g (d), and 6g (e)
1. Labeled C-drive: OS
1A. Change the CD drive letter to Z (forgot to document this, sorry!)
2. Formatted and labeled D-Drive: DATA
3. Formatted and labeled E-Drive: SWAPFILE
4. Created this file.
5. Adjusted machine visual effects for best performance.
6. Moved paging file to SWAPFILE drive and rebooted.
7. Shutdown and added 3rd stick of RAM for a total of 768 MB.
8. Changed desktop appearance (no background, black).
9. Installed video drivers and rebooted.
10. IE settings
11. Changed resolution to 800x600x32bpp
12. Changed the way users logon/logoff (no welcome screen, disabled fast user switching)
13. Installed audio drivers
14. Set "Sounds and Audio Devices" to use preferred devices only.
15. Set sound scheme to "no sounds."
16. Turned off services:
1. Automatic Updates
2. Cryptographic Services
3. Distributed Link Tracking Client
4. DNS Client
5. Error Reporting Service
6. Help and Support
7. IPSEC Services
8. Messenger
9. Portable Media Serial Number (had trouble stopping)
10. Print Spooler
11. Remote Registry
12. Secondary Logon
13. Task Scheduler
14. TCP/IP NetBIOS Helper
15. Themes
16. Upload Manager
17. WebClient (had trouble stopping)
18. Windows Time
19. Wireless Zero Configuration
20. Network Connections (disabled)
21. Network Location Awareness (NLA) (disabled)
22. SSDP Discovery Service (disabled)
23. Background Intelligent Transfer Service
24. Computer Browser
25. Server
26. Ati HotKey Poller
17. Reboot & check services
18. Ran MSCONFIG and disabled any remaining utilities
19. Turned off ATI system tray app
20. Reboot
21. Cleared event logs and set to 4,096 KB + overwrite as needed.
22. Turned off Santa Cruz volume control in system tray

CAPTURED A.GHO

23. DisabledStatusMessages in the registry.  .REG file stored on D.
24. Set the login background to 0 0 0.  .REG file stored on D.
25. DisabledBalloonTips in the registry.  .REG file stored on D.
26. Copied MameWAH to C-drive.

--- End code ---

dot

Bill Mote:

Here are some useful registry files (more to come):

Hide your recycle bin:

--- Code: ---REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu]
"{645FF040-5081-101B-9F08-00AA002F954E}"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{645FF040-5081-101B-9F08-00AA002F954E}"=dword:00000001
--- End code ---

Add a GUI interface to recycle bin visibility:

--- Code: ---REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\RecycleBinOnDesktop]
"RegPath"="Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons\\NewStartPanel"
"Text"="Show Recycle Bin icon on the desktop"
"Type"="checkbox"
"ValueName"="{645FF040-5081-101B-9F08-00AA002F954E}"
"CheckedValue"=dword:00000000
"UncheckedValue"=dword:00000001
"DefaultValue"=dword:00000001
"HKeyRoot"=dword:80000001
--- End code ---

Final OS cleanup:

--- Code: ---REGEDIT4

[-HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs]

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU]

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs]

[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU]

[-HKEY_CURRENT_USER\Software\Microsoft\Search Assistant\ACMru]
--- End code ---

USE: Just cut-and-paste those into a file with a .REG extension and double click them.

dot

Bill Mote:


--- Quote from: dot on October 21, 2006, 07:17:45 am ---0. Partitioned the drive into 3 partitions 10% (c), everything -6g (d), and 6g (e)
1. Labeled C-drive: OS
1A. Change the CD drive letter to Z.
2. Formatted and labeled D-Drive: DATA
3. Formatted and labeled E-Drive: SWAPFILE
<snip>
6. Moved paging file to SWAPFILE drive and rebooted.
--- End quote ---

Okay, lets start disecting this ...

These steps were done for a couple of reasons.

1. I've been moving the SWAPFILE to a separate partition, even on a single drive system, to avoid fragmentation on the OS and DATA partitions.  I set the swapfile to a fixed 4096 min and max size on the SWAPFILE drive.  Why 6g when I'm only setting my paging file to 4g?  Because windows will warn you about being low on drive space ;)

2. A full set of MAME ROMs consumes 7 DVDs!  I want to keep all the MAME related DATA on a separate partition such that I can get good DRP (ghost specifically) images of the OS partition to speed rebuilds.  Who wants to go through all these steps over-and-over!  I don't.

Bill Mote:


--- Quote from: dot on October 21, 2006, 07:17:45 am ---5. Adjusted machine visual effects for best performance.
<snip>
8. Changed desktop appearance (no background, black).
9. Installed video drivers and rebooted.
<snip>
11. Changed resolution to 800x600x32bpp
12. Changed the way users logon/logoff (no welcome screen, disabled fast user switching)
<snip>
14. Set "Sounds and Audio Devices" to use preferred devices only.
15. Set sound scheme to "no sounds."
<snip>
23. DisabledStatusMessages in the registry.  .REG file stored on D.
24. Set the login background to 0 0 0.  .REG file stored on D.
25. DisabledBalloonTips in the registry.  .REG file stored on D.
--- End quote ---

All this was done to help hide the operating system.  There are steps that haven't been outlined yet to hide the recycle bin, set MameWAH as my shell, change the mouse cursor to a 1 pixel dot, etc.  Those items are coming ... be patient.

#5 is accomplished via Start->My Computer->Properties->Advanced Tab->Performance Settings->Visual Effects Tab.  Set this to "Adjust for best performance."  It will remove all the cutesy stuff.  Not sure that it's a deal breaker if you leave this alone and replace the shell, but if you like things speedy rather than shiney it's not a bad tweak to apply.  The old look isn't really hateful anyway.

dot

Bill Mote:


--- Quote from: dot on October 21, 2006, 07:17:45 am ---16. Turned off services:
   1. Automatic Updates
   2. Cryptographic Services
   3. Distributed Link Tracking Client
   4. DNS Client
   5. Error Reporting Service
   6. Help and Support
   7. IPSEC Services
   8. Messenger
   9. Portable Media Serial Number (had trouble stopping)
   10. Print Spooler
   11. Remote Registry
   12. Secondary Logon
   13. Task Scheduler
   14. TCP/IP NetBIOS Helper
   15. Themes
   16. Upload Manager
   17. WebClient (had trouble stopping)
   18. Windows Time
   19. Wireless Zero Configuration
   20. Network Connections (disabled)
   21. Network Location Awareness (NLA) (disabled)
   22. SSDP Discovery Service (disabled)
   23. Background Intelligent Transfer Service
   24. Computer Browser
   25. Server
   26. Ati HotKey Poller
17. Reboot & check services
18. Ran MSCONFIG and disabled any remaining utilities
19. Turned off ATI system tray app
22. Turned off Santa Cruz volume control in system tray
--- End quote ---

Everything your system is doing that isn't a part of playing arcade games or presenting an interface to your player(s) is a waste of resources!  XP is good at that ;)  These services can be safely disabled.  I have my eye on a couple of other services but I haven't tried disabling them.  Specifically, COM+ and RPC.  All-in-all this is a fantastic start.  10 processes and 50 MB is amazing!  Want to check?  Open up task manager and look at your process list.  Make sure you check the box that says show all running processes.  Then look at your commit/change memory.  I bet it's higher than 50 MB!

I have an ATI video card and a Turtle Beach Santa Cruz sound card.  I disabled the tray applications for both of those.  There's no need for them as we won't be using explorer as our shell anyway.  ATI has a hotkey poller service that I had to disable.  It won't be on your system unless you have an ATI card.

#1 Automatic Updates, why udpate?  It's my arcade cabinet.  I'm not going to surf on it.  I'm not going to read e-mail on it.  It's hidden from the internet behind my firewall.  Updates are not needed and with regards to a stand alone kiosk (arcade machine) they're evil.

#4 DNS Client, this service simply retains a cache of recently visited sites.  You can disable this service and still surf the internet.  It doesn't mean that your system won't do DNS lookups.  In fact, it's exactly the opposite: it will *always* do DNS lookups.  Probably not a bad idea given all the phishing schemes, etc.  I have always disabled this service on every machine I build.

#24 Computer Browser & #25 Server, these services can be disabled if you don't want to share a directory on the arcade.  The arcade can still access shares on other machines.  That's why the workstation service is left alone.  For reference I use the following Start-Run:

net use b: \\{computer name}\{share name} /user:{username} {password} /persistent:NO

"b" is almost never used as it was reserved in the BIOS for dual floppy drives.  You can choose any drive letter you want.  White space is important on the command above.  If you butt 2 things up against each other you'll have probems.  Anyway, that's how I get to data on my primary PC from the arcade.  At present I don't have a way to put things on the arcade, but in the end it will be my FTP server so that problem will be resolved.

dot

Pages: (1/6) > >>

Go to full version