Windows 7 time keeps changing by itself

As the title suggests windows time keeps changing in random times, with random amounts. It sometimes happens every minute, sometimes it is good for hours. If I go hit synchronize with Internet time, it updates to the correct time.

Things I read/checked

  1. Disable/Enable Internet time synchronization. No help.
  2. Disable/Enable windows time service. No help.
  3. CMOS battery is dead. No it is not dead. Time changes also do happen when windows is running.
  4. Your router/modem time is wrong and effecting windows time. No, it is not wrong.
  5. Your time zone is configured incorrectly. No it is UTC+0 London
  6. You are dual booting into Hackintosh/Linux. No only Win 7 runs on this PC.
  7. You have a dodgy overclocking. I did have a high OC profile, but tried running at stock speeds with no help.
  8. Virus/Trojan. I highly doubt it. This is a very bare Windows installation for gaming. Only windows and games with Steam are installed.

Update

I can confirm, this problem does not exist, when I start the windows in Safe Mode. I've tested this by booting into safe mode. After the boot, I corrected time manually and left the pc running for a couple of hours, and the time was not changed.

Update 2

I don't know how I missed this detail (or actually if it will help) but the time resets to "that" exact time. That exact time being the first updated time.

Example:

  • I boot the PC, and after sometime it resets to (lets say) 09:33:27
  • a-) I correct the time, leave it for a period, and it jumps back to 09:33:27
  • b-) I leave it running for some time and it resets to 09:33:27 after a period (very random period I see no pattern here like hourly/every 17 minutes or anything else)
  • This keeps happening, regardless of me changing the time or not.
  • After next boot (next day?) it picks another time to reset to

More details

Here is a screenshot from Event viewer, about the time change. Keep in mind this screenshot is taken when the "Windows Time" service is disabled.

enter image description here

Event properties screenshot:

enter image description here

Details page from same event:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
  <Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}" /> 
  <EventID>1</EventID> 
  <Version>0</Version> 
  <Level>4</Level> 
  <Task>0</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x8000000000000010</Keywords> 
  <TimeCreated SystemTime="2014-01-25T09:38:34.500000000Z" /> 
  <EventRecordID>19280</EventRecordID> 
  <Correlation /> 
  <Execution ProcessID="4" ThreadID="64" /> 
  <Channel>System</Channel> 
  <Computer>slayer</Computer> 
  <Security UserID="S-1-5-18" /> 
</System>
<EventData>
  <Data Name="NewTime">2014-01-25T09:38:34.500000000Z</Data> 
  <Data Name="OldTime">2014-01-25T13:59:57.982183900Z</Data> 
</EventData>
</Event>

Screenshot and the details kind of implies that, windows is really thinking that this is the correct time and feel the need to update it. Although no windows service is activated to authorize this.

Any ideas?

Update 3 Problem & Solution

The problem was apparently not Windows or any other software trying to update the time.

After reading the system memory dump for an hour I found out Windows was unable to read RTC from motherboard. After failing to read the RTC state for a while, Windows thinks it is calculating the time wrong and reverts to last know RTC state.

I have no idea why this is not happening in "Safe Mode" and running windows successfully under safe mode put me in completely wrong route (Searching for an error in Software instead of hardware) The source of the fault was System BIOS (or UEFI in my case) not running at all after System POST's and boots. A simple google search for this and apparently it is a really common problem with most UEFI boards(Using an Asus-ROG board myself)

Solution advised was: Flash your UEFI and reset CMOS on standby power. Since I knew I was already on a recent version UEFI, just resetting CMOS on standby worked for me. Everything works now without a problem.

Thanks for all the input and sorry for misleading info about the problem, but I'll leave all the information posted above, hoping that it might else someone else.


Solution 1:

Try this command:

bcdedit /set {current} useplatformclock yes

I found it around the Internet, but no source is available for me. I had the same problem in night hours, now - after this command - it is gone. System restart is required.

Solution 2:

Doubt this is the answer to this user's problem as they've fixed it as above. However there is a common cause of exactly these symptoms in dual boot Windows/Linux systems: the two OS treat the CMOS clock differently and fight over setting the clock the way they want (Linux to UTC doing daylight savings etc in software, Windows to local time so the software and hardware clocks are the same).

This has a simple solution: tell one of them to use the other's default behaviour.

Windows: Set a new DWORD RealTimeIsUniversal to 1 in

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

and then make sure you've installed this from Windows Update: https://support.microsoft.com/en-us/kb/2922223

Linux: set UTC=false in /etc/sysconfig/clock

Obviously don't do both of these!

Solution 3:

There are two types of this problem. The first one resets to the base date & time which for most modern computers is 2008. Even with internet time sync disabled there are software such as Nero burning rom and MSinstall exec that will try to set the time for an install or run. Older versions of dotnet will also do this and some games install these old versions hidden in background. A recent install of an older version of printshop did just that. I ran tracemon and it was traced back to the dotnet 1.x that printshop installed internally.

Look at any older software gaming or otherwise you might have installed and look at the dotnet activity log as well.

The is also a correlation with SSL or internet secure server that if the date is older than one month (windows 7 & 8) that it will also cause unauthorized time and date changes and windows security will go into auto lockout and set the time and date back to the minimal default to protect itself.

I hope this helps.