I’ve been updating my unattended windows deployment setup recently, and one of the things I wanted to enable was the slideshow wallpaper with the location set to my wallpapers location on my server. This isn’t as straight-forward as it ought to be, but after bit of fiddling around I figured out how to do it fairly simply.
2 parts are neede — a reg script and copying a file (which I do via a self-extracting archive file).
The reg script is as follows
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\Personalization\Desktop Slideshow] "Interval"=dword:000927c0 "Shuffle"=dword:00000001 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers] "SlideshowSourceDirectoriesSet"=dword:00000001 "BackgroundType"=dword:00000002 "SlideshowDirectoryPath1"="/long-random-looking-string-goes-here"
Note — you will need to set up the slideshow with the correct path on one of your PCs and then export the value for “SlideshowDirectoryPath1” from your registry for this to work
The second part is to copy a file called slideshow.ini (also after setting up your own slideshow) which lives in %appdata%\Microsoft\Windows\Themes
The contents of this file contain an encoded reference to the location of your slideshow I believe.
Once you have copied the file and imported the reg file you just need to restart explorer or wait for the interval period to pass (mine is set to 10 minutes) and I have shuffle turned on — your values may be different if you set them differently and export the changed values from the registry
I have put my slideshow.ini into a self-extracting exe that extracts to (and silently over-writes) %appdata%\Microsoft\Windows\Themes
. I then run my 2 commands using the following SynchronousCommands in my ImageUnattend.xml
<SynchronousCommand wcm:action="add"> <Order>6</Order> <Description>Set slideshow location</Description> <CommandLine>c:\extras\slideshow.exe</CommandLine> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <Order>7</Order> <Description>Enable slideshow</Description> <CommandLine>c:\extras\elevate -c reg import c:\extras\slideshow.reg</CommandLine> </SynchronousCommand>
For more information about my use of the command “elevate” and having files in the c:\extras folder please read my previous article about how I used a “Batch script to rename PC based on reserved DHCP name”
Seems Microsoft has changed something, or they don’t do it the same for all configurations. When I turn on slidshow for my reference PC, there is no slideshow.ini file to copy in %appdata%\Microsoft\Windows\Themes. Instead, to files get created named transcoded_000 and transcoded_001.
It’s almost like Microsoft doesn’t want us to be able to easily control slideshow using scripts.
Hi James
These instructions were for Windows 10 — they still seem to work for that. Are you using windows 11? If so no doubt Microsoft will have changed things for no good reason
Also note — I had to create a slideshow for these files and settings to appear. I then copied the file to other machines to make this work. So if you haven’t first set up a slide show then I guess the ini file won’t exist
Hi James
I realise it has been a long while, but I just checked this on windows 11 (build 23H2) and there is definitely still a slideshow.ini in that folder
It is a hidden file by default so you would need to change explorer options to view hidden files