By default, there is an Intune device configuration profile that can set wallpaper (Profile Type: Device Restrictions > Personalization) BUT this is only applicable on devices running Windows 10/11 Enterprise and Windows 10/11 Education edition. Luckily, using PowerShell we can download an image from the web, save it locally, and set it as our user’s desktop wallpaper. 


wallpaper


First, we need to create our PowerShell script. In PowerShell ISE I created the following script and saved it to my local machine.

$RegKeyPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP"

$DesktopPath = "DesktopImagePath"
$DesktopStatus = "DesktopImageStatus"
$DesktopUrl = "DesktopImageUrl"

$StatusValue = "1"

$url = "https://i.ibb.co/jL4x1sN/lock-screen.jpg"
$DesktopImageValue = "C:\MDM\wallpaper.jpg"
$directory = "C:\MDM\"

If ((Test-Path -Path $directory) -eq $false)
{
    New-Item -Path $directory -ItemType directory
}

$wc = New-Object System.Net.WebClient
$wc.DownloadFile($url, $DesktopImageValue)

if (!(Test-Path $RegKeyPath))
{
    Write-Host "Creating registry path $($RegKeyPath)."
    New-Item -Path $RegKeyPath -Force | Out-Null
}

New-ItemProperty -Path $RegKeyPath -Name $DesktopStatus -Value $StatusValue
-PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $RegKeyPath -Name $DesktopPath -Value $DesktopImageValue
-PropertyType STRING -Force | Out-Null
New-ItemProperty -Path $RegKeyPath -Name $DesktopUrl -Value $DesktopImageValue
-PropertyType STRING -Force | Out-Null

RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters 1, True


Now, the image I want to set as the wallpaper located at this URL: 

https://i.ibb.co/jL4x1sN/lock-screen.jpg.

For all of this to work properly I need to have it saved on my end users machine, it will not work if you just set the registry key to the URL. So, I am going to save it at the following directory: C:\MDM\. It will check for the presence of this directory first if it is not there it will just create it for us. After that it will download and save the image as “wallpaper.jpg”, set the wallpaper to that image and then update our preferences. This will set the wallpaper without having the user to log off or reboot.

Go to Intune portal Device Configuration > PowerShell scripts and press “+ Add” to add a new PowerShell configuration script:


And setting will be like:

profile setting


After getting devices synced, signed out/in or reboot, on our target machines we can see that the policy applied as my wallpaper is the image specified.

end result