Windows 10 - Sysprep Image For Upload

  • Server
    • FOG Version: 1.4.4
    • OS: Windows 10
    • Service Version: N/A
    • OS: N/A

    Hey Everyone! I am currently working on getting Windows 10 deployed with our FOG Server. I currently have a functioning Sysprep package for my Windows 7 image that works. However when I use that package on Windows 10 it does not work. I am sure that is due to drastic changes from 7 to 10.

    Basically I am looking for feedback as to what you guys are doing to build images in Windows 10 and upload them to your FOG Server. I am sure there will be follow up questions for information I am missing in this initial post. I am just at the point of banging my head into a wall on getting this working, haha.

  • Moderator

    @avaryan FWIW, you can start with a online generator to build your basic win10 unattend.xml file: To that we add in the section to load the drivers from a known location. We have to do this because some driver are needed for the OOBE process (we use a single image developed on a vm for all computers in our fleet) to run successfully. Then in the setup complete we use dism to inject any drivers missed during the initial OOBE process (mainly because some hardware is hidden behind other devices that needs it driver loaded first).

    In our deployment process we use the unattend.xml file to connect to AD and not the fog client. We calculate the target OU based on several factors that is calculated at deployment time. This dynamic OU selection isn’t possible using the standard FOG environment. So we use a post install script in fog to update the system’s host name, location, timezone, OU location and a few other things that escapes me right now.

    Since we use MDT to build our reference image you don’t need to mess with audit mode to default user profiles that is managed by the mdt process.

  • I am also interested in this. When producing Gold Masters for Windows 10 Iot Enterprise we advise that you produce a minimal Configuration set to install. Then jump straight into Audit mode to do as much configuration as possible. Also the initial configuration set should have copyprofile=true as well as the pnpsysprep elements set to true for persisting driver installs. Also remember to delete the defaultuser(0) that is created. Then within Audit mode run the separate sysprep Answer file that sets everything else, user accounts and such. Additional scripts and powershell commands are run as part of the first logon process.
    I am currently in the process of setting up a FOG server either on Debain or Ubuntu, not decided yet, but its function will be to capture Windows 10 / Windows 7 / Yocto Linux images for deployment.

  • I didn’t really change that much from Windows 7 to 10. I made the answer file from scratch, but it’s pretty basic. Looks identical to the Windows 7 one.

    All of my driver’s are done post-deploy, triggered from a series of PowerShell scripts launched from the Setup complete.cmd.

    What are some Windows 10 only features that can be done from the answer file?

  • Moderator

    @noelpd We also started with our win7 unattend.xml file for our Win10 deployment. And also like sudburr rewrote it when we reached our final golden image to do some things the windows 10 way.

    For our reference image we use MDT to build that for us. We took the time to setup our MDT task sequences to give us an automated one touch reference image build. We can either create a thin image or a fat image by activating one folder in the task sequence. This automated process give us a consistent reference image since we rebuild our golden image ever quarter with the latest windows and application updates. That way when we deploy the image it is never out of date more than 4 months from current with updates. Our mdt build also automatically installs all windows updates when the golden image is built.

    Now once the golden image is built we have a mdt step to copy over our standard unattend.xml file to the target computer. Then we sysprep and power off the computer using sysprep (this is an important step to have sysprep power off the computer to ensure everything is closed properly).

    Then we capture with FOG.

    On the deployment side we will deploy the captured fog image, then using fog inject the correct drivers for the target hardware, then also update the unattend.xml file with deployment time values. Once the computer reboots then OOBE takes over and fog is out of the picture.

    FOG can push out a 25GB Win10 image in just a bit over 4 minutes. The rest of the time is OOBE completing the workstation setup. When the login prompt appears its either ready to move to the desktop (if a fat image has been pushed) or ready to load any custom applications.

  • IMO, how you approach your image has more to do with your infrastructure. Do you want to pre-load, front-load, side-load, post-load, download, overload, wide-load … ?

    My initial Windows 10 unattend.xml was from my Windows 7 and it worked fine. Those elements which were deprecated from Windows 7 had no ill effect. Check your unattend.xml with Windows System Image Manager and you’ll see. Break it down, keep it simple, build from there.

    Eventually, for our formal Windows 10 Professional rollout in March I rewrote the entire sysprep and answer files process to load more things into my different answer files. but they are fundamentally the same as my Windows 7 ones. In fact I could use my Windows 10 answer file on Windows 7 right now.