When my image boots to the desktop for the first time my driver installer does it's thing, and since the nVidia control panel is (thankfully) not a part of the graphics packs, I get the "RUNDLL32.EXE C:\WINDOWS\system32\NvCpl.dll,NvStartup" error on boot.  I have tried the following bits to try and make it not do that, but it keeps happening...

regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","NvCplDaemon","REG_SZ","")
regwrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","NvCplDaemon","REG_SZ","")
regdelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","NvCplDaemon")
regdelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","NvCplDaemon")
regdelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","NvMediaCenter")
regdelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","NvMediaCenter")

I found that RegDelete was not doing anything so tried the RegWrite "" trick, and I thought that would do it but nope.  So then I tried one after the other, nope again.  I'm pretty flummoxed and can't find the right answers through Google, care to share how Finisher does it?

Thanks

Ian

27

(41 replies, posted in Universal Imaging)

Hey Galapo, I saw in another forum that someone requested Windows 2000 support for OfflineSysPrep, you did some work to that end, and feedback never came back to you.  Did you rip out the Win2k support, or is it still in there lurking around?  I would be very interested in getting Win2k support, but I realize it is old and falling in to disuse.  Honestly, if I could just get ONE half-decent universal image out of an install I'd probably never mess with it again.......  smile

Oh well, just wondering if there was some buried code in OSP that would work w/ 2k, if not please don't bother on my account!  big_smile

Thanks bud

Ian

MS SysPrep with no options except mini-setup for Pro/MCE, OSP with HAL at next boot, delete MountedDevices and MachineGUID registry entries, fix mouse/keyboard unresponsiveness, install standard IDE, install all DriverPacks non-IDE, suppress driver signing, no SID generatin, and complete OfflineSysPrep operations without running sysprep.exe

Works like a champ!!!!!

Thanks Galapo, and of course everyone for support, ideas, driver help, and all the rest!  GREAT STUFF!!!

Ian

Microsoft wrote:

Warning The steps in the article are effective only on Volume License media. If you try these steps on OEM media or on retail media, you will not change the product key.

hmm, that's pretty odd, it seemed to work just fine, but I never ran Key Finder or anything to verify, it just went through the motions.  Maybe that's all it did, went through the motions......

Oh well, I'm minutes away from trying a test that went

Plain SysPrep with only Mini-Setup option selected and no MS textmode integration
OSP with HAL next boot, MS injection, no SID, fix keyboard//mouse unresponsiveness, couple other things...

I'll post back with results and full OSP options used at that time

Ian

kickarse wrote:

Ian, you can change one number in the reg binary of the msoobe registry key and call the msoobe activation and it will ask for a new number.

Yup, I went that way at first, but felt that was too clunky.  (jeez, I love that word, huh??)  It worked fine, but having to say yes to activation, then telephone, then change key, then update, then phone in every time, what a pain!  smile

Ian

@mr_smartepants, as of now using OSP x.02 with no SysPrep at all and some sort of unattended driver installer at boot is absolutely AWESOME, soooo sweet!!!  But it keeps the original product key and is still activated, and I need to be able to enter product keys and activate with the proper keys to keep things legit.  Today I used the new release of OSP x.03 (sorry, forget the exact version number tongue ) and used the SID option (I forgot about that one...), and then called Microsoft's Product Key Update Tool.  All this works, except it is pretty clunky and the Microsoft tool does not support Media Center which is a problem.  What I was considering is using SysPrep without the Base MS text mode integration, and using OSP for MS injection and HAL switch, that way I would still get to enter a product key and have SID regenerated while keeping the HAL switch and a more complete MS injection method.  If somehow you can pull off a smoother way for SID and product key that would be cool, but honestly I don't think the SysPrep + OSP is a bad option at all.  Keep Detect PNP off of SysPrep, and the Reseal and mini-setup sshould both be pretty darn quick.

Whew, wow that was a mouthful!  I have made over 20 images in the last 2 days between Home, Pro, and MCE and testing and tweaking my apps to coexist, and have been between MySysPrep + Base and OSP + NewSID + MS key updater!!!  uuuggggggggggg!  The good thing is that even with OSP + NewID + MS key updater I still go from the ground up in 15 minutes, but I think it should be smoother and faster to do SysPrep + OSP.

Anyhoo, I'm ready to test if any new ideas come out!  smile

Ian

Question Galapo, is it OK to run OSP after it has already been run on the same image?  I have my image pretty much locked down using the previous release, but I didn't think about the SID, so I'd like to just take a drive and dump on my existing image which has already had OSP run on it, re-OSP it, reimage it and deploy it.  I can't imaging it would be a problem, but thought it better to check....

Thanks

Ian

I found a good answer to my above question, if it helps anyone else go to http://www.microsoft.com/genuine/selfhe … uinst.aspx and include this tool in your install.

Ian

Kinda-related question - the OSP method where SysPrep is never run keeps the same product key, something that is a no-no for me unfortunately.  I have been able to break activation, and can have XP run the activation wizard to change the key, but it's clunky as all heck.  I found some scripts on recovering the product key, but don't see any to allow CHANGING it.  http://www.autoitscript.com/forum/index … mp;start=0 has info on recovery, anyone have an idea how to have AutoIt ask for the new key then insert it?  This is the only downside I have seen in using OSP without running SysPrep first....

Thanks

Ian

That's what has been working for me.  I have only put the image on one machine so far, but have done it about 10 times already, I am making tweaks to my code and need to keep testing it  tongue

The thing I keep bumping in to right now is breaking activation, but just found out about deleting wpa.dbl and wpa.bak which is probably why I was having issues.  Once activation is broken my image is home free.  The process from the beginning went:

Transfer my VirtualBox installation to a real drive via GhostCast (what a pain!!  need a faster way!)
Hooked that drive up as a slave and OSP'd it with only MS injection and AUTO HAL on next boot
Update my driver packs used, easy since I just dump 'em in a folder
Make an image of the drive, and deploy away

I add my main app "justinstall_s" to Docs\All Users\Start Menu\Programs\Startup so it runs on the first actual XP boot
That app calls another I wrote "suppress" which makes all of the New Hardware Wizards go away and closes "System Settings Change"
At the end of justinstall_s (which scans HWIDs and compares agains my list of available HWIDs pulled from the INFs) another app I wrote comes on, "clean", which removes the driver pack directory, makes registry changes, then calls for reactivation

Works great on that machine, and once I have all of my own quirks figured out I'll throw it on some other machines, see what happens.

Ian

@Galapo, dude that works AWESOME!!  Kick @ss!!!

So now my thoughts go like this:

As it stands my PRE-Sysprepped image installed on VirtualBox booted up to the desktop after OSP like a champ, and of course started looking for a billion drivers.  My driver installer already knows how to shut the New Hardware Wizards up so I can suppress those, install the new drivers, run some registry tweaks I always do on install, break the activation as posted earlier, and run the command to ask for activation so a new product key can be put in.  HAHAHAHAHAAAAAAAAAA, right on!!

I guess all I have to do to get the above started is put my app in the Start Menu/Startup folder to get the ball rolling, then remove it later, should be easy as pie.

AND NO MORE SYSPREP!!   big_smile

Thanks man, sweeeeeeeeeet

Ian

Galapo wrote:

Drivers may be injected, and "specificity" is basically limited to how many drivers you decide to inject. If you choose to inject all the DP mass storage drivers, then so many are injected that native ntldr cannot cope

Awesome that the HAL switcher at boot time is coming along, glad to hear it!  As for the above, sorry but I don't have a live disc with OSP at the moment or I'd just find out myself smile but if all that is being injected is the MS pack, would that actually be large enough to cause an issue with the default NTLDR?  And I actually don't recall being able to use more than one, but obviously I'm wrong there....

Anyhoo, with those 2 issues out of the way then I don't see why OSP wouldn't be my preferred way.  Good stuff man!

Ian

hmm, wonder if a Google cache will treat you any better...

http://74.125.95.132/search?q=cache:5_H … &gl=us

Ian

I haven't tried this yet, but http://www.911cd.net/forums//index.php?showtopic=18031 may offer a convenient way in since it would load Bart locally.  Since OfflineSysprep works under Bart, and Bart has no issues with MS loading, this might be a more simple way to go.

Dunno if I'll have time to monkey with this today, but might give it a go.

Ian

kickarse wrote:

So mysysprep.exe still is held back by the mass storage devices being installed by the sysprep pre setup. Can you call MySysprep via the registry without running the MySysprep installer and see if it works?

I think building upon Galapo's experience will help us tremendously in finding out what we need to change to the window OS install to make it universal. But to do it in a way that Sysprep does without the need of external media.

Perhaps using GRUB to run a Linux live boot or console on next reboot, running a script to find the OS, OS arch, CPU type/model/procs, Mass storage controllers, storage device that windows resides on, edit ntfs data for the HAL, edit registry for storage controller/disk and reboot.

Yukkkkkk, my feeling towards Linux in general are....not so nice.  And mixing Linux with Windows in a dual-boot situation is definitely quite icky.  There are decent NTFS capabilities in Linux, but wouldn't we have to create a separate partition for Linux to sit on?  Then it would always be there, and people would wonder what that 10MB space is that they can't access......  Might WORK great, I just feel all sticky and greasy thinking about it....  big_smile  hahaha

Yup MySysprep has the same MS issues, all it does differently is calls itself prior to Sysprep being run to determine the HAL to use, once that is done it moves over and lets Sysprep go.  I'll see what I can do about running it without "running" it, but I goofed around a little while ago with the Setup key and had bad results, so doubt it will do anything.  Then again I only had a short amount of time to work with it but will be able to get back to it shortly.

Ian
(PS - I am to Linux what Jeff is to SysPrep!!  smile  I find his hatred of SysPrep silly, so feel free to laugh at me for hating Linux)

The way MySpsprep calls itself is through HKLM\SYSTEM\Setup\CmdLine.  On a typical boot this entry is blank, after running MySysprep that key is changed to "mysetup.exe setup.exe -newsetup -mini"

I have not yet tried this, but I am about to clone a drive with my XP Pro image, let the setup finish, then edit this key, not sure what to have it start yet but am curious......

BTW, http://www.tsaysoft.com/mysysprep/ may have more info than I paraphrased....

Ian

I also thought that about OfflineSysprep till I tried it.  Very easy to use, but the only time that I see it being usefull is a)you have a significant amount of hardware-identical systems you want to install an image on but the source image differs from the target machines so this could edit a pre-existing image to work b)migrating an installed XP to a new motherboard with less risk of blue-screens.  It IS a great setup and very complete, but it is platform-specific.  When I used it for the first time I realized it was making an image compatible to the system I ran it FROM, not where it was GOING.  I will have occasions where that will come in handy in the future and am glad to have it as an option for those cases, but it does not make a universal image, it takes one and makes it VERY specific.

So, how in the WORLD would we get a foot hold on a fake pre-setup?  MySysprep does it, the documentation on the web page says that MySysprep runs at boot and figures out which HAL to install, then it calls the real Sysprep and backs off.  Would that be a local WinPE?  If we were to be able to shut down XP and have it call a WinPE environment on the next boot that would determine which HAL to use and do a Bart-like MS install so that having duplicate HWIDs wouldn't matter (something I don't honestly understand what the big deal is anyway but obviously others know more about that than I do..(what about DPInst??  Let IT choose....)) then we would know which MS to use, inject that so XP wouldn't freak, and bing, be up and running.  Of course, to keep things legit the product key would need to be switched, but there is a registry key that if altered activation is broken, so all we would need to do there is prior to shutdown

RegWrite("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current
Version\WPAEvents","OOBETimer","REG_BINARY","0")

and after bootup

ShellExecute("c:\windows\system32\oobe\msoobe.exe /a")

As far as the dup HWID for MS, what about having a special pack just for this Sysprep alternative?  Couldn't say all nVidia MS drivers be "merged" so that if there is a dup HWID, all files are copied that would affect each set of drivers?  That's another thing I've been thinking about and deciding if I want to persue for a loooong time, but haven't because of making constant tweaks to my universal images, then the driver installer, now I'm writing a backup app for the shop's techs so every backup is uniform in what is saved and how........  No time right now for this MS merging experiment!!  tongue

Sheesh, and to think that at the beginning of the year I hadn't coded anything in 10 years, now I'm writing driver installers!!!!!  HAHAHA!!  Gotta love AutoIt!!

Ian

Don't get me wrong guys, OfflineSysprep has it's place.  But my problem with it is that to be useful for my purpose I would have to clone a machine installed with no MS text mode drivers and ACPI HAL on to any given machine, then boot with Bart/LiveXP and run OfflineSysprep to get the system bootable.  I agree that it might feel like reinventing the wheel, but if a method with all of this functionality could be set up so it runs automatically on the first boot after a Sysprep reseal then Sysprep would be given a huge move forward.  Even if Sysprep were abandoned entirely, point is if this could be done at bootup, it would be that much sweeter.

Ian

You're right about the HAL being the same since they were both X2s, but I wanted to reset to standard ACPI to make it a more "true" test...

The Safe Mode thing was just a fluke the first time around, didn't end up helping......

I'll look around for a similar solution to the enum key

Thanks

Ian

hmm, slight addendum, the system DID boot in Safe Mode.  I let Safe Mode play around with the drivers as much as it could, but once it asked for help installing anything I rebooted in Normal mode and it worked fine, albeit missing many drivers.  Well, now I could call my installer and off we go.

The original machine was an Athlon64 X2 on an ATi chipset, I did the above steps and moved it over to an Athlon64 X2 on an nVidia chipset.  ACPI was detecting properly as ACPI, since I set it that way, so the HAL switch would need to be thrown in somewhere, but this is interesting.  I think I'm going to take down a P3 1GHz system and do the above steps and move it over to the A64 nVidia system and see if the same thing happens.  If so, strange procedure, not at all automatic (yet) but it may work.

Ian

Looks like I was too optimistic, bonked.  I went so far as to remove Device Manager\System Devices\Microsoft ACPI-Compliant System, set HAL and KTOSKRNL to standard ACPI, and extracted the entire contents of the MS pack to Windows\INF but it still wouldn't finish booting.........

There may be another way, and I swore this worked, but no go.

Ian

Jeez, busy night, looks like I missed some good stuff  smile

OverFlow wrote:

Yeah baby - talk to me guys!

How many of you guys use ghost - that totaly eliminates the SID issue...

I do use it, but Ghost doesn't touch the SID, you need GhostWalker to do that part if you want a 3rd party tool to do SID.  Ghost just clones.  SysPrep directly handles SID, when SysPrep setup manager is run it gives an option to not reset the SID, which means if you don't check it, the SID is reset.  That is why your (OverFlow) suggestion earlier about just copying the hard drive's files over to another drive works instead of needing cloning software - my Restore disc simply marks a partition as active and un7zips an archive of a SysPrepped setup.

So am I on the same page as you guys that you want to make an alternative to SysPrep so the cloned system is never even forced to run through a mini setup??  I think if you replace HAL.DLL and the kernel with the original (or a working) set from Recovery Console then reboot, all of the system's drivers have to be reinstalled.  Example - if a customer brings me an old machine to fix and it has a bad board, say a Socket A, and they have Windows XP on it, and there is some application they don't have a disc for and seem like they are very upset to hear that they may need a Windows reload and loose that app when they get a new motherboard, replacing HAL.DLL should be all that is needed to make the machine boot on the new board, as long as the hard drive controller is recognized by their XP install.  I highlighted SHOULD because I have only tried this a couple of times, rarely has it been an issue that was sooooooo important that it was worth taking the time to do it, and I always prefer a fresh install on a new mobo.  Point is, if a total alternative is what you're after so that an image is dumped on a drive, the drive on a mobo, and the system just boots in to Windows, then I think replacing HAL and the kernal, injecting the proper MS drivers, then calling SAD/other on the first boot seems like somewhere to start....

Can't say I know if that is feasable, but may try to do some testing on this today if time allows....


OverFlow wrote:

select basic hal that is fully compatable with all platforms then script detection and updateing...

In fact i seem to remember seeing a script that does this somewhere...

http://www.myitforum.com/articles/15/view.asp?id=8997

That what you were thinking of?


Ian

k, here we go with my 2cents.

My current method is to get the source installation 100% ready to rock as far as updates, apps etc, and is done through VirtualBox.  Once ready, I run Base 9.02 and integrate ONLY text mode of MS, nothing further including NOT integrating MS as a standard driver pack, just for text mode.  I also strip out lots of the MS from the INF prior to running Base to avoid conflicts as much as possible.  (I think one suggestion here is, even though it would be a PAIN, allow check boxes to allow lesser-experienced or lesser-patient people a way of trimming the fat to meet their own needs...).

Back to the point, Base sets up the temp folder of text mode MS and runs SysPrep -BMSD.  From there I use my own driver installer which is now about 100% finished, and just call that from SysPrep at GUIRunOnce.  Of course you could include your own tool in to Base to acomplish the same thing.

So for the SysPrep option, my opinion is only INTEGRATE what is needed to get the system to boot and start mini-Setup, then SAD/other methods of driver installation once Windows is loaded.

With my current tool and overall method of SysPrep, just yesterday I speed tested on an AMD Athlon64 X2 6000+, 4GB DDR2, SATA, and once Ghosted (3 minutes), from the time I hit the power button I was in Windows with every single driver loaded, every Win Update installed, all Adobe apps, Java, GIMP, OpenOffice, Spybot, Ad-Aware, MalwareBytes, KLite Mega Codec Pack, BurnAware, DeepBurner, GBurner, Video DVD Maker Free, WinRAR, 7zip, and however many registry tweaks I have in there now, plus removed the driver cache I used to get the drivers loaded, in THIRTEEN MINUTES.  DANG!!!  How can ya hate SysPrep man???? wink


Ian


-Edit, I forgot a BIG one, I use MySysPrep for HAL switching which is great, but if you're going to try to invoke a fake pre-setup then perhaps the HAL switch could be worked in to Base as well?  Wanna go out on a limb??  Fake pre-setup via WinPE, MS detection the same as BartPE, inject ONLY the needed MS for text mode ala Offline SysPrep.......    ohhhhhhhhhh, so many fun tricks could come from a pre-setup...........

LOL, SysPrep hater

Ian

=========== 
PCI Devices 
=========== 
PCI\VEN_8086&DEV_1050&SUBSYS_01D51028&REV_02\4&1C660DD6&0&40F0: Intel(R) PRO/100 VE Network Connection
PCI\VEN_8086&DEV_1080&SUBSYS_10001028&REV_04\4&1C660DD6&0&08F0: PCI Modem
PCI\VEN_8086&DEV_244E&SUBSYS_00000000&REV_C2\3&172E68DD&0&F0: Intel(R) 82801 PCI Bridge - 244E
PCI\VEN_8086&DEV_24D0&SUBSYS_00000000&REV_02\3&172E68DD&0&F8: Intel(R) 82801EB LPC Interface Controller - 24D0
PCI\VEN_8086&DEV_24D2&SUBSYS_01D51028&REV_02\3&172E68DD&0&E8: Intel(R) 82801EB USB Universal Host Controller - 24D2
PCI\VEN_8086&DEV_24D3&SUBSYS_01D51028&REV_02\3&172E68DD&0&FB: Intel(R) 82801EB SMBus Controller - 24D3
PCI\VEN_8086&DEV_24D4&SUBSYS_01D51028&REV_02\3&172E68DD&0&E9: Intel(R) 82801EB USB Universal Host Controller - 24D4
PCI\VEN_8086&DEV_24D5&SUBSYS_01D51028&REV_02\3&172E68DD&0&FD: Multimedia Audio Controller
PCI\VEN_8086&DEV_24DB&SUBSYS_01D51028&REV_02\3&172E68DD&0&F9: Intel(R) 82801EB Ultra ATA Storage Controllers
PCI\VEN_8086&DEV_24DD&SUBSYS_01D51028&REV_02\3&172E68DD&0&EF: Intel(R) 82801EB USB2 Enhanced Host Controller - 24DD
PCI\VEN_8086&DEV_24DE&SUBSYS_01D51028&REV_02\3&172E68DD&0&EB: Intel(R) 82801EB USB Universal Host Controller - 24DE
PCI\VEN_8086&DEV_2570&SUBSYS_00000000&REV_02\3&172E68DD&0&00: Intel(R) 82865G/PE/P/GV/82848P Processor to I/O Controller - 2570
PCI\VEN_8086&DEV_2572&SUBSYS_01D51028&REV_02\3&172E68DD&0&10: Video Controller (VGA Compatible)
13 matching device(s) found.
 
=========== 
USB Devices 
=========== 
USB\ROOT_HUB\4&1897A88C&0                                   : USB Root Hub
USB\ROOT_HUB\4&211EE94A&0                                   : USB Root Hub
USB\ROOT_HUB\4&900482C&0                                    : USB Root Hub
USB\ROOT_HUB20\4&B643904&0                                  : USB Root Hub
4 matching device(s) found.
 
============= 
Input Devices 
============= 
No matching devices found.
 
============ 
ACPI Devices 
============ 
ACPI\FIXEDBUTTON\2&DABA3FF&0                                : ACPI Fixed Feature Button
ACPI\GENUINEINTEL_-_X86_FAMILY_15_MODEL_4\_0                : Intel(R) Celeron(R) CPU 2.66GHz
ACPI\PNP0000\4&1506BB2E&0                                   : Programmable interrupt controller
ACPI\PNP0100\4&1506BB2E&0                                   : System timer
ACPI\PNP0200\4&1506BB2E&0                                   : Direct memory access controller
ACPI\PNP0303\4&1506BB2E&0                                   : Standard 101/102-Key or Microsoft Natural PS/2 Keyboard
ACPI\PNP0401\4&1506BB2E&0                                   : ECP Printer Port (LPT1)
ACPI\PNP0501\1                                              : Communications Port (COM1)
ACPI\PNP0700\4&1506BB2E&0                                   : Standard floppy disk controller
ACPI\PNP0800\4&1506BB2E&0                                   : System speaker
ACPI\PNP0A03\4                                              : PCI bus
ACPI\PNP0B00\4&1506BB2E&0                                   : System CMOS/real time clock
ACPI\PNP0C01\1                                              : System board
ACPI\PNP0C01\B                                              : System board
ACPI\PNP0C04\4&1506BB2E&0                                   : Numeric data processor
ACPI\PNP0C0C\2&DABA3FF&0                                    : ACPI Power Button
ACPI\PNP0F13\4&1506BB2E&0                                   : Microsoft PS/2 Port Mouse (IntelliPoint)
ACPI_HAL\PNP0C08\0                                          : Microsoft ACPI-Compliant System
ROOT\ACPI_HAL\0000                                          : Advanced Configuration and Power Interface (ACPI) PC
19 matching device(s) found.
 
============ 
 HDA Audio 
============ 
No matching devices found.
 
============ 
RAID Devices 
============ 
PCI\VEN_8086&DEV_24DB&SUBSYS_01D51028&REV_02\3&172E68DD&0&F9
    Name: Intel(R) 82801EB Ultra ATA Storage Controllers
    Hardware ID's:
        PCI\VEN_8086&DEV_24DB&SUBSYS_01D51028&REV_02
        PCI\VEN_8086&DEV_24DB&SUBSYS_01D51028
        PCI\VEN_8086&DEV_24DB&CC_01018A
        PCI\VEN_8086&DEV_24DB&CC_0101
    Compatible ID's:
        PCI\VEN_8086&DEV_24DB&REV_02
        PCI\VEN_8086&DEV_24DB
        PCI\VEN_8086&CC_01018A
        PCI\VEN_8086&CC_0101
        PCI\VEN_8086
        PCI\CC_01018A
        PCI\CC_0101
1 matching device(s) found.

Working driver found at http://support.dell.com/support/topics/ … ile=135650

Used sound 8.05 A and B

Thanks

Ian