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.

Tags:

Windows

Iis