Jump to content

[SOLVED] Windows 7: Unattended Windows OOBE after Sysprep


Recommended Posts

Hello everyone,

First off I'd like to say I've browsed these forums thoroughly the past few days and, while I haven't found an exact solution to my problem, I have learned a lot and it's gotten a lot clearer.

Okay, so a little background info:

We're ordering about 15 workstations per month and they all need to be configured very specifically (have certain apps/drivers installed, have the company logo on everything, etc). Each workstation has a preconfigured admin account (named "Workstation") and that's the only account that needs to be on the computer. I figured the best way to do this would be to set up a master image and then use Sysprep on it and just deploy the Sysprep image to each workstation. Well I found out it's not as straightforward in W7 as it was in XP, but I worked through most of the problems already.

These workstations are running Windows 7 Home Premium x86. For some reason, ASUS decided not to ship install media with them, only restore media. So I decided just to clean the bloatware off of the computer and customize my installation rather than doing a fresh reformat. The only odd thing was, every time I Sysprep (/Generalize /OOBE) it never asks me for a W7 License Key in the Windows OOBE setup, and upon the first boot I check the system properties it says that Windows is activated. Whatever, it's not really an issue, just more of an oddity. I'm guessing somehow the license key is stored in the BIOS? I have no idea.

The goal is to get the Windows OOBE completely automated. Since I want to keep the Workstation account without adding an extra one, I followed a post by Mr Jinje (don't have source link atm) explaining to just create an account to make OOBE happy, and set up SetupComplete.cmd in the image to automatically delete the account after OOBE finishes. The SetupComplete.cmd works like a charm (deletes the account named "dummy").

Anyway, that's just some background info. Here's the problem:

Now when I Sysprep with the following answer file, the ONLY thing that changes is that OOBE doesn't ask me for a computer name, and it uses the computer name from the answer file.

Other than that, OOBE still asks me for language, asks me to accept the EULA, asks me for timezone info, asks me to create a user account and set a password for it, and asks me to look for wireless networks.

Why isn't this automated like it's supposed to be? Why does it only take the computer name from the answer file but everything else it still asks me to input? Does anyone have any ideas?

Please help, thanks.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<ProtectYourPC>3</ProtectYourPC>
</OOBE>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
<DisplayName>dummy</DisplayName>
<Group>Guests</Group>
<Name>dummy</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<RegisteredOrganization>Organization</RegisteredOrganization>
<RegisteredOwner>NTS Workstation</RegisteredOwner>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>NTS-Workstation</ComputerName>
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
<ShowWindowsLive>false</ShowWindowsLive>
<TimeZone>Eastern Standard Time</TimeZone>
</component>
<component name="Security-Malware-Windows-Defender" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DisableAntiSpyware>true</DisableAntiSpyware>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:c:/bin/asus.wim#EF WW W7HP 32R" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Edited by Broesph
Link to comment
Share on other sites


The only odd thing was, every time I Sysprep (/Generalize /OOBE) it never asks me for a W7 License Key in the Windows OOBE setup, and upon the first boot I check the system properties it says that Windows is activated.

Slic 2.1 bios, product key and a Cert file = activation

Link to comment
Share on other sites

The only odd thing was, every time I Sysprep (/Generalize /OOBE) it never asks me for a W7 License Key in the Windows OOBE setup, and upon the first boot I check the system properties it says that Windows is activated.

Slic 2.1 bios, product key and a Cert file = activation

Okay, that's what I thought it was. It makes sense. And it makes my life easier because I don't have to enter these keys manually, so I'm not complaining! =P

Well guys inadvertently I solved my problem on my own.

There were two reasons that my Sysprep did not correctly apply my answer file settings:

1. The manufacturer (ASUS) had packaged this installation with a file called "Oobe.xml" (C:\Windows\System32\oobe\Info\Oobe.xml) and it modifies configuration passes after the answer file is loaded.

To fix this I just deleted their Oobe.xml file.

2. ASUS also packaged the install with their own "Unattend.xml" (C:\Windows\Panther\Unattend\Unattend.xml). This partially overrode the Unattend.xml that I was using. I found info on implicit answer file search order here: http://technet.microsoft.com/en-us/library/cc749415(WS.10).aspx

It shouldn't have caused a problem, especially because I was using "Sysprep.exe /Generalize /Oobe /Shutdown /Unattend:Unattend.xml" and I explicitly specified my answer file. Regardless, somehow it still took configuration passes from the old ASUS answer file.

To fix this I replaced their answer file with mine (still explicitly specified my answer file).

The only reason I had these problems is because I didn't create my master install with a fresh reformat from a vanilla W7 disc, rather I used the manufacturer's preinstall that came with the system and modified it to my liking.

I didn't have a choice in the matter because I don't have a disc that will work (I tried a regular x86 W7 Home Prem OEM disc but it said the license was invalid with that copy of windows).

Hopefully this thread will be informative to those trying to use Sysprep on a manufacturer's OS install.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...