Bigfix Console Removal

Hi all,

I have recently updated my company’s Bigfix Server to 9.5.2 and was going through cleaning up issues in the health checks. Several workstations have an older Console installed and I wanted to remove/upgrade them as needed. I have created the following relevance

(exists true whose (if true then (exists key whose (value "DisplayName" of it as string contains "IBM BigFix Console" and value "DisplayVersion" of it as string < "9.5.2.56") of key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" of native registry) else false))

My issue is that is it not grabbing all the machines from the health check with an outdated console version. Was the console known by a different Display Name in vesions prior to 9.2.7? I tried Tivoli Endpoint Manager and Tivoli Conole with no luck. Thanks.

1 Like

The “Upgrade platform components 9.5.2” fixlet in the BES Support site will upgrade the BigFix console on any machines that have it.

You can use the applicable computer list to determine machines that are running old console versions.

1 Like

Hi Strawgate,

Thanks for the reply. I have used that Fixlet but out of the box it only finds endpoints that do not have a console on them installed. I think i may have found the solution for my relevance :slight_smile:

Prior to 9.2.6 the product was IBM Endpoint Manager (and earlier it was Tivoli Endpoint Manager)

1 Like

Yes, as @strawgate recommends the Fixlet does show which systems have an older console installed. Referencing Fixlet 2449 from the BES Support site, “IBM BigFix - Updated Platform Server Components 9.5.2 Now Available!”. The Relevance statements for this Fixlet show all systems with an older Server Component, Web Reports, Relay, or Console. You can use this as a reference for building your own relevance to remove older consoles.

Specifically Relevance 5:
(exists running service "BESRootServer" whose (version of it < "9.5.2.56" AND version of it >= "9.5") AND (if (windows of operating system) then (not exists running application "BESAdmin.exe") else (true))) OR (((if (windows of operating system) then ((version of registration server = "9.5.2.56") AND exists regapp "BESConsole.exe" whose (version of it < "9.5.2.56" AND version of it >= "9.2.3")) else false) OR (exists running service "BESWebReportsServer" whose (version of it < "9.5.2.56" AND version of it >= "9.5"))) AND (version of registration server = "9.5.2.56"))

This detects BESRootServer, BESAdmin, BESconsole, and BESWebReportsServer. To look for older versions of the console, you can take this piece for your Relevance:
exists regapp "BESConsole.exe" whose (version of it < "9.5.2.56" AND version of it >= "9.2.3")
That was tailored to direct upgrades from 9.2.3 and higher only; I expect you could change it to
exists regapp "BESConsole.exe" whose (version of it < "9.5.2.56")

1 Like

Hi Julugo,

You can download the BES Remove Utility from below link.
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli%20Endpoint%20Manager/page/BES%20Remove%20Utility

And you can use below relevance what @jasonwalker mentioned…
exists regapp “BESConsole.exe” whose (version of it < “9.5.2.56”)

And use below command to Remove\Uninstall the Console .

“C:\UninstallConsole\BESRemove9.5.0.311.exe” /silent /console

Hi all,
I recently updated my company’s server to 9.2.8 and I discovered that there was too many consoles pushed out for 9.2.8. I noticed there is not a fixlet for this. I am trying to remove them as needed. Here is what I have for the action script and relevance.

action script
parameter “app”="{name of key whose (value “DisplayName” of it as string contains IBM Bigfix console") of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry}"
waithidden msiexec.exe /x {parameter “app” as string} /quiet

relevance
exists regapp “BESConsole.exe” whose (version of it < “9.2.5.130” AND version of it >= “9.2.8.74”)

applicable computers are not showing up. I did see Julugo’s recommendation for using the command but this will not target all computers affected.

Hi @dcarkin,

I utilized the info above to create my own fixlet as I usually upgrade as soon as IBM puts out a new release. This often leaves obsolete consoles behind on user’s machines that sign in infrequently. Here the fixlet I use below, I’m on version 9.5 but it should work once you make the edits for your environment. The first block is the relevance and the second block is the action script.

(version of client >= “6.0.0.0”) AND (exists true whose (if true then (exists key whose (value “DisplayName” of it as string contains “IBM BigFix Console” and value “DisplayVersion” of it as string < “9.5.4.38”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall” of native registry) else false))

// Enter your action script here
parameter “app”=“{name of key whose (value “DisplayName” of it as string contains “IBM BigFix Console”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall” of registry}”
waithidden msiexec.exe /x {parameter “app” as string} /quiet

1 Like

Just to follow-up, the reason this is showing Not Relevant for all systems is that there will not be a BESConsole.exe version that is both lower than 9.2.5.130 while also being higher than 9.2.8.74.

1 Like

Hi everyone,

I am happy to have found this topic and your contributions! We’re running LMT on top of BigFix in a Windows environment. I recently erroneously installed the BigFix Console on 63 machines and I understand the BES Remove utility tool will completely remove the BigFix Console and its components. To get a jumpstart on creating a custom fixlet for the job, I copied, renamed, and customized the fixlet "TROUBLESHOOTING Uninstall BES Client.bes"_ for our environment to fetch the BESRemove.exe tool and to use it to remove the BESConsole.exe and its configuration files and registry keys from the endpoints. The relevance expression targets the correct endpoints, but because I’m not a programmer, I’d like a second set of eyes (or more) look at my action script to ensure the edits I’ve made will achieve what I intend. Thank you so much in advance!

Relevance Script
(version of client >= “6.0.0.0”) AND ((exists true whose (if true then ((version of client >= “6.0.0.0”) AND (exists true whose (if true then (exists key whose (value “DisplayName” of it as string contains “BigFix Console” and value “DisplayVersion” of it as string < “9.6”) of key “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall” of native registry) else false))) else false)) AND (exists true whose (if true then (not exists (computer name) whose (it as string as lowercase = “[BES Root Server]” as lowercase)) else false)))

Action Script
// ##### WINDOWS #####
// Enter your action script here
if {name of operating system starts with “Win”}
prefetch BESRemove.exe sha1:d16de7c9cddb9855db10eed8dcdec55063ff83af size:4712320 http://software.bigfix.com/download/bes/100/util/BESRemove-10.0.6.84.exe sha256:baa5c60b6f392056166f4d0d123ded5a3fc4fa4c41a8425111279048aee5e18a

// create a batch file to create the temp folder
delete __appendfile 
delete tempdir.bat

parameter "tempDirPath" = "{ if(name of drive of regapp "BESConsole.exe" = "C:") then (if (exists variable "temp" of environment) then (value of variable "temp" of environment as string) else (pathname of folder "temp" of windows folder as string)) else (name of drive of regapp "BESConsole.exe" as string & "\tempBESRemove") }"

appendfile @echo off
appendfile { if (name of drive of regapp "BESConsole.exe" = "C:") then (if (exists variable "temp" of environment) then ("") else if (exists folder "temp" of windows folder) then ("") else ("mkdir " & pathname of windows folder as string & "\temp")) else (if (exists (folder ((name of drive of regapp "BESConsole.exe") as string  & "\tempBESRemove"))) then ("") else ("mkdir " & name of drive of regapp "BESConsole.exe" as string & "\tempBESRemove")) }
move __appendfile tempdir.bat 

waithidden tempdir.bat
delete tempdir.bat

delete "{parameter "tempDirPath" & "\BESRemove.exe"}"

delete "{parameter "tempDirPath" & "\delConsole.iss"}"

move __Download\BESRemove.exe "{parameter "tempDirPath" & "\BESRemove.exe"}"

copy "{pathname of client folder of site "BESSupport" & "\delConsole.iss"}" "{parameter "tempDirPath" & "\delConsole.iss"}"

// create a batch file to run BESRemove from a different directory and then uninstall console

appendfile @echo off

appendfile cd /D "{parameter "tempDirPath"}"

appendfile start BESRemove.exe /silent /force /console

if {exists ( folder (name of drive of regapp "BESConsole.exe" as string & "\tempBESRemove" ))}
	appendfile cd ..
	appendfile start rmdir /Q /S "{parameter "tempDirPath"}" > NUL 2> NUL
endif

// move batch file to temp directory

delete "{parameter "tempDirPath" & "\RunBESRemove.bat"}"

copy "__appendfile" "{parameter "tempDirPath" & "\RunBESRemove.bat"}"

// run batchfile

runhidden "{parameter "tempDirPath" & "\RunBESRemove.bat"}"

Well, it looks reasonable to me, but by all means please do test on a few systems before mass deployment.

1 Like

Absolutely. Thank you!