Windows 7 Hotfix repository

Discussion in 'Windows 7' started by SoLoR, May 22, 2010.

  1. PointZero

    PointZero MDL Member

    Oct 5, 2011
    1,415
    3,777
    60
  2. komm

    komm MDL Addicted

    Jun 16, 2011
    894
    3,067
    30
    Sorry i oversaw that 976373 (v3) of my update list was also missing in the repro.
     
  3. komm

    komm MDL Addicted

    Jun 16, 2011
    894
    3,067
    30
    But i notice that there is at least one exceptions.
    If you are updating your install.wim and the update is a version update (-v1 => -v2), you have to remove the -v1
    update first. You are not able to fully uninstall the -v1 update after you have installed -v2.
    You can check this with dism /get-packages. You will see that -v1 is still in the list of packages (with state uninstall pending)
     
  4. burfadel

    burfadel MDL EXE>MSP/CAB

    Aug 19, 2009
    2,626
    3,856
    90
    Is that true when uninstalling the old version directly from the Windows\servicing\Packages folder?

    For instance, with KB976373:

    So to uninstall the old one after the new one, your would specify Package_for_KB976373~31bf3856ad364e35~amd64~~6.1.2.0 directly. This would leave v3 intact. If this doesn't work when integrating, its possible its an oversight? by Microsoft...

    On a completely different note, the setup install can also be updated through integration (boot.wim), although the number of updates that are applicable are much less of course. You can still try and run all the updates over it, just the non-applicable ones won't install.

    Does anyone do this/tried this? it kind of makes sense to some extent...
     
  5. komm

    komm MDL Addicted

    Jun 16, 2011
    894
    3,067
    30
    @burfadel
    I allway uninstall the packages previously added to install.win
    with:
    dism /image:%tmpdir% /remove-package /Packagename:package_for_KB2615128~31bf3856ad364e35~amd64~~6.1.1.0
    If I first remove the old 2615128
    and than add the new 2615128-v2
    the old package is no longer in the packages list.
    dism /image:%tmpdir% /Get-packages /Format:table >x64-image-pack.txt

    If I do it in the oposit way Package_for_KB2615128~31bf3856ad364e35~amd64~~6.1.1.0 still present in the packages list.
    Also some Updates with state "superseded" can only be removed from the install.wim,
    if you first uninstall the supersedeing update, than remove the superseded update and then add the superseding update again.

    Can you check if this situation is also true for online systems?
    Run
    dism /online /Get-packages /Format:table >x64-online-pack.txt
    on your system.
     
  6. burfadel

    burfadel MDL EXE>MSP/CAB

    Aug 19, 2009
    2,626
    3,856
    90
    The old ones are definitely removed when uninstalling after :) (I did double check with dism)

    There is a difference between integrating and installing to an online image though. The method of uninstalling v1 after v2 should work, its probably a minor issue with dism etc...

    Through integration the changes are made and finalised immediately on each update install/uninstall.

    On an online system, if the files are in use (which would be most of the time), the changes are summed with each update, and the files to be changes are placed in the Windows\winsxs\Temp\PendingRenames folder, with the change instructions in the Windows\winsxs\pending.xml file. So, if you install a new update, the change commands are written which are finalised upon reboot. Once the reboot has taken place, the files of the superseded update are no longer in use, so can be removed immediately.

    If you uninstall the superseded update first, since the files are in use, the change commands are written (to pending.xml and files copied to the pendingrenames folder), and they are finalised upon reboot. Once you reboot, the original files are now in use, so when you install the new update, you have to restart again for the new update files to be committed. This seems less practical and sensible, and you are also left between the installs using the original files. If you install the new update after uninstalling a superseded update, but before the superseded update uninstall changes are committed, you may run the risk that the changes are done incorrectly or some form of complication to arise.

    There is also a 'system' folder in Windows\winsxs\Temp (same location as the PendingRenames folder called PendingDeletes. Its not visible normally because its set as a 'system' folder. If you start messing around with uninstalling the superseded updates first, then installing new updates without restarting, its possible you could add clutter to this folder... or at least be one potential way of adding stuff to this folder that isn't deleted and will just end up taking disk space.

    So for integration it seems like you need to uninstall the superseded update first, and for an online system it seems you need to uninstall the superseded update after you install the new update and have rebooted :)
     
  7. komm

    komm MDL Addicted

    Jun 16, 2011
    894
    3,067
    30
    Yes, i checked it also,
    on an online system the correct order should be
    1. add newest
    2. remove oldest.

    for install.wim
    1. remove oldest
    2. add newest
     
  8. RickSteele

    RickSteele MDL Addicted

    Nov 12, 2009
    833
    483
    30
    o_OMan, this latest repo is givin' me BOD's like it was normal and I never get BOD's as a rule-very seldom; on a live system, in sysprep installing all the updates or after integrating them during install...I have a funny feeling it's the AMD hotfix, not sure because I have to blow the partition and restore an image in my backup folder.:confused:
     
  9. RicaNeaga

    RicaNeaga MDL Senior Member

    Apr 25, 2011
    252
    451
    10
    @burfadel After running VC++ Runtime Installer v7., I get KB2538243 as a needed update.


    BTW, does anyone make a silent installer for VC++ runtimes beside shon3i?
     
  10. burfadel

    burfadel MDL EXE>MSP/CAB

    Aug 19, 2009
    2,626
    3,856
    90
    #3635 burfadel, Dec 18, 2011
    Last edited by a moderator: Apr 20, 2017
    Yes, same here now you mention it! its the same issue as with KB2556532, its superseded but because its classed as a security update it seems Windows thinks it needs to be installed...

    Update KB2556532 is just the 6161 release of the C++ 2008 runtimes, and does not have any extra more functional files than the newer 6225. I don't know if Ricktendo64 knows of a way to make it so KB2538243 doesn't show... (without manually hiding it that is).

    I know of a way to hide it...
    Code:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\ApplicabilityEvaluationCache\Package_for_KB2556532~31bf3856ad364e35~amd64~~6.1.1.1]
    "ApplicabilityState"=dword:00000070
    "CurrentState"=dword:00000000
    In the above code, if you had 'applicability state' set to 0, it will resolve the problem. The issue is, the key is read only! and you can't change the permissions for it either, so it seems.
     
  11. ricktendo64

    ricktendo64 MDL Expert

    Apr 20, 2008
    1,396
    2,025
    60
    IMO its always better to integrate the updates you can and only sysprep the updates you cant integrate

    I am not having the same problem as you guys, WU is clean here
     
  12. amires

    amires MDL Member

    Sep 27, 2009
    219
    129
    10
    KB2592546 is buggy and Microsoft quoted the following in the knowledge base article :

     
  13. ricktendo64

    ricktendo64 MDL Expert

    Apr 20, 2008
    1,396
    2,025
    60
    I spoke too soon, yep KB2538243 is also showing up for me
     
  14. shon3i

    shon3i MDL Junior Member

    Jun 25, 2011
    65
    21
    0
    I will update mine if need, but i don't see any new hotfixes out for vc++ runtimes?
     
  15. ricktendo64

    ricktendo64 MDL Expert

    Apr 20, 2008
    1,396
    2,025
    60