I solved the issue by resetting dirty flag on component store.
I have the same issue with my Windows10 Home (1607), and it doesn't allow me to sfc /scannow, even on safe mode. I tried many thing like recovery mode command prompt but no avail.
I found that my component store has dirty flag, when I looking C:\Windows\Logs\CBS\CBS.log .
2017-09-06 04:57:32, Info CSI 00000006 Component store has dirty flag; cannot create transactions against it at this time.
2017-09-06 04:57:32, Error CSI 00000007@2017/9/5:19:57:32.365 (F) onecore\base\wcp\componentstore\csd_transact.cpp(3531): Store corruption detected in function CCSDirect::CreateTransaction expression: 0
RegistryCorruption on resource '\Registry\Machine\COMPONENTS\StoreDirty'[gle=0x80004005]
Then, I searched a bit and found the way to reset the flag here:
https://www.sevenforums.com/windows-updates-activation/362706-windows-update-error-80073712-a.html
NoelDP wrote:
Try this..
Open an Elevated Command Prompt, and run the following commands...
REG LOAD HKLM\COMPONENTS C:\Windows\System32\config\COMPONENTS
REG DELETE /v HKLM\COMPONENTS\StoreDirty
reboot and try SFC again.
What I've actually done is to launch regedit and do backup registry via export all, click File -> "Load hive" to open C:\Windows\System32\config\COMPONENTS
and input "comp" as attach point,
and renamed HKEY_LOCAL_MACHINE\COMPONENTS\StoreDirty
to StoreDirty_backup via context menu, and unloaded the "comp".
After that, sfc /scannow worked successfully.