Reinjecting specific component versions back to SxS

Discussion in 'Windows 10' started by DonZoomik, Mar 17, 2017.

  1. DonZoomik

    DonZoomik MDL Novice

    Apr 5, 2015
    17
    8
    0
    #1 DonZoomik, Mar 17, 2017
    Last edited by a moderator: Apr 20, 2017
    Background. I think I've hit a servicing stack bug. Offline integration with ResetBase causes too many components to be scrubbed and image becomes unpatchable with CBS.log errors such as
    Code:
    2017-03-16 22:53:44, Info                  CSI    0000098d Changelist winner missing files - Microsoft-Windows-SMBServer, version 10.0.14393.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35}
    There's a lot of those, all with RTM versions (.0), superseded (eg updated version is in image and active) and all have been scrubbed during ResetBase. SFC and DISM RestoreHealth don't find any problems (as SxS is consistent) - just for some reason, servicing stack chooses superseded and removed components.
    I've only noticed this on WS2016 so far and I'll be redeploying affected systems or getting a support ticket but I figured it would be nice to try some non-supported hacks for learning experience. :)

    There don't seem to be any supported way to inject specific versions that are not hotfix based (eg DISM + MSU/CAB). If it were looking for a hotfix version, I'd Add-Package the CAB package and be done with it but RTM is not a CAB! Also I can't combine Add-Package with Source option (as in Enable-Feature or RestoreHealth) to point to missing/removed files.
    I took a look at client dedup packages and SxS extractor but these seem to be feature-focused but as far as I can figure out, my missing components are not related to any specific (optional) feature but foundation package.

    Can I inject specific components back to SxS? By looking at dedup packages it seems that I can't simply copy a few files (if I ever found all the necessary files).
     
  2. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    16,141
    84,319
    340
    Info and Warning lines in CBS.log do not indicate actual errors

    afaik, servicing stack always choose base RTM version for comparison

    did you try to point RestoreHealth source to clean 14393.0 winsxs directory?
     
  3. DonZoomik

    DonZoomik MDL Novice

    Apr 5, 2015
    17
    8
    0
    #3 DonZoomik, Mar 17, 2017
    Last edited by a moderator: Apr 20, 2017
    (OP)
    I did't think of running RestoreHealth with Source as it never complained, I'll give it a go, can't hurt.
    Edit: no errors, no components added back.
    Actual error part (with some afterquakes). This is immediatly after "Changelist winner missing files" messages.
    Code:
    2017-03-16 22:53:46, Error                 CSI    000009ac@2017/3/16:20:53:46.05 (F) onecore\base\wcp\componentstore\csd_winners.cpp(1288): Error STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE originated in function OriginateFilesMissingError expression: (null)
    [gle=0x80004005]
    2017-03-16 22:53:46, Info                  CBS    Added C:\Windows\Logs\CBS\CBS.log to WER report.
    2017-03-16 22:53:46, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20170316175434.log to WER report.
    2017-03-16 22:53:46, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20170316165021.log to WER report.
    2017-03-16 22:53:46, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20170316150749.log to WER report.
    2017-03-16 22:53:46, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20170316134025.cab to WER report.
    2017-03-16 22:53:46, Info                  CBS    Added C:\Windows\Logs\CBS\CbsPersist_20170316115609.cab to WER report.
    2017-03-16 22:53:47, Info                  CBS    Not able to add pending.xml to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
    2017-03-16 22:53:47, Info                  CBS    Not able to add pending.xml.bad to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
    2017-03-16 22:53:47, Info                  CBS    Not able to add poqexec.log to Windows Error Report. [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
    2017-03-16 22:53:47, Error                 CSI    000009ad (F) STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE #3698612# from CCSDirectTransaction::PerformChangeAnalysis(...)[gle=0xd0150024]
    2017-03-16 22:53:47, Error                 CSI    000009ae (F) STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE #3698611# from CCSDirectTransaction::PrepareForCommit(...)[gle=0xd0150024]
    2017-03-16 22:53:47, Error                 CSI    000009af (F) STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE #3698610# from CCSDirectTransaction::ExamineTransaction(...)[gle=0xd0150024]
    2017-03-16 22:53:47, Error                 CSI    000009b0 (F) STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE #3698609# from CCSDirectTransaction_IRtlTransaction::ExamineTransaction(...)[gle=0xd0150024]
    2017-03-16 22:53:47, Error                 CSI    000009b1 (F) HRESULT_FROM_WIN32(ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE) #3305787# from Windows::COM::CPendingTransaction::IStorePendingTransaction_Analyze(...)[gle=0x8007371b]
    2017-03-16 22:53:47, Error                 CSI    000009b2 (F) HRESULT_FROM_WIN32(ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE) #3058485# from Windows::ServicingAPI::CCSITransaction::ICSITransaction_Commit(Flags = 47, pSink = NULL, disp = 0, coldpatching = FALSE)[gle=0x8007371b]
    2017-03-16 22:53:47, Error                 CSI    000009b3 (F) HRESULT_FROM_WIN32(ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE) #3058484# 64845655 us from Windows::ServicingAPI::CCSITransaction_ICSITransaction::Commit(flags = 0x0000002f, pSink = NULL, disp = 0)
    [gle=0x8007371b]
     
  4. 600415

    600415 MDL Member

    Aug 31, 2015
    214
    259
    10
    #4 600415, Mar 17, 2017
    Last edited by a moderator: Apr 20, 2017
    The following worked for me on three different computers:
    Code:
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_fdproxy_31bf3856ad364e35_10.0.14393.0_none_4cbc21e7cce69240]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-wab-core_31bf3856ad364e35_10.0.14393.0_none_8297d8f0607bc857]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-d..ctoryclient-desktop_31bf3856ad364e35_10.0.14393.0_none_a054b459a93ba702]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\wow64_microsoft-windows-smbserver_31bf3856ad364e35_10.0.14393.0_none_30bdfec635eee3f3]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\wow64_microsoft-windows-security-tokenbrokerui_31bf3856ad364e35_10.0.14393.0_none_146e5ec5dbce6423]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-vssproxystub_31bf3856ad364e35_10.0.14393.0_none_5e308bd540a40359]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-flvprophandler_31bf3856ad364e35_10.0.14393.0_none_d3b9dcf3946de384]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-p..urepassword-library_31bf3856ad364e35_10.0.14393.0_none_3e83e1b5bfb2f444]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\wow64_windows-id-connecte..nt-provider-activex_31bf3856ad364e35_10.0.14393.0_none_a2f670835d1611e5]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft-windows-netevent_31bf3856ad364e35_10.0.14393.0_none_2b9c2878c8e40364]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-c..ellcore-cellularapi_31bf3856ad364e35_10.0.14393.0_none_1f86e5bf018c6cb2]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-c..atemanagersnapindll_31bf3856ad364e35_10.0.14393.0_none_8294f2e6c23f1b3e]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-t..latform-input-proxy_31bf3856ad364e35_10.0.14393.0_none_e72dddd521a50712]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-d..me-jkshared-roaming_31bf3856ad364e35_10.0.14393.0_none_718d563e7b2020b1]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft-windows-wab-core_31bf3856ad364e35_10.0.14393.0_none_26793d6ca81e5721]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-v..e-filters-tvdigital_31bf3856ad364e35_10.0.14393.0_none_0971a3a56dc248e4]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-c..domainjoindatamodel_31bf3856ad364e35_10.0.14393.0_none_5390d3f3f6230d2d]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-media-streaming-ps_31bf3856ad364e35_10.0.14393.0_none_71d98d7b243c7974]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-com-complus-ui-comuid_31bf3856ad364e35_10.0.14393.0_none_10a7b97d7c0b2007]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_fdproxy_31bf3856ad364e35_10.0.14393.0_none_a8dabd6b85440376]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-ie-offlinefavorites_31bf3856ad364e35_11.0.14393.0_none_c291c94bd34612d3]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft-windows-vssproxystub_31bf3856ad364e35_10.0.14393.0_none_0211f05188469223]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-smbserver_31bf3856ad364e35_10.0.14393.0_none_26695474018e21f8]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft-windows-c..atemanagersnapindll_31bf3856ad364e35_10.0.14393.0_none_2676576309e1aa08]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft-windows-t..latform-input-proxy_31bf3856ad364e35_10.0.14393.0_none_8b0f4251694795dc]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-security-tokenbrokerui_31bf3856ad364e35_10.0.14393.0_none_0a19b473a76da228]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\wow64_microsoft-windows-v..e-filters-tvdigital_31bf3856ad364e35_10.0.14393.0_none_13c64df7a2230adf]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-i..ell-serviceprovider_31bf3856ad364e35_10.0.14393.0_none_ee7b2ef6f638c0db]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\wow64_microsoft-windows-media-streaming-ps_31bf3856ad364e35_10.0.14393.0_none_7c2e37cd589d3b6f]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-appdefaults_31bf3856ad364e35_10.0.14393.0_none_205f97d6600ad094]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_windows-id-connecte..nt-provider-activex_31bf3856ad364e35_10.0.14393.0_none_98a1c63128b54fea]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-netevent_31bf3856ad364e35_10.0.14393.0_none_87bac3fc8141749a]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\amd64_microsoft-windows-c..rformance-xperfcore_31bf3856ad364e35_10.0.14393.0_none_0485df0f854b0cac]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\wow64_microsoft-windows-ie-offlinefavorites_31bf3856ad364e35_11.0.14393.0_none_cce6739e07a6d4ce]
    "CF"=-
    [HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components\x86_microsoft-windows-com-complus-ui-comuid_31bf3856ad364e35_10.0.14393.0_none_b4891df9c3adaed1]
    "CF"=-
    [-HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\VersionedIndex\10.0.14393.1051 (rs1_release_sec.170227-1821)]
    And then do:
    Code:
    dism /online /cleanup-image /restorehealth /source:WIM:X:\sources\install.wim:1
    to restore the files.
    (Must have Windows install DVD in drive X. Will not work from WU.)

    The registry script basically un-resetbases the affected components and then deletes the “versioned index” cache — it will get regenerated on next CBS operation, but without it the system will not see that the old components are supposed to be back there.
     
  5. DonZoomik

    DonZoomik MDL Novice

    Apr 5, 2015
    17
    8
    0
    Close but no cigar. I had pretty much the same list (I didn't bother to check the whole list) and at least some got added back.
    Now it is trying to find different versions of same components (.206, .447... etc) and a bunch of more components. I'll try to map some more components based on your example.