Latest Free Tool: ConfigMgr PXE Boot Log

onfigMgr Add2Collection is a free tool that allows IT administrators and support staff to add resources to collections in ConfigMgr independently of the ConfigMgr console. It honors role-based access control (RBAC) to limit visibility of collections where appropriate. It can be used either on the Site Server or a remote workstation using PS remoting.

Setting the Default Wallpaper for Windows 10 during ConfigMgr OSD

So finally I got around to doing some Windows 10 deployments (better late than never :)) and I wanted to set the default wallpaper during Operating System deployment with Configuration Manager. I’ve seen a few posts out there about how to do that, but they all run during the OS phase of the deployment, which means you have to take ownership and set permissions on all the image files. However, you can bypass those permission changes by setting the wallpaper during the WinPE phase of the deployment instead.

I wrote a post about that before, but it was only tested on Windows 7. In Windows 10, the process has changed a bit. In addition to the \Windows\Web\Wallpaper\Windows directory that contains the “img0.jpg” default wallpaper image, there is now also a \Windows\Web\4K\Wallpaper\Windows directory, which contains images of various resolutions. It seems that if the screen resolution is set to the resolution of one of the images in the 4K directory, it will use that one as the default.

This means that we need to provide image files of equivalent resolutions in this directory as well as the standard wallpaper directory. The following image files and resolutions are required:

The “img0.jpg” image file can be around 1920×1200 to match the default size.

Since I am using MDT-integrated ConfigMgr (and you are too, right?!), I’m simply going to place all these image files in the Scripts directory in my MDT toolkit package, together with the following PowerShell script which will replace the existing image files with the new ones.

If you are using standalone ConfigMgr, then you will need to create a package containing the image files and PowerShell script, scrap the TS variable section at the top of the script, and change the variables used:

$ScriptRoot > $PSScriptRoot

$OSDTargetSystemRoot > $env:windir

After updating the MDT toolkit package to my distribution points (or distributing the package for standalone ConfigMgr), I can add a step to my OSD task sequence to run a PowerShell script. For MDT-integrated, I can use the MDT step Run PowerShell Script:

If standalone ConfigMgr, I can use the ConfigMgr step Run PowerShell Script and reference the package:

I am adding this step during the Post Install phase, just after laying the OS image on the disk. At this point, we are still in WinPE, so we are not changing the online OS and therefore no permission changes are required.

And that’s it! Now all the default wallpaper images will be replaced with my custom ones. The beauty of doing this during OSD is that the end user can still change the default image if he wants to. If you prefer to lock the default wallpaper, then consider using group policy instead.

6 thoughts on “Setting the Default Wallpaper for Windows 10 during ConfigMgr OSD”

I haven’t tried it with standalone MDT unfortunately. I assume that it would work if you run it in the Postinstall phase before the reboot. You would need to change the OSDTargetSystemRoot variable to something like:
$OSDTargetSystemRoot = “$($tsenv.Value(“OSDisk”))” + “\Windows”

Hi Trevor,
I am using MDT 2013 update 2 and trying to customize the wallpaper in my Win10 1703 image.
Just tried your PS script with amending the OSDTargetSystemRoot you provided above.
There are no error at the end of the process and I can see the jpg files have been replaced as expected in the target machine.
However the default Win10 wallpaper remains the same even if I create a new user.
Anything else to be done to make it fully work ?
Cheers,
Sabri