"0xc1800118" error when you push Windows 10 Version 1607 by using WSUS

Symptoms
Consider the following scenario:

  • You have Windows Server Update Services (WSUS) configured in your environment.
  • On the WSUS server, you install update 3159706 to enable decryption of the new feature update for Windows 10.
  • You approve the feature update for Windows 10 Version 1607.
  • You notice that WSUS clients detect and download the feature update to C:\Windows\ccmcache, and that files populate correctly in C:\Windows\SoftwareDistribution\DataStore.
In this scenario, the installation starts, and files are decompressed to C:\$Windows.~BT. However, the process fails and returns the following error code:

0xC1800118

Additionally, the following entry may be logged in the Setup.err and Setup.act logs:

From Setup.err <Date> <Time>, Error SP CSetupPlatform::ResurrectNewSystem: Cannot resurrect new system.: Win32Exception: \\?\C:\$Windows.~BT\Sources\NewSystem.dat: The system cannot find the file specified. [0x00000002] __cdecl UnBCL::FileStream: :FileStream(const class UnBCL::String *,enum UnBCL::FileMode,enum UnBCL: :FileAccess,enum UnBCL::FileShare,unsigned long) [gle=0x00000002] <Date> <Time>, Error CONX Windows::Compat::Appraiser::SetupAppraiser: :StopEtlLogger (2884): Waiting on generaltel process failed: [258].[gle=0x00000102] <Date> <Time>, Error MOUPG RecoverCrypto: File is encrypted, but no key was provided. <Date> <Time>, Error MOUPG CDlpActionRecoverCrypto::DoCrypto(1713):  Result = 0xC1800118 <Date> <Time>, Error MOUPG CDlpActionRecoverCrypto::ExecuteRoutine(2465):  Result = 0xC1800118 <Date> <Time>, Error MOUPG CDlpActionImpl<class CDlpErrorImpl<class CDlpObjectInternalImpl<class CUnknownImpl<class IDlpAction> > > >: :Execute(441): Result = 0xC1800118From Setup.act <Date> <Time>, Error MOUPG RecoverCrypto: File is encrypted, but no key was provided. <Date> <Time>, Error MOUPG CDlpActionRecoverCrypto::DoCrypto(1713): Result = 0xC1800118 <Date> <Time>, Error MOUPG CDlpActionRecoverCrypto::ExecuteRoutine(2465): Result = 0xC1800118 <Date> <Time>, Warning MOUPG CSetupDiagnostics::ReportData - Not reporting WINDLP data point [0x2101] <Date> <Time>, Warning MOUPG CSetupDiagnostics::ReportData - Not reporting WINDLP data point [0x2100] <Date> <Time>, Error MOUPG CDlpActionImpl<class CDlpErrorImpl<class CDlpObjectInternalImpl<class CUnknownImpl<class IDlpAction> > > >: :Execute(441): Result = 0xC1800118 <Date> <Time>, Info MOUPG RecoverCrypto: Leaving Execute Method <Date> <Time>, Error MOUPG CDlpTask::ExecuteAction(3243): Result = 0xC1800118Error Details Hex code - 0xc1800118 Symbolic Name - WINDLP_E_RECOVERCRYPTO_WIM_DECRYPTKEY_MISSING Error Description - No key was provided to decrypt the specified WIM file
Cause
This problem occurs if the Windows 10 Version 1607 update is encrypted but does not appear as encrypted in the WSUS Database. The problem may occur if the updates are synced before you apply KB3159706.
Workaround
To work around this problem, follow these steps:

  1. Detect whether WSUS is in a bad state. To do this, run the following query:

    select TotalResults = Count(*)from tbFilewhere (IsEncrypted = 1 and DecryptionKey is NULL) or (FileName like '%14393%.esd' and IsEncrypted = 0)
    Note A bad state is indicated by a "TotalResults > 0" result.

  2. If WSUS is in a bad state, take the following actions in the listed order and in the indicated locations:

    1. Disable the “Upgrades” classification (USS or stand-alone WSUS)
    2. Delete the previously synched upgrades (all WSUS - start at the topmost server)
    3. Enable the “Upgrades” classification (USS or stand-alone WSUS)
    4. Delete files from the tbFile table in the WSUS database (all WSUS - start at the topmost server)
    5. Perform a full sync (USS or stand-alone WSUS)

    Note
    Make sure that you perform the deletion step first on the WSUS server that is highest in your hierarchy. Then, work your way down. Otherwise, your deletions may be replaced by the USS on the next sync attempt.

    To take these actions, run the following commands:

    // disable Upgrades classification on local WSUS server (run in PowerShell)

    Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq “Upgrades”} | Set-WsusClassification -Disable

    // delete all update content on the current server belonging to the 1607 release (run in PowerShell)

    Note In the second command, "version 1607" represents English language updates. For non-English updates, substitute the language-appropriate titles for the SearchUpdates string.

    $s = Get-WsusServer$1607Updates = $s.SearchUpdates(“version 1607”)$1607Updates | foreach { $_.Decline() }$1607Updates | foreach { $s.DeleteUpdate($_.Id.UpdateId) }

    // enable Upgrades classification (run in PowerShell)

    Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq “Upgrades”} | Set-WsusClassification

    // delete files from tbFile table (run on database)

    declare @NotNeededFiles table (FileDigest binary(20) UNIQUE);insert into @NotNeededFiles(FileDigest) (select FileDigest from tbFile where FileName like '%14393%.esd'  except select FileDigest from tbFileForRevision);delete from tbFileOnServer where FileDigest in (select FileDigest from @NotNeededFiles)delete from tbFile where FileDigest in (select FileDigest from @NotNeededFiles)

    // perform full sync (run in PowerShell)

    $sub = $s.GetSubscription()$sub.StartSynchronization()
  3. If the Clients scan is failing and returning a 0xc1800118 error, follow these steps on every client:

    1. Stop Windows Update Service, and then delete the Update DataStore. To do this, run the following commands from an administrative Command Prompt window:

      net stop wuauservdel %windir%\SoftwareDistribution\DataStore\*
    2. Scan for updates again.
Properties

Article ID: 3194588 - Last Review: 09/29/2016 21:03:00 - Revision: 9.0

Windows 10 Version 1607

  • KB3194588
Feedback