How branching works for installing updates
I was asked this question the other day and I thought it would make a good quick entry in the blog. A customer was having difficulty installing a particular update but they werent getting any kind of error message when they attempted the install. The customer could tell that the update wasnt applying because the version of the file in the update was not changing to the version number specified in the KB article. (BTW, this is exactly how you should determine if something is installed or not, many customers use the date of the file but that's never accurate). When the engineer working on the case asked me about it, they asked it in a way that I wasnt expecting. The question I was asked was:
"How do I force GDR/LDR branching on an update in Windows?"
This is a great question. First, in case you havent heard the terms before, GDR is General Distribution Release and LDR is Limited Distribution Release. In general terms, GDR versions of files are generally the version that files are after you do a clean install of Windows and then after installing a Service Pack for Windows. LDR versions of files are those shipped in between GDR releases and are usually shipped in the form of Windows Updates, QFE's (Quick Fix Engineered files) and private fixes built for instrumentation. Why would you want to enforce a particular branch of a file? Typically because a particular branch of a file might contain a slice of code that addresses an issue where another branch of the same file does not.
On Windows 2003 systems and earlier, you can force the branching of a file by using the switch /B:RTMGDR for GDR branched files or /B:RTMQFE for LDR branched files.
On Windows Vista/2008 systems and greater, branching has been deprecated and no longer takes place.
So, back to our customer. The customer was running Windows 2008 SP2. When we looked over the version of the file in the update they were trying to install and the version that was on their system, the version on their system was greater than that of the one in the fix. So in this case, we wont install that update. If the customer wanted to install that version of the fix, and their might be a good reason to do so, then they would need to remove whatever update on the system updated the file and then reinstall the update that previously wasnt installing.
--Joseph
Comments
Anonymous
January 01, 2003
@someone: We'll talk about Win8 at the appropriate time @dj: Yes, you can use pkgmgr if you really, really wanted to. Should you? Depends on what you think you're going to accomplish by applying a specific update in a specific way. The whole point is that servicing now works in a way that you dont have to do this like you had to before.Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
It's taken care of by the servicing stack during the operation by checking the branch of the file and the supersedence of that file against what is already installed on the operating system. If you supersede, you're installed. If you do not, you'll get an error message or the update will simply fail to install in a graceful fashion.Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hi Joseph, nice to see more blog posts of you :) You can force the LDR installation by extracting the MSU and the CAB file and installing the update-bf.mum with pkgmgr/DISM. Here you see what I suggested years ago on connect, give better error messages why an update can't be installed. "the update doesn't apply to your PC' is not useful. Maybe we get this in Windows 8. AndréAnonymous
January 01, 2003
@Dean; As Andre stated,no, what I am saying is that we now take care of branching for you so you dont have to force branches as might have been the case in the past. Even in the pre-2008 days, it was rare, but it happened. That's why I wrote this blog, in case anyone wanted to know what happened the the /B switch when working with updates.Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
*milestone, of course :)Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Hey Andre, long time no see :) Yes, you can technically force the package in that way but we no longer have a quick and easy way to do this, the servicing stack takes care of the branching for us now.Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
The comment has been removedAnonymous
July 28, 2011
Its really interesting to get this information, however, Thanks Joesph.Anonymous
August 05, 2011
The comment has been removedAnonymous
August 09, 2011
So are you saying that the "General Distribution Release and Limited Distribution Release" stuff is gone now ? There is only ONE version of any file ?Anonymous
August 10, 2011
Joseph, You didn't exactly say HOW 'we now take care of branching for you'.Anonymous
August 10, 2011
The comment has been removedAnonymous
August 10, 2011
So a service pack always always always replaces EVERY single windows file with NO exceptions ?Anonymous
August 11, 2011
The comment has been removed