Did I mess up? (sysprep)

KatzWo

Member
So everything seems to be fine related to my ISO except for the fact I didn't create a default user account. I chose 'OOBE' mode instead of 'Audit' mode, again: without creating a user account or enabling the default admin account.

I thought this would be OK since I chose OOBE mode so wouldn't windows prompt me to create the user account myself? My Hyper-V VM has been loading for the last 10 minutes now.

I don't want to sysprep it hence the lack of Audit mode. OOBE is when Windows asks you those 10 or so questions and you are asked to create your user account, right?
Because I thought everything would be fine this way, however as said prior, my VM keeps on loading...

Edit: I put 10 .exe and 2 .msi files in the Post-Install / Machine field, all with the parameter '/passive' and added, if I recall correctly, 164 drivers to the image (10 folders or so)
 
Well, it's hard to say because you've got a lot going on all at once. When you first get started making your images, it's really best to just do one set of actions at a time and then keep layering stuff on, after installing Windows and making sure the first set of stuff works properly.

So what I mean is, maybe ONLY start with drivers in your first image. Don't make any other tweaks at all or other changes, no autounattend, no nothing. See if the drivers work properly first. Then, if it installs and your Device Manager looks good, there's no bugs, etcetera, then save those edited files somewhere safe, keep them as a backup. Then start on round 2, and add more tweaks into it. Repeat until satisfied.

Right now it's just too hard to troubleshoot, you've got too many things happening at once with unattend, virtual machine, mass drivers, etc.
 
Well, it's hard to say because you've got a lot going on all at once. When you first get started making your images, it's really best to just do one set of actions at a time and then keep layering stuff on, after installing Windows and making sure the first set of stuff works properly.

So what I mean is, maybe ONLY start with drivers in your first image. Don't make any other tweaks at all or other changes, no autounattend, no nothing. See if the drivers work properly first. Then, if it installs and your Device Manager looks good, there's no bugs, etcetera, then save those edited files somewhere safe, keep them as a backup. Then start on round 2, and add more tweaks into it. Repeat until satisfied.

Right now it's just too hard to troubleshoot, you've got too many things happening at once with unattend, virtual machine, mass drivers, etc.
Why did I not see all my 164 drivers any more the time I re-loaded the image? They were in the list the first time but not now.
 
Someone else more familiar may have to help with that. I rarely integrate drivers because I don't find it to be beneficial on my home machines, since drivers are constantly updated. Though I totally understand an IT guy wanting to integrate drivers, since they don't have time to sit there and install them manually on 100 machines.

Can you upload a screenshot of the issue you presented, where the drivers disappeared?
 
Someone else more familiar may have to help with that. I rarely integrate drivers because I don't find it to be beneficial on my home machines, since drivers are constantly updated. Though I totally understand an IT guy wanting to integrate drivers, since they don't have time to sit there and install them manually on 100 machines.

Can you upload a screenshot of the issue you presented, where the drivers disappeared?
They're just not there any more. It did give me a pop-up before: 'Driver X existing' etc
 
When you generalize a sysprep image, it removes drivers by default. If you wanted to keep installed (and unloaded) drivers, edit autounattend.xml and add the correct settings.

PersistAllDeviceInstalls setting indicates whether all plug and play devices on the destination computer remain installed during the generalize configuration pass.

To speed up the deployment of a group of computers that have identical hardware configurations, you can instruct Windows Setup to maintain the driver settings from the reference computer when you capture a Windows image. When you apply the image to identical destination computers, the drivers are correctly configured.
DoNotCleanUpNonPresentDevices setting specifies whether plug and play information for devices that are not detected on the destination computer during the next specialize should remain on the computer.

This setting is useful for devices with a physical on/off switch. When a physical on/off switch is off, the device information may be removed during either the generalize or specialize configuration pass. However, when both PersistAllDeviceInstalls and DoNotCleanUpNonPresentDevices are set to true, the device information remains on the computer.

Code:
   <settings pass="generalize">
       <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
           <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
       </component>
   </settings>

PS - I think you're doing this the hard way. Just extract driver files and integrate into a clean image.
 
When you generalize a sysprep image, it removes drivers by default. If you wanted to keep installed (and unloaded) drivers, edit autounattend.xml and add the correct settings.




Code:
   <settings pass="generalize">
       <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
           <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
       </component>
   </settings>

PS - I think you're doing this the hard way. Just extract driver files and integrate into a clean image.
What if I removed the OOBE/Audit mode completely, left it 'gray', and added all the same drivers once again just to be on the safe side? NTLite gave me a notification that '[insert driver here] exists' every time

Edit": to clarify I ask because I've already done those 2 things above in that specific order
 
After you integrate drivers into an image, they're always there unless removed. If you're sysprepping for other reasons (pre-installing large apps), then pay attention to what generalize does to drivers. Otherwise don't mix and match driver integration methods.
 
After you integrate drivers into an image, they're always there unless removed. If you're sysprepping for other reasons (pre-installing large apps), then pay attention to what generalize does to drivers. Otherwise don't mix and match driver integration methods.
I suppose if I have removed both OOBE and Audit modes (so that dot icon is grey) then I don't have to worry about that right?

Also, I have a bunch of .exe's I wanna have installed automatically. Do I put them in the Machine or the User queue in Post-Install? I'm not sure if the Machine Queue is working out right now, and I don't know why. I didn't add any parameters to any of them, left all those fields empty

1) Nevermind I figured out the above^, I chose User Queue and it worked. But what does the Machine Queue do then?

2) How can I make sure my image contains all the 164 drivers I injected into it? Is there a way I can see all the drivers that are part of the image?
 
Last edited:
When you generalize a sysprep image, it removes drivers by default. If you wanted to keep installed (and unloaded) drivers, edit autounattend.xml and add the correct settings.




Code:
   <settings pass="generalize">
       <component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
           <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
       </component>
   </settings>

PS - I think you're doing this the hard way. Just extract driver files and integrate into a clean image.
So if I want drivers for a different model of laptop to stay in the image after I hit 'generalize' do I tick off the PersistAllDeviceInstalls or the DoNotCleanUpNonPresentDevices box? (set it true)
 
It's not a box, you have to add extra lines to autounattend.xml because NTLite doesn't support all the unattend XML parameters. If you don't use sysprep, then those lines are ignored by normal Setup.
 
It's not a box, you have to add extra lines to autounattend.xml because NTLite doesn't support all the unattend XML parameters. If you don't use sysprep, then those lines are ignored by normal Setup.
So if I set either of them or both of them to 'True' in the unattend section, that won't do anything in reality?
You know, the green circle saying 'true' or the red circle saying 'false'.
 
OK. I never use that section of Unattended; so NTLite already supports it. Yes, enable both if you want to sysprep not to delete drivers.
 
Back
Top