1

I've been trying loads of times to build a reference windows-installation on a PC, with user customizations and installed software, and then deploy it on another PC, with different hardware. This task has proved much, much more tedious and problematic than I ever wanted.

I've been using sysgrep to prepare the reference computer to be installed on the new computer. This 'works', but this seems to remove all user profiles and creates a new one. Any user customizations like UserData folder, task bar settings, etc are all lost. I would like to keep these as well. I did manage though to get the new computer up and running with the reference computer windows image, and with installed software. However, all software which store settings in UserData , which is basically most of them need to be reconfigured. For example, I installed Mozilla Firefox and set a custom homepage to test, and after sysgrep this data is lost as UserData folder is re-created. I've used an unattend.xml file and the /unattend setting in sysgrep, but it doesn't seem to work. However, the unattend.xml profile is being read definitely, because at first I had some incorrect properties in XML and it was giving an error.

Below, are the steps I've tried, maybe anybody can help because I'm really lost:

  • First, I installed a fresh Windows 8.1 installation on a reference computer. I booted in Audit mode by using CTRL + SHIFT + F3, as specified in http://technet.microsoft.com/en-us/library/hh825135.aspx. This is because it says that you need to have only 1 administrator account for CopyProfile to work.
  • For testing purposes, I did these customizations -- Set taskbar icons to small -- Install Mozilla Firefox and set custom homepage
  • Ran sysgrep with the arguments /generalize /oobe /unattend:c:\copyprofile.xml (xml file copied below)
  • Restarted same computer, and got in the user customization (OOBE) process. Filled in the details, windows started - Firefox still installed but user data / task bar customisations lost. Custom homepage setting removed, and firefox reset to default settings.

copyprofile.xml

<?xml version="1.0" ?> 
<unattend xmlns="urn:schemas-microsoft-com:unattend">
   <settings pass="windowsPE">

      <component language="neutral" name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <computername>Win8Test</computername>
            <timezone>Eastern Standard Time</timezone>
            <copyprofile>true</copyprofile>
            <disableautodaylighttimeset>false</disableautodaylighttimeset>
            <donotcleantaskbar>true</donotcleantaskbar>
            <showwindowslive>false</showwindowslive>
        </component>
   </settings>
</unattend> 

I would appreciate any kind of help in getting this to work.

1

This has been solved finally. The issue is simply a matter of case-sensitivity. I formatted the xml document using Visual Studio to get proper indentation, and didn't notice that it changed say from <CopyProfile> to <copyprofile>. I then updated the case as per another sample file, and it worked. The working unattend.xml is copied below:

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.micro...fig/2002/State" xmlns:xsi="http://www.w3.org/20...hema-instance">
            <CopyProfile>true</CopyProfile>
            <DoNotCleanTaskBar>true</DoNotCleanTaskBar>
            <RegisteredOrganization>XXXXXXXXX</RegisteredOrganization>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.micro...fig/2002/State" xmlns:xsi="http://www.w3.org/20...hema-instance">
            <CopyProfile>true</CopyProfile>
            <DoNotCleanTaskBar>true</DoNotCleanTaskBar>
            <RegisteredOrganization>XXXXXXXXX</RegisteredOrganization>
        </component>
    </settings>
    <settings pass="windowsPE">

        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.micro...fig/2002/State" xmlns:xsi="http://www.w3.org/20...hema-instance">

            <UseConfigurationSet>true</UseConfigurationSet>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/users/tech/desktop/install.wim#Windows 8 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

Please note that the offlineImage does not actually need to match an actual file it seems. I don't know exactly why this is needed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.