Windows 10 and 8 use a substantially different process to create images than what I had used in Windows XP and 7.  Fortunately it is not rocket science.  The four big differences are:

  1. You MUST remove the ‘Modern apps’ (anything from the ‘Store’) from the profile you are using to create your image
  2. If you want to modify the DEFAULT PROFILE, you MUST modify your current profile and then use <CopyProfile>true</CopyProfile> in a command line call to SYSPREP
  3. If you are using Windows 10 TH2 or newer you can use a Windows 7 or 8 license key.
    1. This is particularly handy for those Windows 8 PC’s that have the Key embedded in the BIOS
    2. During the install, just click SKIP THIS STEP on the ENTER PRODUCT KEY SCREEN and it will activate by itself after the desktop appears
    3. Keep in mind that OEM Windows 8 Pro Keys that are in the BIOS are NOT upgradable to Windows 10 ENTERPRISE.
  4. You CANNOT use an upgraded version of Windows 10 with SYSPREP
    1. This means if you installed the July 2015 release build and then upgraded it to TH2, SYSPREP will fail.
    2. The easy answer is to just use the LATEST (yes, they are different for each build) version of the Windows 10 Media Creation Tool

So lets get to it.

Simple Step By Step Instructions to Build A Windows 10 Customized Image:

  1. Download the LATEST (yes, they are different for each build) version of the Windows 10 Media Creation Tool
  2. Install it on a reference PC
  3. Install all of the software you want on the machine
    1. A word of caution is that I would not launch any of that software after it is installed as you want it to be fresh and you never know if SYSPREP is going to clear out the settings for third party software
  4. Run Windows Update and patch everything (again making sure that you do not get a new BUILD of Windows)
  5. Customize the desktop of the current user and note:

    What CAN be modified:
    > Windows wallpaper, icons, theme, colors and sounds
    > Screensaver
    > Taskbar location (bottom, left, top, right)
    > File Explorer settings like icon spacing, ribbon ON / OFF, hide / show hidden items, view as, group / sort, additional panes and so on
    > Desktop icon spacing and size
    > Software installed now will be available to all users

    What can’t be modified:
    > Pinned icons (Taskbar and Start) will not be copied to default profile (UPDATE: DEC 28, 2015 – I have found that non-‘Store’ apps such as Word, Excel, Acrobat, Notepad++ CAN be successfully pinned to the START menu as part of the default image)
    > Start Menu and Start Screen will remain default, cannot be modified

    Thank you to TENFORUMS for this note.

  6. Launch a POWERSHELL as an ADMIN and run Get-AppxPackage -AllUsers | Remove-AppxPackage
  7. Download and unzip THIS simple unattend file for you SYSPREP or make your own using WAIK
  8. Copy the UNATTEND.XML to your C:\
  9. Open a CMD PROMPT as an Administrator
  10. CD into the C:\WINDOWS\SYSTEM32\SYSPREP folder
  11. Paste in this command

    sysprep /oobe /generalize /shutdown /unattend:C:\unattend.xml

  12. Power the machine up when it is done, PXE boot off the network and push the image to your Windows Deployment Services WDS server

Thanks to Jason Jiang of Microsoft Partner Support and the following reference sites who helped me develop this process:

If you are reading this post, you might also be interested in our simple fix for How to Solve Windows Could Not Complete The Installation Windows, error that can occur after a SysPrep.


Pratik · October 19, 2017 at 4:04 am

Hello Ian,
After running the sysprep command, when shutdown and restart the system, I am able to go to network boot but then error Windows failed to start, a recent hardware/software change might be the cause. Error : 0xc000000f.
Please help

    Ian Matthews · December 28, 2017 at 11:25 am

    Hi Doshi;

    That sounds like you might not have completed a the GENERALIZE step in the SYSPREP.

Lau · September 18, 2017 at 12:57 am

Great article!
Is there a way to create an unattend file which install the OS without asking anything in the install process?

Thanks you!

    Ian Matthews · December 28, 2017 at 11:34 am

    Hi Lau;

    You can definitely get to “zero touch” but my personal experience is that it is not worth the upfront effort, for the size of clients I have (and the number of machines they want imaged).

david · July 2, 2017 at 12:13 am

Hey Ian, I know this is over a year old, but I’m having trouble with the copy profile. I boot my machine into audit mode, change the desktop and add some items to the taskbar, then sysprep with the copyprofile.xml. Once I capture the image then re-deploy a new machine with that image, all seems well but when I log onto the machine, none of the settings are there. I am auto-joining the domain. Do you think that has anything to do with it?

    Ian Matthews · July 4, 2017 at 2:26 pm

    Hi Ho;

    I don’t think JOIN DOMAIN is the issue. Does your COPYPROFILE.XML contain true ?

edward · May 31, 2017 at 4:33 am

Getting error when trying to upload image:

could not clean image directory. Image is protected

    Ian Matthews · July 4, 2017 at 3:01 pm

    Are you booting to your PC using a CAPTURE boot image that came from the SAME build that you are trying to capture (i.e. in WDS you have to create and use a CAPTURE boot image that was created using the same build of Win10 you have on your reference PC. If that is not the issue, confirm that when you are prompted for a location to save the image during the capture process that you selected a location on the C: drive. I hope that helps.

      David Levine · July 5, 2017 at 6:36 am

      Do you folks or any readers out there have a feeling for which Windows 10 version is best to use in a public lab environment? It’s a situation of many new users per machine, so fast logons are desired. I’ve been trying to use the LTSB version, with limited success. Also have tried using a free utility called DefProf from mm

Tizzy · May 3, 2017 at 1:45 am

Hi Ian, I try your tutorial but I received this error:

Sysprep was not able to validate Your Windows installation. Review the log file at %WINDIR%\System32\Sysprep\Panther\setupact.log for details. After resolving the issue, use Sysprep to validate your installation again.

Investigating the log file mentioned shows the following:

SYSPRP Failed to remove apps for the current user: 0x80073cf2.

I try to remove all Apps looking different post tutorial but don’t work again.
Sysprep finish always with the same error.

Do you have a solution?
thank in advance

    Ian Matthews · May 24, 2017 at 4:56 pm

    Hi Tizzy;

    I would rerun step 6 and see what it shows:

    Get-AppxPackage -AllUsers | Remove-AppxPackage

    I hope that helps. I have not built an image in the last few months and will not be building another one until late fall.

James · April 25, 2017 at 10:34 am

sorry, the error is 0xc0000001

James · April 25, 2017 at 10:25 am

anyone get this process working with a 3rd party image software? I have tried using HDClone 6 but the deployed image fails to boot with error 0x00001

Mohamed khalil · January 16, 2017 at 1:50 pm

Hi ,

I Already use the Method mentioned into Tenfourms about coping the profile using sysprep and the customize.xml it seems that most the customized settings already migrated to the new user created but unfortunately most of the windows 10 settings is not migrated such as notifications and privacy etc.. and the default application to be associate with files for example the pdf file is always associated with edge while iam installing the adobe acrobat before the sysprep and every user need to be modified again this will be a hassle for large enterprise work even if you have multiple users will going to use the same machine ,

do u have any suggestions?

thanks for advance ..

dre · October 29, 2016 at 10:09 am

Interesting tutorial. But what if there is no wds server, how can i use sysprep for creating a reference pc in w10?

Normally one could use sysprep and dism and winpe for restoring the created image and unattend

    Ian Matthews · November 5, 2016 at 11:25 am

    It would be the same process, except the last steps of pushing it to a WDS server. After you have completed the SYSPREP step and the machine has shut down you could try any imaging software you wanted to capture and deploy your image. Ghost used to be great for this. SCCM will work but it is big dollars. WDS is free and very easy to install/configure. Alternately you could just capture the image to a USB stick or DVD. I have not done this myself, but I do not think it is very challenging. I hope this helps.

Ian Matthews · August 12, 2016 at 4:40 pm

I was asked about answer files: It is an ANSWER FILE operation. The easiest builder I have found is

Maverick · June 19, 2016 at 8:51 am

Thanks for sharing 🙂
I don’t understand Step 12 ; should I boot without a network connection, and how do I “push” the image to the WDS server ? where is it stored ?

David Levine · May 19, 2016 at 1:09 pm

Hi Folks,
Thanks for this great article.
Question: In step 11, is it necessary for sysprep to generalize? I’d like to create an image for a number of same-hardware systems. Prefer not to strip out the HAL. Will the copy profile process from the unattend.xml still work?


    Ian Matthews · May 29, 2016 at 11:11 am


    It is NOT required to generalize just to snap the image but if you want to put the machines on the same LAN, they need to be generalized.

      Daniel Walter · July 12, 2016 at 7:56 am

      Thanks alot for your very nice instructions!

      Two little questions:

      1. Why is it necessary to install the Media Creation Tool? I dont understand the use of it… when I choose “Upgrade this PC now” it just aborts..

      2. I syspreped succesfully, but after the first startup this stupid “Hi there. Lets get a few basic things out of the way” and “Express Settings”-Screen appear… how can i skip this settings?

      PS. Sorry to reply to a different post, but I couldn’t create a new comment

        Ian Matthews · July 24, 2016 at 9:39 am

        Hi Daniel;

        The Media Creation Tool is not REQUIRED but it is often useful. The MCT will allow you to make a DVD or bootable USB stick with the full Win10 on it. This is helpful if you have multiple machines to upgrade, if you need to perform a bare metal install or if you have a problem with the UPGRADE NOW process. A friend of mine could not get the UPGRADE NOW to complete so I gave him a Win10 DVD I made the with MCT and bingo, he was able to upgrade his Win10.

        I used an answer file to skip / pre-answer most of the setup questions. You can use the MS tools OR you can just user to build your answer file.

        Enjoy and thanks for checking in with us.

    lw · June 12, 2016 at 10:18 pm

    Wouldn’t the PersistAllDeviceInstalls be the best option for what you are describing?
    This is what we do when deploying to identical batches of hardware so that we can run sysprep with generalize but still keep all of our hardware drivers installed/in place.

      Ian Matthews · June 26, 2016 at 8:13 pm

      That sounds like it would work. I have not used it before however. I find that Win10 has so many drivers that I seldom have anything to install after the first Windows Update patch cycle.

      Thanks for the tip 🙂

Bill · April 27, 2016 at 5:54 am

Can you tell me what the “unattend” file brings to the table. While I tried it on a computer, and it did boot ok, I’m not quite sure what options you put in.

    Ian Matthews · May 29, 2016 at 11:21 am

    Hi Bill;

    Sorry for the delay in getting back to you. The unattend is critical IF you want to modify the default profile. Under Win 7 and older you could just modify C:\USERS\DEFAULT and your default user settings (for new users) would be changed. Things like adding desktop icons and wallpapers were soooo easy to change. Under Win8 and now Win10 the only way to change the DEFAULT user profile is to modify the user you working with when you create your SYSPREP and use the true setting in the UNATTEND. This is a pain in the butt.

wilson · January 17, 2016 at 1:50 pm

Amigo, saludos
Yo uso la herramienta de sysprep para despliegue de Windows en varios equipos, lo cual ha sido una ventaja excelente.

Pero tengo un problema, ojala me puedas ayudar.

Desde que la uso en Windows 7, 8, 8.1 no he tenido ningún problema durante el uso de SYSPREP y tampoco en el despliegue, pero con Windows 10 tengo un problema el final.

Por ejemplo, instalo Windows 10, después instale la Actualización Acumulativa que está vigente, realizó el proceso de SYSPREP /shutdown /oobe, Lo finaliza perfecto, y lo despliego en el equipo de destino, hago la correspondiente verificación de integridad y todo, pero después de un tiempo cuando lanzan la siguiente Actualización acumulativa, esta no se instala solo llega al 57% y sale el tipico error de “No hemos podido completar las actualizaciones”, tambien he instalado el sistema sin instalar ninguna Actualización, lo despliego y se produce el mismo error al instalar un actualización acumulativa.

Espero me puedan ayudar con este problema, cabe recalcar que con los otros sistemas Windows 7, 8, 8.1 todo se realiza perfectamente.

    Ian Matthews · February 20, 2016 at 7:30 pm

    Hi Wilson;

    I have only seen the COULD NOT COMPLETE THE UPDATES once (and that was yesterday on a new machine I imaged in the morning) and in my case it went away after I ran a CHKDSK on the Win 10 PC. The CHKDSK did find and correct several problems on the disk. The cumulative update the worked beautifully.

      Binh · June 22, 2016 at 1:49 pm

      Dear Ian,

      Thank you for the article.

      All seem working except that it takes from 4 – 6 minutes for users to log in the first time. Do you have any suggestions?

      Thank you,

        Ian Matthews · June 26, 2016 at 8:04 pm

        That is a long time but if you are working on a spinning disk I would not be shocked at that. It has to build a profile/copy from your default. I use only SSD’s now and I see it takes about 30 seconds to 1 minute for users to log in the first time.

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *