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 usingCTRL + 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 forCopyProfile
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.
Best Answer
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 workingunattend.xml
is copied below: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.