Note: This article is NOT applicable to Windows 10 – some additional steps are required (see the comments section).
Recently I was given an interesting task – set the default wallpaper on new computer builds with ConfigMgr OSD, but don’t lock it such that users can’t change it. It turns out it is simple enough to do, but it requires changing the default wallpaper that comes with windows, which can be found at C:\Windows\Web\Wallpaper\Windows\img0.jpg. If you check the security on that file however, you’ll notice that only the “TrustedInstaller” has full permissions to it, so to change it in the online OS requires messing with permissions. Instead, you can change offline during the WinPE phase of the deployment, which bypasses the permissions problem.
This procedure requires MDT-integrated ConfigMgr 2012, and also requires Windows PowerShell to be added to your boot image. I’ve tested on Windows 7 but should also work with Windows 8.1 as it uses the same location for the default wallpaper.
Create a Wallpaper
First, create your new default wallpaper. The recommended resolution is 1920×1200, which is the same as the built-in default wallpaper. Save it as “img0.jpg”
Create a PowerShell Script
Use the following code in a new PowerShell Script, and save it as “Set-DefaultWallpaper.ps1”
The script will load some task sequence variables, rename the existing default wallpaper to “img1.jpg”, and copy the new “img0.jpg” into the same directory.
# Get the TS variables $tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment $ScriptRoot = $tsenv.Value('ScriptRoot') $OSDTargetSystemRoot = $tsenv.Value('OSDTargetSystemRoot') # Rename default wallpaper Rename-Item $OSDTargetSystemRoot\Web\Wallpaper\Windows\img0.jpg img1.jpg -Force # Copy new default wallpaper Copy-Item $ScriptRoot\img0.jpg $OSDTargetSystemRoot\Web\Wallpaper\Windows -Force
Copy the files to your MDT Package directory
Copy the new wallpaper and the PowerShell script to the Scripts directory of your MDT package source files, and update the MDT Package to your distribution points.
Add a Task Sequence Step
Now edit your OSD task sequence and after the “Apply Operating System Image” Step and before the “Apply Windows Settings” step, add a “Run PowerShell Script” step from the MDT menu.
Add the path to the script file in the step, eg %SCRIPTROOT%\Set-DefaultWallpaper.ps1
That’s it! After OSD, your computer will have two files in the location C:\Windows\Web\Wallpaper\Windows, the new default wallpaper, and the old one renamed to “img1.jpg”. Anyone who logs into the computer will get the new default wallpaper, and they are free to change it if they wish.
If you want to also change the colour scheme in Windows 8.1, there’s a nice post on the Coretech blog.