While working to get rid of all our 2003/2008 DCs to get our AD to a 2012 Native level I came across one 2008 DC that was extremely difficult to rid ourselves of. It was created about a year ago to replace our 2003 FSMO master, and had been running without major issue since then. After building a new 2012 VM, and DCPromo'ing it, I transfered the FSMO roles to a stable server and set out to demote and decommission the 2008 machine. Upon running dcpromo from an admin shell, the system began to detect the ADDS binaries, and failed. The message it failed with was an extremely helpful "Failed to detect if Active Directory Domain Services binaries were installed. The error was: An error with no description has occurred." Lovely.
Going into roles and features to double check that the server knows ADDS is installed, but no roles show up. Ok, so just force the server to know that it's actually got everthing installed:
dism /online /enable-feature /featurename:DirectoryServices-DomainController-ServerFoundation
Failed as well. The logs at %windir%logsDISMdism.log show the following:
2013-03-18 17:50:39, Error DISM DISM Package Manager: PID=1148 Failed opening package Package_for_KB2790655_RTM~31bf3856ad364e35~amd64~~22.214.171.124. - CDISMPackageManager::Internal_CreatePackageByName(hr:0x800f0818) 2013-03-18 17:50:39, Error DISM DISM Package Manager: PID=1148 Failed to get the underlying cbs package. - CDISMPackageManager::OpenPackageByName(hr:0x800f0818) 2013-03-18 17:50:39, Error DISM DISM Package Manager: PID=1148 Failed opening package with the name "Package_for_KB2790655_RTM~31bf3856ad364e35~amd64~~126.96.36.199" - CPackageManagerCLIHandler::Private_GetPackageNameFromCommandLine(hr:0x800f0818) 2013-03-18 17:50:39, Error DISM DISM Package Manager: PID=1148 Failed while processing command remove-package. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f0818) 2013-03-18 17:50:39, Info DISM DISM Package Manager: PID=1148 Further logs for online package and feature related operations can be found at %WINDIR%logsCBScbs.log - CPackageManagerCLIHandler::ExecuteCmdLine 2013-03-18 17:50:39, Error DISM DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=800F0818
Checking the DCPromo logs at %windir%debug showed similar garbage:
dcpromoui 86C.EA4 0000 16:16:54.609 opening log file C:Windowsdebugdcpromoui.log dcpromoui 86C.EA4 0001 16:16:54.609 C:Windowssystem32dcpromo.exe dcpromoui 86C.EA4 0002 16:16:54.609 file timestamp 07/13/2009 21:39:02.901 dcpromoui 86C.EA4 0003 16:16:54.609 local time 03/18/2013 16:16:54.609 dcpromoui 86C.EA4 0004 16:16:54.609 running Windows NT 6.1 build 7600 (BuildLab:7600.win7_gdr.130104-1435) amd64 dcpromoui 86C.EA4 0005 16:16:54.609 logging flags 0001007C dcpromoui 86C.EA4 0006 16:16:54.609 Enter wmain dcpromoui 86C.EA4 0007 16:16:54.609 Enter CheckArgs dcpromoui 86C.EA4 0008 16:16:54.625 Detecting WOW64 dcpromoui 86C.EA4 0009 16:16:54.625 Detecting OS product type dcpromoui 86C.EA4 000A 16:16:54.625 Enter CheckIsServerCore dcpromoui 86C.EA4 000B 16:16:54.625 It is not on server foundation dcpromoui 86C.EA4 000C 16:16:54.625 HRESULT = 0x00000000 dcpromoui 86C.EA4 000D 16:16:54.625 Enter IsSKUSupported dcpromoui 86C.EA4 000E 16:16:54.625 GUI mode: true dcpromoui 86C.EA4 000F 16:16:54.625 Create mutex returns 0x0 dcpromoui 86C.EA4 0010 16:16:54.625 Enter Dialog::ModelessExecute dcpromoui 86C.EA4 0011 16:16:54.625 Enter UnattendSplashDialog::OnInit dcpromoui 86C.EA4 0012 16:16:54.625 Enter CheckInstallStates dcpromoui 86C.EA4 0013 16:16:54.625 Detecting NetFx3 component install state dcpromoui 86C.6B8 0014 16:16:54.641 Enter CbsGetUpdateInstallState dcpromoui 86C.6B8 0015 16:16:54.641 The category is 3 dcpromoui 86C.6B8 0016 16:16:54.641 Enter FindRoleInfo dcpromoui 86C.6B8 0017 16:16:54.641 Enter CheckIsServerCore dcpromoui 86C.6B8 0018 16:16:54.641 It is not on server foundation dcpromoui 86C.6B8 0019 16:16:54.641 HRESULT = 0x00000000 dcpromoui 86C.6B8 001A 16:16:54.641 Enter GetUpdateName dcpromoui 86C.6B8 001B 16:16:54.641 Enter GetPackageName dcpromoui 86C.6B8 001C 16:16:55.405 Failed to open package dcpromoui 86C.6B8 001D 16:16:55.405 HRESULT = 0x800F0818 dcpromoui 86C.6B8 001E 16:16:55.514 Unable to find identity string for package name Microsoft-Windows-Foundation-Package dcpromoui 86C.6B8 001F 16:16:55.514 Failed to retrieve the parent package name dcpromoui 86C.6B8 0020 16:16:55.514 HRESULT = 0x800F0818 dcpromoui 86C.6B8 0021 16:16:55.514 HRESULT = 0x800F0818 dcpromoui 86C.EA4 0022 16:16:55.514 HRESULT = 0x800F0818 dcpromoui 86C.EA4 0023 16:16:55.514 Enter GetErrorMessage 800F0818 dcpromoui 86C.EA4 0024 16:16:55.514 MessageBox: Active Directory Domain Services Installer : Failed to detect if Active Directory Domain Services binaries were installed. The error was: An error with no description has occurred. dcpromoui 86C.EA4 0025 16:17:08.166 Exit code is 64 dcpromoui 86C.EA4 0026 16:17:08.166 Enter UnattendSplashDialog::SelfDestruct dcpromoui 86C.EA4 0027 16:17:08.166 closing log
Well, at least both sources are pointing to the same error while running: 800F0818. After a bunch of Googling, I came across the System Update Readiness Tool. Which goes through installed updates, and fixes what it can.
A log is kept in %windir%LogsCBSCheckSUR.log and will tell you what it was able to do. If you've got multiple passes to fix everything, the full log is kept in the .persist version, with the above log only containing the latest run. For me, I had 3 errors, two were fixed automatically:
Checking Windows Servicing Packages Checking Package Manifests and Catalogs (f) CBS MUM Corrupt 0x00000000 servicingPackagesPackage_for_KB2506014_RTM~31bf3856ad364e35~amd64~~188.8.131.52.mum Expected file name Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum does not match the actual file name (fix) CBS MUM Corrupt CBS File Replaced Package_for_KB2506014_RTM~31bf3856ad364e35~amd64~~184.108.40.206.mum from Cabinet: C:WindowsCheckSurv1.0windows6.1-servicing-x64-2jan13.cab. (fix) CBS Paired File CBS File also Replaced Package_for_KB2506014_RTM~31bf3856ad364e35~amd64~~220.127.116.11.cat from Cabinet: C:WindowsCheckSurv1.0windows6.1-servicing-x64-2jan13.cab. (f) CBS MUM Corrupt 0x00000000 servicingPackagesPackage_for_KB2706045_RTM~31bf3856ad364e35~amd64~~18.104.22.168.mum Expected file name Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum does not match the actual file name (fix) CBS MUM Corrupt CBS File Replaced Package_for_KB2706045_RTM~31bf3856ad364e35~amd64~~22.214.171.124.mum from Cabinet: C:WindowsCheckSurv1.0windows6.1-servicing-x64-2jan13.cab. (fix) CBS Paired File CBS File also Replaced Package_for_KB2706045_RTM~31bf3856ad364e35~amd64~~126.96.36.199.cat from Cabinet: C:WindowsCheckSurv1.0windows6.1-servicing-x64-2jan13.cab. (f) CBS MUM Corrupt 0x00000000 servicingPackagesPackage_for_KB2790655_RTM~31bf3856ad364e35~amd64~~188.8.131.52.mum Expected file name Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum does not match the actual file name Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store Summary: Seconds executed: 723 Found 3 errors Fixed 2 errors CBS MUM Corrupt Total count: 3 Fixed: CBS MUM Corrupt. Total count: 2 Fixed: CBS Paired File. Total count: 2 Unavailable repair files: servicingpackagesPackage_for_KB2790655_RTM~31bf3856ad364e35~amd64~~184.108.40.206.mum servicingpackagesPackage_for_KB2790655_RTM~31bf3856ad364e35~amd64~~220.127.116.11.cat
Ok, so how to fix the last guy?
Off to Microsoft Romania for these two, articles, which explain in detail what's happened and how to fix it. Then, read up a bit on how standalone updates work. So, with the KB that was broken, and the broken files listed, I downloaded the kb referenced, and extracted it by opening a command prompt and doing:
wusa /extract:path_to_extract_to kb2790655.msu
Then ripped the mum and cat files from one of the extracted cabs, and try to place them in %windir%servicingpackages, access denied since it's a Trusted Installer folder. Take ownership, add permissions, paste the files.
Rerun dcpromo, everything worked.
At some point in all of this, I was Googling around and found this blog post, which was fantastically annoying since it sounded exactly like my problem, but the site doesn't render the content in Firefox or Chrome (for me), so it was no help. Loading it in IE works though, so Kudos to that guy for doing all this before me.