You may find the following error in your event log:
Source: ESENT
Event Log: Application
Type: Error
Event ID: 474
services (740) The database page read from the file “C:\WINDOWS\Security\Database\secedit.sdb” at offset 442368 (0x000000000006c000) (database page 107 (0x6B)) for 4096 (0x00001000) bytes failed verification due to a page checksum mismatch. The stored checksum was [63141769e42a9775] and the computed checksum was [0000006b83934ccf]. The read operation will fail with error -1018 (0xfffffc06). If this condition persists then please restore the database from a previous backup. This problem is likely due to faulty hardware. Please contact your hardware vendor for further assistance diagnosing the problem.
In my case, the secedit.sdb database had failed verification due to a page checksum mismatch due to a corruption.
To confirm whether secedit.sdb was corrupted, I ran the following command prompt command (run as administrator):
esentutl /g %windir%\security\database\secedit.sdb
This told me that secedit.sdb was corrupt. I then used the following command (run as administrator in an elevated command prompt):
esentutl /p %windir%\security\Database\secedit.sdb
This repaired the corrupted database for me and the problem went away. My understanding is that this command simply repairs the database and can lose data that’s not committed to the database yet (data in the write ahead log), I was fine with this, because I’m happy to accept the defaults, but you can also run the following command, which will try to read in the write ahead logs before the repair:
esentutl /r edb /l %windir%\security /s %windir%\security
It would probably be best to run this command first, before trying what I did to fix mine. Otherwise you might end up with other problems.