After 4 days of continuous nliting and WinXP installing, you can say I finally give in or found where the problem is, and xpmaniac4ever, you are partially correct. It is due to the reason of DriverSigningPolicy = Ignore and NonDriverSigningPolicy = Ignore in the [unattended] section of the winnt.sif Seems like nlited WinXP is more gearing towards installing from CD rather than network/DOS install. The nlited WinXP if install via a CD (or ISO within VMware) everything is a-okay, but if install via network/DOS, it will generate a WPF and says Battery Installer error. Reason due to in the past when I do network/dos install I just run WINNT.exe with no argument, by doing so, during the initial network text setup, it create the $WIN_NT$.~BT and $WIN_NT$.~LS folder, the nlited WINNT.SIF wasn't correctly copied from the source \i386 directory to $WIN_NT$.BT directory. Since WINNT.SIF wasn't correctly copied over, even though the DriverSigningPolicy and NonDriverSigningPolicy line were inside the WINNT.SIF, they were not available within the $WIN_NT$.~BT "version" of WINNT.SIF and that causes all the Battery Installer error. This also caused all the unattended installation information (ie. cd-key, network info) wasn't available. if I do WINNT.EXE /u:<answerfile> /s:<sourcepath> where <answerfile> is the \i386\winnt.sif, the correct WINNT.SIF info will be copied to the $WIN_NT$.~BT "version of WINNT.SIF and no more battery problem. I also found out even i supplied the /s:<sourcepath>, it only work within the setup (both text and GUI), but once WinXP boot up, it will change the original path's drive to the CD-ROM drive that it had detected. (ie. install from D:\i386 which is a harddrive, it will change to E:\i386 which is a CDROM), and that why it can't find the original WinXP files and will cause the Windows Protection Files error. Once i mount the nlited ISO into vmware it will work. To get around this I have to disable SFC within Nlite. But even though it's my stupidity that I didn't use the /u: and /s: argument, I'm still puzzled which part of the Nlite process that caused the Battery Installer error. I had narrow down to only removing keyboards, languages, Luna Themes, Tablet PC, MSN Explorer, Windows Messenger and Tour (all within the Remove Components section), by removing such may trigger WPF, but which one causes the missing Battery Installer error it's still a mystery to me. Last but not least, Camarade_Tux, I had rule out the possibility of Security-Disable DCOM, and battery.inf + ACPI.inf were both present.