Daily Reboots on Windows Devices Using Intune

A Complete Guide Including CMD & PowerShell Methods to Check Last Reboot Time

Introduction

Automating daily reboots is one of the simplest ways to improve Windows performance, reduce memory leaks, ensure policy compliance, and maintain stable Cloud PCs or AVD sessions.

Microsoft Intune provides a powerful, cloud-native way to configure these reboots using the Reboot CSP, without needing scheduled tasks, PowerShell scripts, or GPOs.

In this article, you’ll learn:

  • How Intune’s Reboot works
  • How to configure DailyRecurrent reboot schedules
  • How to use ISO8601 correctly
  • How to verify reboot history using CMD, PowerShell, and Event Viewer

Why Daily Reboots Matter

Daily reboots help:

✔ Apply pending patches
✔ Refresh system resources
✔ Reset memory leaks
✔ Clear stale network tokens
✔ Improve app reliability (Teams, Outlook, Apps)
✔ Prevent long uptime instability on Cloud PCs

For mission-critical systems, a 2:00 AM reboot window is ideal.


Understanding Intune’s Reboot CSP

The Reboot CSP is defined under:

./Device/Vendor/MSFT/Reboot

The key node used for daily reboot automation is:

./Device/Vendor/MSFT/Reboot/DailyRecurrent

This value defines:

  • When the reboot schedule starts
  • The daily time for the reboot
  • Whether the reboot repeats automatically

The CSP expects an ISO8601 date-time string.


How DailyRecurrent Scheduling Works

Even though the ISO8601 value contains a date, the policy is not limited to that date.

Instead:

The date only defines when the schedule begins.
The reboot repeats daily at the same time.

For example:

2025-02-20T10:00:00Z

Means:

  • Start reboot schedule on Feb 20
  • Reboot daily at 10:00 UTC

If your devices are in Pacific Time, that equals:

  • 2:00 AM PST
  • 3:00 AM PDT (DST)

Correct ISO8601 Formatting (Avoid Error 65000)

If the format is wrong, Windows returns:

Error 65000 — Invalid Policy Value

To avoid this, use UTC-only format with “Z”:

Correct Example (2 AM Pacific)

PST = UTC − 08:00
2 AM PST = 10:00 UTC

2025-02-20T10:00:00Z

Correct Example (10:30 AM Pacific)

10:30 AM PST = 18:30 UTC

2025-02-20T18:30:00Z

❌ Wrong Examples

2025-02-20T02:00:00-08:00   (may cause 65000)
02:00 AM                     (invalid)
2025/02/20 02:00             (invalid)

Step-by-Step: Configure Daily Reboots in Intune

Step 1: Go to Intune

  • Microsoft Intune Admin Center
  • Devices → Configuration Profiles
  • Create Profile
  • Platform: Windows 10 and later
  • Profile type: Settings Catalog

Step 2: Search for “Reboot”

Add:

Reboot CSP → DailyRecurrent

Step 3: Enter your ISO8601 value

For example, to reboot daily at 2 AM Pacific:

2025-02-20T10:00:00Z

Step 4: Assign to device groups

Recommended: use a dynamic device group for Cloud PCs.

Step 5: Save and sync

Run on device:

dsregcmd /status

Then:

IntuneManagementExtension.exe -c

Pacific Time Examples

🕑 Daily 2:00 AM PST

2025-02-20T10:00:00Z

🕥 Daily 10:30 AM PST

2025-02-20T18:30:00Z

🕒 Daily 3:00 AM PDT (Daylight Saving)

2025-06-20T10:00:00Z

You can set the date to any future date — the schedule will still be daily.


How to Verify Policy Application

✔ Check registry

reg query HKLM\SOFTWARE\Microsoft\PolicyManager\current\device\Reboot

✔ Check scheduled task

schtasks /query /TN "\Microsoft\Windows\Reboot\Reboot"

✔ Check device sync status

Intune Admin Center → Devices → Your Device → Device Configuration


Check Last Reboot Time (CMD)

Method 1: Systeminfo

systeminfo | find "System Boot Time"

Method 2: Net Statistics

net statistics workstation | find "Statistics since"

Method 3: WMIC

wmic os get lastbootuptime

Check Last Reboot Time (PowerShell)

Method 1: CIM Instance (best)

(Get-CimInstance Win32_OperatingSystem).LastBootUpTime

Method 2: Convert to readable format

([Management.ManagementDateTimeConverter]::ToDateTime(
  (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
))

Method 3: Check uptime

(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime

Troubleshooting

Error 65000

Cause: Incorrect ISO8601 format.
Fix: Use UTC with “Z”.

❌ Reboots happening at wrong time

Cause: Not converting PST → UTC correctly.
Fix: Use proper UTC time:

  • 2 AM PST → 10 AM UTC
  • 10:30 AM PST → 18:30 UTC

❌ Device did not reboot

Cause: Device was asleep or hibernating.
Fix: Ensure AC power + disable hibernation.


Conclusion

Microsoft Intune’s Reboot CSP provides a clean, reliable, cloud-native way to enforce daily reboot schedules on Windows devices. When paired with correct ISO8601 UTC formatting, reboots occur at the exact intended local time — without needing PowerShell scripts, GPOs, or Scheduled Tasks.

Using CMD, PowerShell, and Event Viewer, you can always verify the last system reboot and ensure consistent compliance.

If you’re managing Cloud PCs or large Windows fleets, daily reboot automation significantly improves reliability, performance, and security hygiene.

!!! THANKS FOR READING !!!

Regards,
HARISH KUMAR

Knowledge is not a finite resource to hoard; it’s a boundless treasure that grows when shared

Leave a Comment