Late afternoon on Friday, I received a mail with the subject “Isn’t it just nice :)” and including the following screenshot attached.
This is one of my smaller customers that use Microsoft Intune to manage his installation of Windows 10 Pro device. A couple of weeks back we have had a workshop on how to use Microsoft Intune to manage his installation of Windows 10 devices using the configuration policies with Microsoft Intune. One of the things I did not think that much about was a limitation of setting the desktop image. After talking with fellow Microsoft MVP @RonniPedersen I actually remember we have previously discussed this limitation when the “personlization CSP” policies was introduced by Microsoft. I remember in created a bit of controversy in the community as this seems like one of the most basic settings within Windows that is configured by the majority of all desktop administrators.
Source: https://docs.microsoft.com/da-dk/windows/client-management/mdm/personalization-csp
Luckily Microsoft provided us with the ability to execute PowerShell on clients even on Windows 10 Pro. With a bit of coding this would allow us to manually set the background our self.
The PowerShell script can be downloaded from Microsoft scripting center.
How to get deploy the script using Microsoft Intune:
These steps guides your through the steps of setting the corporate desktop background on all your Windows 10 devices.
- Upload your desktop background to public Azure storage account, your website or a image site like https://imgur.com/. For this script I decided to use Imgur for the background image https://imgur.com/a/lCpie56.
- Download the script “SetDesktopBackground.ps1” from Microsoft scripting center.
- Change the “CustomerXXX” name to your company name and change the source $url to your public available image source online on the Internet.
- Open Microsoft Intune under PowerShell scripts.
- Upload the script by clicking “Add”.
- Type in a name for your script, click the “browse” icon and select the modified script.
- Click on “Configure” under the settings section and flip the switch “Run this script using the logged on credentials”
- Click “Ok” and afterward the “Create” button.
- Click “Assignment”
- “Select” the Azure AD security group with the users that needs this background applied and click “save”.
- Wait for the changes to be applied to the users desktop.
- You can also monitor the progress under the device configuration in Microsoft Intune.
I hope these steps help you with applying corporate branding to your Windows 10 Pro clients. I would also recommend using this setup as an additional add-on to the Microsoft Intune personalization CSP policy as it sometimes doesn’t work that well, when you upgrade from Windows 10 Pro to Windows 10 Enterprise E3 licensing.
/Peter
Hi
Why you recommend to use this approach and not the settings in Intune portal? in Desktop background picture URL (Desktop only) in Device restrictions?
Because Device restrictions only work with Windows 10 Enterprise or Education. This would work for any Windows 10.
I tried performing this. But it is working perfectly fine for my test Environment but not for the live environment. But both the image was different. Is there any Image specifications required for this.
Hi,
I have amended the script but its still pointing to the Apento image. Any advise on what else to change to get the script reading out corporate image.
Hi. Do you know how to do this, but per user ? if i want a different background per user ?
Also, if i decide to change the image (in the script) will it be deployed to the device ? During my test, even if i change the image and even if the new image is downloaded on the device, it is never applied.
Config : w10pro 1809
Is there a way to manipulate this script for the lockscreen image?
For The LockScreen just use: Set-ItemProperty -path ‘HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization\’ -name LockScreenImage -value $output
I having issues pushing both background and lock screen image to a Windows 10 Business Version 1803.
Under Device Status in the Monitor section of the particular script in Intune, it reports a FAILED status. Please can someone advise me on a way forward/how to resolve this?
Not working for 1903 and later.. on windows 10 pro
Hi, I know this is an old post but I can’t get this to work, it seems to need admin credentials and although my users are all local admins the image is not being applied even though the script is running successfully. Any suggestions would be greatly appreciated.
Hi there
I know this is an old post but hoping someone can see this and help.
I’ve tried doing the above and the script works fine when run locally, if I run in PS as admin. When I push it out through Intune though it says that it has run successfully but there are no changes on the users machine. I suspect that this is because it needs to change registry keys and this can only be done with elevation. I’ve tried pushing this out both with and without the “Run this script using the logged on credentials” setting but neither works.
Any suggestions would be greatly appreciated!
Running from Intune, the auto-reset
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
does not seem to run
So user gets the wallpaper after reboot
Hi Peter – this script appears to have disappeared – do you have a download link?
Can you please repost the script?
https://web.archive.org/web/20191106061426/https://gallery.technet.microsoft.com/scriptcenter/Set-Desktop-Image-using-5430c9fb/
Thank god for the internet archive
Thanks, I was struggling to find this script
Hi I can’t find the Script
hi do you have screen saver script
Can you please repost the script?
hi,
can someone give me the script please
this script appears to have disappeared from the Microsoft scripting center.
Hmm that didn’t work – try https://github.com/Dattics/SetDesktopBackground/blob/master/SetDesktopBackground.ps1
This do the trick. 😀
$RegKeyPath = “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP”
$DesktopPath = “DesktopImagePath”
$DesktopStatus = “DesktopImageStatus”
$DesktopUrl = “DesktopImageUrl”
$StatusValue = “1”
$url = “https://www.thelazyadministrator.com/wp-content/uploads/2019/07/nicewall.jpg”
$DesktopImageValue = “C:\MDM\wallpaper_LazyAdmin.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
[…] Apply corporate background to Windows 10 Pro with … […]
Is it work for anyone on Windows 11?
Hi,
for me its not working on Windows 11 can somebody help?
Many Thanks