Windows 10 – Keep Lock Screen Spotlight Pictures but Turn Off Texts

lock-screenwindows 10windows-spotlight

Windows 10 pushes "fun tips and facts" onto their lock screen.

Example image from Windows Spotlight

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.

Best Answer

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.

Example Spotlight Images

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.

  1. 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.

  1. 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


  1. 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.

  1. Now log into each user and go run; type ms-settings:lockscreen Set each user Background to Picture and select one of the default thumbnails (do not set a custom image!) Set Lock Screen to Default Images

    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).

Set as slideshow


  1. 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) Notepad Example

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.


  1. 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 type WindowsLock, 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; Every 3 hours
    • Or just set it On work station unlock and any user, OK. (Unlock so that the script has a chance to run rather than lock, though this feels like a bit to often.) On Station Unlock

    • 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.

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>

  1. 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

Hide Lockscreen Settings

Microsoft source here.


  1. Done now we have mimicked spotlight lock screen offline, also with ability to have a slideshow.

Prior Help and Research:


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: Regedit Lockscreen

Here is an example of a clean windows where no custom images have been set: Regedit Clean User Example

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.

Related Question