Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

Steps I use to narrow down an OS update installation failure on Windows Vista and higher

Steps I use to narrow down an OS update installation failure on Windows Vista and higher

Rate This
  • Comments 33

A while back, I wrote a blog post describing a specific error that can occur when trying to install the .NET Framework 3.5 or 3.5 SP1 on Windows Vista and Windows Server 2008.  In that post, I talked at a high level about some of the steps I take to narrow down this type of error.  Those troubleshooting steps are useful in more scenarios than just the one in that blog post, and they are hard to find in a search currently because of the post that they're currently located in.  As a result, I decided to write a standalone post that describes the steps I follow when trying to narrow down an OS update installation failure on Windows Vista and Windows Server 2008.  I am going to write this post from the perspective of troubleshooting a .NET Framework 3.5 and 3.5 SP1 installation failure on Windows Vista, but the same techniques are typically valid for other OS update installation failures on Windows Vista and higher.

It is important to keep in mind that the .NET Framework 3.5 and 3.5 SP1 both install updates to the .NET Framework 2.0 and 3.0 behind the scenes.  On Windows Vista and higher, the .NET Framework 2.0 and 3.0 are installed as OS components, so that means that the updates to 2.0 and 3.0 are OS update packages.  This means that failures in the .NET Framework 3.5 and 3.5 SP1 setups on Windows Vista and higher can possibly be caused by problems with the OS update engine.

Find the error in the .NET Framework setup log file

If I am investigating an error installing the .NET Framework 3.5 or 3.5 SP1, I start by opening the log file named %temp%\dd_dotnetfx35install.txt and searching for the string ***errorlog event***.  If the problem is in an OS update, then the error in the log will indicate a failure installing the component named Microsoft .NET Framework 2.0SP1 (CBS) or Microsoft .NET Framework 3.0SP1 (CBS).

If one of these components is the cause of the failure, there will be lines in dd_dotnetfx35install.txt directly above the ***errorlog event*** that look like the following:

[03/03/09,11:11:11] Microsoft .NET Framework 3.0SP1 (CBS): C:\Windows\system32\WUSA.exe exited with return value 2148468760
[03/03/09,11:11:11] InstallReturnValue: GFN_MID NET Framework 3.0SP1 (CBS), 0x800f0818

The name of the component and the HRESULT value listed for the InstallReturnValue will vary depending on the root cause of the failure, but the process name will always be WUSA.exe - this is the Windows Update Standalone Installer that is used to install OS updates on Windows Vista and later.

Find the error in the OS update installation engine log file (cbs.log)

One I have determined that the root cause of the failure is an OS update, I proceed to look at the log file at %windir%\logs\cbs\cbs.log.  This is the verbose log file for the OS update installation engine on Windows Vista and higher.  This log file is typically very large, and there are a couple of different ways I try to narrow down the error in this log:

  1. Search for the value listed in the InstallReturnValue entry from the dd_dotnetfx35install.txt log file in cbs.log.  For the above example, I would search for 0x800f0818.
  2. Search for the string generating failure report in cbs.log.

For the above example, text appears in cbs.log that looks like the following:

2009-03-03 11:11:11, Info                  CBS    WER: Generating failure report for package: Package_for_KB948610~31bf3856ad364e35~x86~~6.0.6001.2123, status: 0x800f0818, failure source: Execute, start state: 4, target state: 7

Determine the meaning of the error and possible workarounds

From here, the next step I take depends on what data appears in cbs.log.  Some of the information I look for is the following:

  1. Does the same error code occur for multiple different OS update packages?  If so, that typically means that there is a problem with the OS update engine itself as opposed to with the update that is failing.
  2. Does the error code appear in the System Update Readiness Tool knowledge base article?  If so, I typically try to use the tool available in that knowledge base article and/or the steps in this blog post.
  3. Does the error code appear in the table of common CBS error codes?  If so, I try the workaround suggested there for the error code that I found in cbs.log.
  4. If the error code does not appear in either of the above articles, then I try to use the err.exe tool to determine more detailed information about the cause of the error.

Sometimes, no error code information will appear in cbs.log.  In those cases, I also look for the error code in %windir%\WindowsUpdate.log.  There is a table of Windows Update Agent error codes that can be useful for error codes that appear in WindowsUpdate.log.

For additional information

While researching this blog post, I found a useful link on TechNet - http://technet.microsoft.com/library/cc732334.aspx.  This link contains more details about how to read and interpret the following log files:

  • %windir%\WindowsUpdate.log
  • %windir%\logs\cbs\cbs.log

It includes a table of common errors that can appear in a cbs.log along with possible resolutions or workarounds.

<update date="12/2/2009"> Added a link to a table of Windows Update Agent error codes that can appear in %windir%\WindowsUpdate.log and can be helpful in troubleshooting OS update installation issues in some cases. </update>

 

  • Hi Seth - This is the error that is causing the VC++ redistributable to fail to install on your computer:

    Error 1935.An error occurred during the installation of assembly 'Microsoft.VC90.ATL,version="9.0.30729.1",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="amd64",type="win32"'. Please refer to Help and Support for more information. HRESULT: 0x800736B3. assembly interface: IAssemblyCacheItem, function: Commit, component: {CE3230AC-E72E-3EDF-8A57-87FCE1CF2629}

    Error code 0x800736B3 means "The referenced assembly is not installed on your system."  For this type of error, I suggest trying the following steps:

    1.  Install the latest Windows service pack if you haven't yet.

    2.  Try to use SFC to repair the files that are a part of your OS by using the steps at blogs.msdn.com/.../how-to-repair-the-net-framework-2-0-and-3-0-on-windows-vista.aspx.

    3.  Try downloading and running the System Update Readiness Tool from support.microsoft.com/.../947821.

    4.  If none of the above help, it might be necessary to repair/re-install Windows to solve this type of problem.

  • 1)tried, it failed with error 7x80070643

    2)ran the commmand, it worked. however, i got this:

    Verification 100% complete.

    Windows Resource Protection found corrupt files but was unable to fix some of them.

    details are included in the CBS.Log windir\Logs\CBS\CBS.log. For example C:\Windows\Logs\CBS\CBS.log

    C:\Windows\system32>

    3)updater downloaded and installed correctly, found out i had 94 something updates that needed to be installed. even after downloading and running system update readiness tool, it still did did not help them install(also restarted, didn't help).

    4)did that a somewhat earlier, didn't resolve it(did resolve some unrelated wonky stuff).

    no idea what to make of it all. maybe my computer just sucks....

  • Hi Seth - Based on these results, it sounds like your OS is in a state where no updates can be installed.  There are some steps listed in the knowledge base article at support.microsoft.com/.../929833 that might help you repair the files that SFC was not able to repair in step 2.

    If that doesn't help, then I think you will need to repair/re-install Windows to solve this problem.  I haven't yet seen a case where repairing/re-installing Windows didn't help solve this problem, so I'm not sure what exactly you did in step 4 previously that caused it to not fix this issue.  I think you may need to try that step again.

  • alright, down to the command:

    "TAKEOWN /f" C:\Windows\System32\tcpmon.ini

    and i get:

    The system cannot find the path specified.

    in scfdetails.txt, it states(at least i think) the path as being C:\

    any ideas?

  • Hi Seth - Do you have that tcpmon.ini file at that path on your computer?  If not, I'd suggest doing a search to see if you have it anywhere else on your computer, and if you don't have it anywhere else, you might need to copy it from your original Windows installation disc or from another computer.

  • tracked the file down through two paths, it was there in both instances, yet it still "could not find the specified path"

    how would i copy it from my  installation disc without reinstalling windows?

  • Tried the takeown command on another computer(i do not own this one) and im pretty sure that that computer is perfectly fine(not sure though), it said it could not find the path specified, just like on my computer.

  • Hi Seth - If you're getting the same "couldn not find the specified path" error on a computer where that file is correctly installed, then I think that is probably a false positive and not the actual root cause of the errors you're seeing.

    In previous versions of Windows, SFC would prompt you for your original OS installation disc if it needed to re-install missing files.  However, it doesn't do that on Windows Vista and higher, so I'm not sure how to copy from the installation disc.  You might have to try to copy missing files from a working computer that is running the same version of Windows that is on your non-working computer.

    You might also want to try to contact Microsoft technical support for additional troubleshooting assistance with this issue.  You can find contact information for them at http://support.microsoft.com.

  • still have not come up with anything x_x.

    i do however think that if my computer becomes able to install updates a lot of problems would become fixed...

    since it is probably not tcpmon.ini etc...., where and what do you think the problem file(s) is/are? i'll try to look for it and try the same thing as with the tcpmon.ini

    i also think i might know a possible way to get the files from the installation disk.. possibly....

    any help is greatly appreciated. thanks!

  • Hi Seth - The exact files that are causing problems should be listed in cbs.log after running SFC.exe, and you should be able to find them by using the steps listed in the knowledge base article at support.microsoft.com/.../929833.

    If that doesn't help, then I think you'll need to repair/re-install Windows or contact Microsoft technical support to solve this type of problem.

  • is remote assistance an option?

    then you could directly look at my computer, easily see for yourself what you are looking for, and make fixes.

  • Hi Seth - I'm sorry, but I'm not able to provide remote assistance support via my blog.  That is something that the Microsoft support team can provide though, so I encourage you to look at the information at http://support.microsoft.com for support options for this issue.

  • alright, thank you for your help, it has been absolutely AWESOME in helping me narrow down on my solutions.

    before RA, i might try to request microsoft to mail me a hard copy(i do not currently have a copy on disk) of windows 7 home premium(i have a product key for the preinstalled W7HP on my computer) as i read recently while searching that in order for scf to actually fix corrupt or missing files, the installation disk must be inserted into the drive.

  • Hi Seth - If you bought a computer with Windows 7 pre-installed on it, I think you'll need to contact your computer manufacturer (as opposed to Microsoft) to get an installation disc.

    SFC used to prompt for the original OS installation disc on older versions of Windows (such as Windows XP and earlier).  I'm not sure it prompts for the OS installation disc on Windows Vista or Windows 7 though.  If you don't have the installation disc, you might need to try to copy the files from another Windows 7 computer or get copies of them from somewhere else, like what is described at support.microsoft.com/.../929833.

  • alright, but does it need a prompt if the disk is already in the drive?

    just disable autoplay for the disk?

Page 2 of 3 (33 items) 123
Leave a Comment
  • Please add 2 and 3 and type the answer here:
  • Post