Keep Windows 10 Lock Screen Spotlight Pictures but Turn Off All Texts Hints/Balloons
Windows 10 pushes "fun tips and facts" onto their lock screen.
I would like a solution, for Windows 10 Home and Pro, to make it more aesthetically pleasing:
Ideally:
- Leave Windows 10 Spotlight images turned on at lock screen and login screen.
- Turn off all these hints/tips, that is all links and texts disappear.
Otherwise
- Mimic and automate the whole process so that it is similar, yet resulting in no tips and facts.
Some of the current registry suggestions tried are;
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager "ContentDeliveryAllowed" 1.
- "RotatingLockScreenEnabled" 1
- "RotatingLockScreenOverlayEnabled" 0
- "SubscribedContent-338387Enabled" 0
- "SubscribedContent-338388Enabled" 0
- "SubscribedContent-338389Enabled" 0
- "SubscribedContent-314559Enabled" 0
- "SubscribedContent-338393Enabled" 0
The main solution so far seems to be:
- Set-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" "SubscribedContent-338387Enabled" 0
Yet all this does is turn the lock-screen from "Windows Spotlight" to offline picture, which is available through settings (image here). So we do not get the windows subscribed content pictures anymore.
Solution 1:
How to Mimic Spotlight Offline. Up to Five Random Lockscreen Images for Users Generated From An Image Folder (this example has 700) Via Powershell, Batch and Task Scheduler.
This works and is tested with a fresh install, or for computers that have only been set to Spotlight or default images. If you want to change the folder locations, just carefully go through all the scripts.
- Create a system backup and restore point. This has only been tested as a one way process, if you want Spotlight to work again you may need to restore from restore point or backup, or make new users.
-
Open elevated cmd; run these commands to create some folders that we will use:
mkdir C:\ProgramData\WindowsLock\Images
mkdir C:\ProgramData\WindowsLock\Scripts\Temp
- In the image folders place your lockscreen images. See here to download an aesthetic selection. You may need to enable hidden folders to get to this folder.
-
Now log into each user and go run; type
ms-settings:lockscreen
Set each user Background toPicture
and select one of the default thumbnails (do not set a custom image!)So to clarify; before going any further, now each user should be set to one of these 5 default images, if more then 5 users then still set to one of these.
Spotlight Slideshow: once the default image has been chosen for each user, now if you want you can also set up slideshow by select background slideshow
. Remove any folders and add C:\ProgramData\WindowsLock\Images
change any of the settings for slideshow also (as we will block access to settings later on).
- In the scripts folder created above, create following and save correctly:
(this can be done in notepad, and then save as, All files, and type the full name as below)
Copy_Images.ps1
$SelectCount = 12
$SourcePath = "C:\ProgramData\WindowsLock\Images\*.jpg"
$DestPath = 'C:\ProgramData\WindowsLock\Scripts\Temp'
If (!(test-path $DestPath)) {md $DestPath | out-null}
$files = Get-ChildItem -path $SourcePath -file -recurse | Get-Random -count $SelectCount
for ($i = 0; $i -lt $files.count; $i += 2) {
copy-item $files[$i] -destination ('{0}\img{1:000}.jpg' -f $DestPath, ($i/2+100))
}
Copy_Images.ps1: The above is a powershell script (source here), will randomly select 12 jpgs from SourcePath (but now only use 6, as modified script) and rename them to DestPath.
Spotlight_System.bat
call takeown /f C:\ProgramData\Microsoft\Windows\SystemData /R /D Y
call icacls C:\ProgramData\Microsoft\Windows\SystemData /grant "%USERDOMAIN%\%USERNAME%":(F) /T /C
call Del /s /q C:\ProgramData\Microsoft\Windows\SystemData\*.*
call icacls C:\ProgramData\Microsoft\Windows\SystemData /reset /T /C
call takeown /f C:\Windows\Web /R /D Y
call icacls C:\Windows\Web /grant "%USERDOMAIN%\%USERNAME%":(F) /T /C
call Del /s /q C:\ProgramData\WindowsLock\Scripts\Temp\*.*
call powershell -ExecutionPolicy ByPass "& ""C:\ProgramData\WindowsLock\Scripts\Copy_Images.ps1"""
call move /Y C:\ProgramData\WindowsLock\Scripts\Temp\img100.jpg C:\Windows\Web\Screen\img100.jpg
call move /Y C:\ProgramData\WindowsLock\Scripts\Temp\img101.jpg C:\Windows\Web\Screen\img101.png
call move /Y C:\ProgramData\WindowsLock\Scripts\Temp\img102.jpg C:\Windows\Web\Screen\img102.jpg
call move /Y C:\ProgramData\WindowsLock\Scripts\Temp\img103.jpg C:\Windows\Web\Screen\img103.png
call move /Y C:\ProgramData\WindowsLock\Scripts\Temp\img104.jpg C:\Windows\Web\Screen\img104.jpg
call move /Y C:\ProgramData\WindowsLock\Scripts\Temp\img105.jpg C:\Windows\Web\Screen\img105.jpg
call icacls c:\Windows\Web /setowner "NT SERVICE\TrustedInstaller" /t
call icacls C:\Windows\Web /reset /T /C
call exit
Spotlight_System.bat: Taken ownership and clear files from SystemData lockscreen cache. Take ownership Windows Web folder, also where lockscreen images are kept. Delete temporary images from C:\ProgramData\WindowsLock\Scripts\Temp
then run Copy_Images.ps1
to create more, then move them one by one over the top of the Web folder defaults. If the computer crashes this will prevent the folder from being empty, notice also there are some jpgs and png in the rename process, this will replace the default images with the new ones. There is also an attempt to reset permissions on both folders, though really this is unnecessary. The SystemData folder particularly resets its permissions on boot or log off anyway, and these files are unlikely to be edited anyway.
-
Open Task Scheduler as admin (have added xml below for import, if you prefer, just add correct admin user)
- Left click
Task Scheduler Library
in left menu - On right menu, click
New Folder
and typeWindowsLock
, OK - Then Select the WindowLock Folder on the Left Menu
- On the right hand side, under actions, select
Create Task
- Create New Task
- Name: Mimic Spotlight
- Set User to a normal admin login
- Select Run whether user is loged in or not
- Select Run with Highest Privileges
- Under Triggers Tab, Select New, And set on a schedual how ever often you would like it to run for example every 3 hours;
Or just set it
On work station unlock
andany user
, OK. (Unlock so that the script has a chance to run rather than lock, though this feels like a bit to often.)Under Actions browse to and select Spotlight_System.bat
- Under Conditions, untick the two power options if you have a laptop.
- OK. (Note: when updating you may need to re-add the user, there should be a prompt to type in the password.)
- Right click on the task, and click
Run
now log out and all the lock screen images should be update for all the different users, and will now do so on the schedule as set.
- Left click
mimic_spotlight.xml This one is set to every hour change
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2019-06-27T14:31:57.321337</Date>
<Author>System</Author>
<URI>\WindowsLock\Mimic Spotlight</URI>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<Repetition>
<Interval>PT1H</Interval>
<Duration>P1D</Duration>
<StopAtDurationEnd>false</StopAtDurationEnd>
</Repetition>
<StartBoundary>2019-06-27T15:04:20</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>Put_User_Here</UserId>
<LogonType>Password</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\ProgramData\WindowsLock\Scripts\Spotlight_System.bat</Command>
</Exec>
</Actions>
</Task>
- Now double check all users are set to a range of the 5 different lock screens, and if you want slideshow on as described above you can enable it now (see point 4). Now we are going to hide the lock screen settings so they don't accidentally get changed. Open the group policy editor (home users here)
- Got to Computer Configuration, Administrative Templates, Control Panel.
- Select Setting Page Visibility. Click Enabled,
- Below in the Settings Page Visibility options box type
hide:lockscreen
- OK
Microsoft source here.
- Done now we have mimicked spotlight lock screen offline, also with ability to have a slideshow.
Prior Help and Research:
- Powershell copy random images
- Copy 10 files to a new directory and rename them with a pattern?
- Rewrite the first 3 letters of a set of file names with random characters?
- Understanding how to use Icals & Takeown
- Can ProgramData/…/SystemData Folder be emptied of contents without consequence?
- Understanding 'Access Denied' so that permissions can be reverted - icacls and takeown
Why start with a fresh windows 10? Or a system that has used spotlight and default images only?
Here is an example of one user setting when custom images have been set:
Here is an example of a clean windows where no custom images have been set:
Also on testing I was finding irregularities with how the numbering of the defaults was working, but found no such issues with clean installs, or windows where only spotlight/ default images only had been used.