I've been closely following the evolution of nLite for the past time... I am also considering to write my own C# applications to modify windows images that have been hardware-generalised using Microsoft Sysprep, like Vista and images taken after running sysprep -reseal on XP/2003. I've also been studying how Vista is built (all the way back to build 4029) and would like to describe the main issues of doing a complex operation like nLitening a OS image: - Vista installation DVD is actually a sysprepped image of another running Vista installation from a technician's computer. Run sysprep on any NT 5.x builds and you would have virtually the same thing. So any user application that would want to modify it can follow one of these 2 general layouts: 1) The direct method (like nLite works today) - mount a WIM image for read/write operations - load the registry hives in the active registry - perform the removals for files and registry settings - unload the hives - commit and unmount the WIM image 2) The indirect method (like in Windows XP Embedded) - develop a method for reversing the modularization of windows (the opposite of Embedded Target Designer) - transform the contents of a generalized Vista WIM image in modules, stored in a local repository - add / remove components in the local repository - regenerate the generalized WIM image I think both of these methods can be applied on resealed XP/2003 images, allowing WIM deployment for them. This would result in a successor of nLite capable of working with both XP/2003 and Vista. Also, it would allow experimenting on XP, which takes a lot less time to test. Playing with 8 gigs of data when testing is not nice. Here's a screenshot from my application, it's not much .... I've been working on it scarcely in the past 2-3 weeks I'd use the following layout for modules, in a similar way Target Designer for Windows XP Embedded works: 1) a set of "primitives", consisting in - a EXE / DLL file stripped of resources - separate resources, like ResHacker.exe extracts them (good for applying resource patches very fast, for example XPize could just update the primitive resources instead of unpacking / repacking everything) - maybe some INFs to be used with regsrv32 2) a set of "components" consisting in - one or more primitives - registry settings 3) a set of "features" - one or more components - one or more primitives - scripts, user files ... For example a primitive would be SHELL32.DLL and it's stripped resources, a component would be the explorer shell and a feature would be Windows Media Player. Store all these in a repository using the WIM technology and you'd get a lightning-fast Vista reconstruction engine