Upgrade old Clients with clean Uninstall-Install

I’ve had lot of problems to updated few clients to version 9.1 of BigFix Client. I’ve now a reduced number of them, but they are failing the direct upgrade(Manual and via fixlet).

The only method to upgrade them would be making a full uninstall of the old client and install the new one.

I’m look to preserve all the actual settings that the clients could have(Automatic Relay Selection, BES Client Settings, Manual Computer Groups Membership).

Is the any documentation that could guide me on that?

Until now, my idea is the following:

Create a Fixlet that:

1- Get a copy of actual settings and send them to an output File.
2- Download a copy of actual Relays.dat and ActionSite.afxm
3- Run BESRemove to uninstall old Client
4- Install new version without automatic start of service.
5- Merge copy of client setttings.
6- Copy Relays.dat
7- Start Service

I would like to avoid have duplicate entries in the console, so I’m also looking how to preserve computerID and Secuence numbers.

Has anyone made something similar?

You don’t indicate which OS you are interested in doing this with, but since you reference BESRemove, I assume Windows.

Rather than trying to save all of the Client settings to a Text file, simply export the HKLM\SOFTWARE\Wow6432Node\BigFix registry key, it will include the Settings, and the Relay the client was connected to as well as the ComputerID and the RegCount (used as part of the ComputerID Collision detection process).

I don’t know if this will preserve the Manual Groups, but according to IBM, you shouldn’t be using them very much anyway. I’ve tried to teach my CO’s to use Automatic Groups instead, and use multiple relevance clauses like Computer Name as lowercase contains "blahblah" if they want to simulate “Manual” Groups.

To accomplish all of this, you are going to need to create a CMD file that performs all the actions and be sure that you execute it from a folder outside the BES Client folder path. Executing the CMD file needs to be the last line of the Task. I don’t think there’s any reason to make it a Fixlet since the Client is going to ‘die’ as part of the Task and may never report a successful completion of the Action.

Uninstalling the old client with BESRemove means you will remove the clients private keys and certificates, so when the client registers again even though you might save the registry hive, the client will get a new computer id.

Before going to the extremes that you are, can you say what issues you might be having?

Even if you want to clean things up after an upgrade, merely removing the __BESData directory might be sufficient but I’d suggest a ForceRefresh of the client if its pre-9.5 to make sure the DB and the Client agree on the relevant objects.

This is my issue Exit Code 1603: A newer version of this application is already installed on this computer:

Ahh, if you BES Remove and intend on saving everything then, remember to save the KeyStorage directory as well (in the same directory as __BESData)

You should consider converting those settings into fixlets and creating a configuration baseline.