Windows: SFC /SCANNOW: Windows Resource Protection could not start the repair service

4

I cannot run SFC. How do I fix it?

C:\>sfc /scannow

Windows Resource Protection could not start the repair service.

C:\>net start trustedinstaller
The requested service has already been started.

C:\>Dism /Online /Cleanup-Image /ScanHealth

Deployment Image Servicing and Management tool
Version: 6.3.9600.17031

Error: 11

You cannot service a running 64-bit operating system with a 32-bit version of DISM.
Please use the version of DISM that corresponds to your computer's architecture.

The DISM log file can be found at C:\windows\Logs\DISM\dism.log

C:\>findstr /c:"[SR]" %windir%\logs\cbs\cbs.log

C:\>
dism.log
2017-11-03 16:06:12, Info                  DISM   PID=6268 TID=3252 Scratch directory set to 'C:\Users\Chloe\AppData\Local\Temp\'. - CDISMManager::put_ScratchDir
2017-11-03 16:06:12, Info                  DISM   PID=6268 TID=3252 DismCore.dll version: 6.3.9600.17031 - CDISMManager::FinalConstruct
2017-11-03 16:06:12, Info                  DISM   PID=6268 TID=3252 Successfully loaded the ImageSession at "C:\windows\System32\Dism" - CDISMManager::LoadLocalImageSession
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Found and Initialized the DISM Logger. - CDISMProviderStore::Internal_InitializeLogger
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Failed to get and initialize the PE Provider.  Continuing by assuming that it is not a WinPE image. - CDISMProviderStore::Final_OnConnect
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Finished initializing the Provider Map. - CDISMProviderStore::Final_OnConnect
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Provider has previously been initialized.  Returning the existing instance. - CDISMProviderStore::Internal_GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Provider has previously been initialized.  Returning the existing instance. - CDISMProviderStore::Internal_GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Manager: PID=6268 TID=3252 Successfully created the local image session and provider store. - CDISMManager::CreateLocalImageSession
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Provider has previously been initialized.  Returning the existing instance. - CDISMProviderStore::Internal_GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: 
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: <----- Starting Dism.exe session ----->
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: 
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: Host machine information: OS Version=6.3.9600, Running architecture=x86, Number of processors=8
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: Dism.exe version: 6.3.9600.17031
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: Executing command line: Dism  /Online /Cleanup-Image /ScanHealth
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Getting Provider FolderManager - CDISMProviderStore::GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Provider has not previously been encountered.  Attempting to initialize the provider. - CDISMProviderStore::Internal_GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Loading Provider from location C:\windows\System32\Dism\FolderProvider.dll - CDISMProviderStore::Internal_GetProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Connecting to the provider located at C:\windows\System32\Dism\FolderProvider.dll. - CDISMProviderStore::Internal_LoadProvider
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: Image session has been closed. Reboot required=no.
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: 
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: <----- Ending Dism.exe session ----->
2017-11-03 16:06:12, Info                  DISM   DISM.EXE: 
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Found the OSServices.  Waiting to finalize it until all other providers are unloaded. - CDISMProviderStore::Final_OnDisconnect
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Disconnecting Provider: FolderManager - CDISMProviderStore::Internal_DisconnectProvider
2017-11-03 16:06:12, Info                  DISM   DISM Provider Store: PID=6268 TID=3252 Releasing the local reference to DISMLogger.  Stop logging. - CDISMProviderStore::Internal_DisconnectProvider

I have not tried running it in Safe Mode yet.

Chloe

Posted 2017-11-03T20:21:45.187

Reputation: 4 502

Answers

3

Wow I never would have expected this. I found the answer in a comment.

https://www.technipages.com/windows-fix-windows-resource-protection-could-not-start/comment-page-2#comment-875476

I was using a 32 bit console called console2, and running as an administrator – was frustrating as hell as nothing worked. For me, this was the missing link in the chain. Really grateful man, as this has been bugging me for months. Microsoft really should have caught this one with a more meaningful error message… I wonder how many human years have been wasted from misleading error messages!

I was using Console2 also. When I ran it from the shitty Microsoft cmd shell (Command Prompt run as Administrator), then it worked.

Chloe

Posted 2017-11-03T20:21:45.187

Reputation: 4 502

“You cannot service a running 64-bit operating system with a 32-bit version of DISM.” - Indicates you were attempting to run DISM within a 32-bit command prompt. – Ramhound – 2017-11-03T20:42:14.550

I thought each process is independent. After all, I can launch 64 bit applications like Windows Explorer and Ruby from the command prompt. – Chloe – 2017-11-03T20:51:24.483

Both of those are 32-bit applications. – Ramhound – 2017-11-03T22:38:55.310

No, Ruby is 64bit version. >ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32] – Chloe – 2017-11-06T18:14:17.600

No, Ruby is 64bit version. >ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32] – Chloe – 2017-11-06T18:15:08.383

I just realized I was using 32 bit powershell too. – Ahmed Akhtar – 2018-08-25T17:08:13.877