0Enable windows desktop slideshow with a script

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

Got some thoughts of your own? Indulge yourself below by commenting! If you would like to subscribe please use the subscribe link on the menu at the top right. You can also share this with your friends by using the social links below. Cheers.

Leave a Reply