Hey everyone!
At my company, we have about 20 laptops that run Windows 10 and are connected on a local network. All are domain-joined and connected through AD. One of my favorite features of Windows 10 is the lockscreen slideshow. This is what you initially see when you boot your PC, and is displayed with the time, date, and other icons. By selecting multiple photos, Windows will create a nice slideshow and display them on the lockscreen. I have about 30 photos in a folder that I've used to create a slideshow.
Here is what I'm trying to achieve. I'd like to set every machine on the network to have a lockscreen slideshow using those photos. I could do it manually, but that poses two problems. One, it's very time consuming, and needs to be done for new PC's as well. Secondly, I'd like to be able to add new photos to the 30 I have, and have them add to everyone's lockscreen slideshows. If I manually added them, I'd have to go to each machine to update with the new photos.
One solution I was thinking of was to point the directory that Windows gets the slideshows from to a network share that contains the images. But I worry about what will happen when a user is away from the office and doesn't have network connectivity to that drive.
The best solution I can think is to have a script that will copy the lock screen photos from a network shared folder to a local folder on C when connected to the network. It would need to only add photos that aren't added already to avoid duplicates. That way, the files are locally accessed, but can be updated remotely, and there aren't any issues with leaving the network. The script could be distributed through group policy.
So I have two questions. Does anyone have a better way to do this? If not, does anyone know what the syntax of that script would look like? I don't know how to make it avoid copying duplicates.
Thanks ahead of time!
Could you add multiple folders to the slide show? This way you can have a local folder with all photos and a network folder where you can put newer photos. When offline, only the local photos will be used. These can be updated once a day or once a week. If online you can also use the newer photos from the shared folder. I am not familiar with scripts, so I cannot help. A similar in old DOS would be
copy {source path}*.* {target path}
Where source path is the network folder like \servernamesharedfolder and target path is the local folder like c:usersusernamepictures
But I don't know how to automatically answer no to all when asked for replacing the old pictures. I think something similar should be the script in PowerShell with additional parameters for automatically skipping old pictures. Anyone else that is familiar with PowerShell? Once created the script must be copied to the startup folder to run upon login.
That's a good idea, but unfortunately it doesn't work. When I add a network folder, I get an error saying "The LockScreenAdditions folder isn't supported because of its location. Please choose another folder." LockScreenAdditions was the name of the folder I created.
I figured out how to use Xcopy to keep the local photos updated with the server ones. Now it's just a matter of getting that script to run on login with GP and AD. I'm still open to any better suggestions though!
There is one problem though. When you connect to the network, the script will work OK and update the folder. But when you are offline the script will fail. You should make the script so that it checks when connected to the server and terminate if offline. Maybe this is easier to do in PowerShell rather than the standard command prompt. Sorry, but I am not familiar with PowerShell programming, so I cannot help you. I can only describe what the script should do:
1) Check connection status with server
2) If online then goto 4).
3) If offline then terminate.
4) Copy all files from server, skip file if it exists.
You could even compare an existing file and keep both versions if it is different (another photo with the same filename) but this goes too far.
That's the beauty of a login script though. It's not going to run if there's no domain connectivity anyways. I've set it to distribute through GP, and so far it is working. So it looks like this is my solution: Set the wallpaper setting once on every PC manually, and update the content through a login script that copies files to the local C drive. If there is no domain connectivity, then the script won't be triggered on login anyways, and the local files will still be there for the wallpaper to read from.
Now here's another issue i'm running into - apparently login scripts are a "user" group policy, and I want to apply it to "computers". This looks easier said than done.. Apparently I have to use something called loopback in GP. Time to go learn. haha.
Why don't you apply to the "everyone" user so essentially to any user that logins to the particular computer?
Because there are other PC's in the organization (more than 100) that I don't want this setting to apply to. Those are running windows 7 or 8. Sorry, I hadn't mentioned that. If I applied it to all users, those machines would be affected.
I figured out loopback group policies. It's much easier than it looks. Basically, flipping one switch allows a user policy to be applied to an OU with computers in it. My login script is completely working now.