How to Schedule a Wallpaper Change in Windows 10

Windows 10 can rotate a folder of backgrounds at a chosen interval, but it has no built-in trigger for a specific picture at a set clock time or on selected weekdays. For a timed change, Task Scheduler can launch a short PowerShell script that applies one image to the signed-in user’s desktop. This changes the desktop background, not the lock-screen picture.

Microsoft notes that Windows 10 support ended on October 14, 2025. These personalization settings remain on installed systems, but free security updates have ended. See Microsoft’s desktop background guide for its current Windows instructions.

Use Slideshow for interval changes

For automatic rotation without an exact schedule, press Windows + I, open Personalization > Background, choose Slideshow, then use Browse to select a picture folder. Set the Change picture every interval and optionally enable shuffle. You can also right-click the desktop and select Next desktop background to advance manually. Slideshow rotates by interval; it does not set a particular wallpaper for a chosen time.

Windows 10 Personalization and Background settings with Slideshow selected, a Wallpapers folder, and the Change picture every interval.
The Background page contains Windows’ built-in folder slideshow and interval controls.

Schedule a specific wallpaper at a set time

One scheduled task applies one image at one daily or weekly trigger. To show different images at different times, repeat the task setup for each time and file. The script uses Microsoft’s documented SystemParametersInfoW function to set the desktop background.

The older Wallpaper Change Scheduler mentioned in the previous version is not used here: FutureSight’s current product page lists Windows XP, Vista, and 7 under Requirements, so it does not document Windows 10 compatibility.

1. Put the image in a permanent folder

Create a folder such as C:\Users\YourName\Pictures\Wallpapers, save the image there, and note its full path. Keep the file in place; moving or renaming it later breaks the task. If it is in a cloud-synced folder, make sure it is downloaded locally.

File Explorer open to Pictures and Wallpapers with several local image thumbnails and one selected file.

2. Set Windows to Picture mode

Open Settings > Personalization > Background and select Picture. If Slideshow stays enabled, it may change the background again on its own interval.

3. Save the PowerShell script

Open Notepad, paste the script, and save it as SetWallpaper.ps1 in the image folder. In Save As, choose All Files so Notepad does not append .txt.

param(
    [Parameter(Mandatory = $true)]
    [string]$ImagePath
)

if (-not (Test-Path -LiteralPath $ImagePath -PathType Leaf)) {
    throw "Wallpaper image not found: $ImagePath"
}

Add-Type -TypeDefinition @"
using System.Runtime.InteropServices;
public static class WallpaperApi
{
    [DllImport("user32.dll", EntryPoint = "SystemParametersInfoW",
        CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern bool SystemParametersInfo(
        uint action, uint param, string value, uint flags);
}
"@

$resolvedPath = (Resolve-Path -LiteralPath $ImagePath).Path
$success = [WallpaperApi]::SystemParametersInfo(20, 0, $resolvedPath, 3)
if (-not $success) {
    $code = [Runtime.InteropServices.Marshal]::GetLastWin32Error()
    throw "Windows could not set the wallpaper. Error: $code"
}

The action value 20 selects the wallpaper-setting operation; flags value 3 saves the change and broadcasts it. Use an image that Windows can already set as a desktop background.

A SetWallpaper.ps1 file open in Notepad, illustrating the PowerShell script saved with its .ps1 filename.

4. Create the time trigger

Search for and open Task Scheduler. Choose Create Basic Task, name it, then select Daily or Weekly. Set the start date and time; for a daily change, recur every 1 day. Choose a future start time if you want to test it soon.

The Create Basic Task Wizard Daily trigger page with example start date and time fields and a one-day recurrence.

5. Select the action

Choose Start a program when the wizard asks what the task should do.

The Create Basic Task Wizard Action page with Start a program selected.

6. Add PowerShell and both file paths

Enter powershell.exe in Program/script. In Add arguments, enter this as one line, replacing the example account name and image filename:

-NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Users\YourName\Pictures\Wallpapers\SetWallpaper.ps1" -ImagePath "C:\Users\YourName\Pictures\Wallpapers\Evening.jpg"

Keep the quotation marks around each full path, including when names contain spaces. The execution-policy option applies to this PowerShell process; use it only with the script you saved. Continue through the wizard. On Finish, check Open the Properties dialog for this task when I click Finish.

The Start a program page showing powershell.exe in Program/script and a command in Add arguments.

7. Use your signed-in account

In the task’s Properties > General tab, keep your account and select Run only when user is logged on. The change applies to that user’s interactive desktop. Microsoft explains task accounts and logon context in its Task Scheduler security-context documentation.

The Task Properties General tab with Run only when user is logged on selected for the Set Wallpaper task.

8. Catch missed runs and test

In the Settings tab, enable Run task as soon as possible after a scheduled start is missed. This can run a missed task after Windows becomes available; it does not wake a powered-off PC or guarantee the original time. Microsoft describes this behavior in the StartWhenAvailable documentation.

Click OK to save. Find the task in Task Scheduler Library, right-click it, and choose Run to test the image change. If it does not work, check both paths, Picture mode, and the account selected in Properties. Windows must be running and that account signed in for the desktop to update.

The Task Properties Settings tab with Run task as soon as possible after a scheduled start is missed checked.
The missed-start option can catch up after Windows becomes available, but does not wake the PC.

Leave a Comment

How to Schedule a Wallpaper Change in Windows 10

How to Schedule a Wallpaper Change in Windows 10

Use Windows 10’s built-in slideshow for interval rotation or schedule an exact daily wallpaper change with Task Scheduler and a short PowerShell script.

How to Change the New Message Notification Sound in Windows 10

How to Change the New Message Notification Sound in Windows 10

Choose a built-in alert tone or WAV file for Windows 10 message notifications, test the change, and troubleshoot apps that keep playing another sound.

How to Split the Screen Horizontally on Windows 10

How to Split the Screen Horizontally on Windows 10

Arrange Windows 10 apps in top-and-bottom rows with the taskbar’s Show windows stacked command, or create a reusable two-zone layout with PowerToys FancyZones.

How to Move Your Cursor Between Different-Resolution Monitors in Windows 10

How to Move Your Cursor Between Different-Resolution Monitors in Windows 10

Keep each display at its recommended resolution, arrange Windows 10 monitors accurately, and use MouseUnSnag to cross mismatched edges and sticky corners.

How to Check a Wi-Fi Network’s Security Type on Windows 10

How to Check a Wi-Fi Network’s Security Type on Windows 10

Find whether your connected Wi-Fi uses WPA2, WPA3, or an older security mode in Windows 10 with Settings, Command Prompt, or Control Panel.

How to Automatically Lock Windows 10 After Inactivity

How to Automatically Lock Windows 10 After Inactivity

Automatically lock Windows 10 after inactivity with a screen saver timer and sign-in prompt, then check how sleep settings affect the result.

How to Add a Cursor Highlighter on Windows 10

How to Add a Cursor Highlighter on Windows 10

Add a persistent colored ring around your Windows 10 mouse pointer with PenAttention, or use built-in pointer tools and PowerToys for temporary highlights.

How to Pin the Game Bar CPU, GPU, and RAM Overlay on Top in Windows 10

How to Pin the Game Bar CPU, GPU, and RAM Overlay on Top in Windows 10

Keep the Xbox Game Bar Performance widget visible over other windows on Windows 10, with CPU, GPU, and RAM readings you can position and unpin.

How to Record Multiple Screens at Once on Windows 10 with OBS

How to Record Multiple Screens at Once on Windows 10 with OBS

Capture two or more Windows 10 displays in one OBS video. Add a Display Capture source for each monitor, fit the canvas, and test the layout.

How to Generate a GUID in PowerShell on Windows 10

How to Generate a GUID in PowerShell on Windows 10

Create a GUID on Windows 10 with [guid]::NewGuid() or New-Guid, reuse it in a script, and learn when to look up an existing identifier.