Error 0x800f0922 when installing IIS on Windows 10: "The changes couldn't be completed."
Touch the file C:\inetpub\custerr\en-US\401-1.htm
, creating any missing directories in the path, then run the installer again.
More info:
I viewed the log file for DISM located at C:\Windows\Logs\DISM\dism.log
and found the following set of lines for the error:
2017-10-09 13:43:28, Error DISM DISM Package Manager: PID=4280 TID=14940 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x800f0922)
2017-10-09 13:43:28, Error DISM DISM Package Manager: PID=4280 TID=14940 Failed processing package changes with session options - CDISMPackageManager::ProcessChangesWithOptions(hr:0x800f0922)
2017-10-09 13:43:28, Error DISM DISM Package Manager: PID=4280 TID=14940 Failed ProcessChanges. - CPackageManagerCLIHandler::Private_ProcessFeatureChange(hr:0x800f0922)
2017-10-09 13:43:28, Error DISM DISM Package Manager: PID=4280 TID=14940 Failed while processing command enable-feature. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f0922)
2017-10-09 13:43:28, Info DISM DISM Package Manager: PID=4280 TID=14940 Further logs for online package and feature related operations can be found at %WINDIR%\logs\CBS\cbs.log - CPackageManagerCLIHandler::ExecuteCmdLine
2017-10-09 13:43:28, Error DISM DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=800F0922
Following the recommendation, I checked the CBS log located at C:\Windows\Logs\CBS\CBS.log
and found the following line with the same timestamp:
2017-10-09 13:43:28, Error CSI 00000096 (F) STATUS_OBJECT_PATH_NOT_FOUND #5294871# from Windows::Rtl::SystemImplementation::DirectFileSystemProvider::SysCreateFile(flags = (AllowSharingViolation|AllowAccessDenied), handle = {provider=NULL, handle=0, name= ("null")}, da = (FILE_GENERIC_READ|DELETE|WRITE_DAC|WRITE_OWNER|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|FILE_WRITE_DATA|0x00000040), oa = @0x92431fdd18->OBJECT_ATTRIBUTES {s:48; rd:NULL; on:[38]'\??\C:\inetpub\custerr\en-US\401-1.htm'; a:(OBJ_CASE_INSENSITIVE)}, iosb = @0x92431fdd78, as = (null), fa = (FILE_ATTRIBUTE_NORMAL), sa = (FILE_SHARE_READ|FILE_SHARE_WRITE), cd = 5, co = (FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|0x00004000), eab = NULL, eal = 0, disp = Invalid)
I was able to determine that it was looking for the path C:\inetpub\custerr\en-US\401-1.htm
and couldn't find it. Sure enough, that path did not exist at all.
First, I tried testing permissions by giving the user object Everyone full control access to inetpub. I know, not ideal, but it was worth it to test it. I ran that DISM command again to add HttpErrors, but still failed. Finally I just created the directories custerr
and en-US
, and a blank text file called 401-1.htm
, and tried DISM one last time. The folder instantly populated with the rest of the HTTP error pages and the installation completed.
Hope this helps someone.
I created the two directory paths / empty files with no change. But - I had selected to install -only- IIS Metabase and IIS 6 configuration compatability. When I additionally selected to install the IIS Management Console the procedure successfully ran to completion.