Lenovo System Update somewhat demystified



Suppose you have a Laptop, which therefore must be a [ThinkPad](http://www.lenovo.com/products/us/laptop/thinkpad/). Let's also assume that you [use Windows 2008 as a workstation](http://www.win2008workstation.com/), just like [I do](/2012/03/22/turning-windows-2008-r2-into-a-workstation/). Then, you might run into some issues with [Lenovo System Update](http://support.lenovo.com/de_DE/detail.page?LegacyDocID=TVSU-UPDATE). To be precise, it tells you: > An error occurred while gathering user information. Then it stops. I will provide a solution to this problem which is not specific to Windows 2008 R2, and therefore, I hope that my solution will also work for future versions of Windows that are not out-of-the-box supported by SystemUpdate. ## Why does it happen? The reason for this is somewhat obscure, but I *believe* it works a little something like this. Keep in mind that the following is wild speculation on my part, but all practical evidence supports my theory: 1. SystemUpdate identifies your operating system by a unique string, which I will refer to as your **OSTVIA**. I have not been able to figure out what that stands for. 2. It opens the file MappingInterface.xml, which has the format
<MappingInterface>
    <OSs>
        <OS>
            <OSTVIA>W2K-PRO</OSTVIA>
            <OSeGatherer>
                <Name>Windows 2000 Professional</Name>
                <ServiceRelease>default</ServiceRelease>
            </OSeGatherer>
            <OSPCDPackSpec>2K</OSPCDPackSpec>
            <OSQuest>Windows 2000</OSQuest>
        </OS>
        ...
    </OSs>
    <Languages>
        ...
    </Languages>
</MappingInterface>
and searches for the entry in OSs whose OSTVIA matches yours. 3. It selects an update channel based on the **OSQuest** entry. It probably uses other information in there as well, but I believe that OSQuest is the most important entry. 4. It performs the update. If step 2 fails, it throws the above error. If you are running Windows 2008, this is because your OSTVIA does not appear in MappingInterface.xml at all. The [solution to this problem](http://forums.lenovo.com/t5/ThinkVantage-Technologies/System-Update-4-0-missing-MappingInterface-for-Windows-Server/m-p/167902#M7794) is well-known: Simply add
<OS>
    <OSTVIA>WINSRV2K8-R2</OSTVIA>
    <OSeGatherer>
        <Name>Windows Server 2008 R2</Name>
        <ServiceRelease>default</ServiceRelease>
    </OSeGatherer>

    <OSQuest>Windows 7</OSQuest>
</OS>
to your MappingInterface.xml and you're good. Right? Well, in some cases. The problem is that your OSTVIA may also be **WINSRV2K8-R2.SP1** as it was in my case: I run Windows Server 2008 R2, Standard Edition. This naturally leads us to the next question: ## How to determine my OSTVIA? This question seems to never have been answered before. I had googled for hours, and the only two OSTVIA's that came up in connection with this problem were **WINSRV2K8-R2** and **WINSERVER2008-Standard.SP1** ((See this blog post: http://bowlova.blogspot.de/2011/11/resolved-error-occurred-while-gathering.html)). Both did not work, so I did the following: - Run SystemUpdate, let it fail (I am sure you already did this anyway). - Open a command prompt and navigate to the directory where SystemUpdate is installed. - Navigate to the subdirectory **egather** and search the file **sysrecomin.xml**. There's an entry
<ASC ID="OS">WINSRV2K8-R2.SP1</ASC>
and I knew I struck gold. The file looks like a logfile created during the first, failed run of SystemUpdate. It contains lots of other information about my system, and this particular entry seems to be the OSTVIA. Putting the following into my MappingInterface.xml solved the problem:
<OS>
    <OSTVIA>WINSRV2K8-R2.SP1</OSTVIA>
    <OSeGatherer>
        <Name>Windows Server 2008 R2</Name>
        <ServiceRelease>default</ServiceRelease>
    </OSeGatherer>
    <OSQuest>Windows 7</OSQuest>
</OS>
* As a solution for future problems of this sort, I suggest having [grep for windows](http://gnuwin32.sourceforge.net/packages/grep.htm) or just [cygwin](http://www.cygwin.com/) installed and performing
grep -ir "ASC ID=\"OS\"" *
in the SystemUpdate directory after a failed attempt. This should reveal you your OSTVIA and allow you to modify MappingInterface.xml accordingly.

10 Replies to “Lenovo System Update somewhat demystified”

  1. Does the spacing & placement of the text in that piece of code matter when inputting it into the XML file?
  2. I would guess no, but I have not tinkered with it for a long while. I see no reason, though, why spacing should matter since it is XML after all. The program will most likely use some XML parser library, which is very unlikely to care about whitespace.

Leave a Reply to rattle Cancel reply

Your email address will not be published. Required fields are marked *