With the release of geoSCOUT version 9.0 geoLOGIC has upgraded the geoSCOUT launcher. As part of the upgrade process to version 9.0, you should be upgrading the geoSCOUT launcher as geoSCOUT users will get a warning message stating that they need the new launcher. They can still use geoSCOUT even if the launcher isn’t upgraded but they will keep seeing the warning message every time they open geoSCOUT.
The geoSCOUT launcher upgrade can be a challenging task in a large environment when users don’t have local admin. In this post, I’ll detail what I’ve discovered about how the geoSCOUT launcher works and include a PowerShell script to upgrade the launcher.
Discovery
The geoSCOUT launcher seems to work by looking for a user’s GMAP.ini
file saved in the user’s %AppData%
, if that file isn’t present then the launcher will throw an error.
When you install geoSCOUT using the Desktop_Build_NonAdmin
installer or the Desktop_Build
installer both of them use the context of the path that executed the install to populate the user’s GMAP.ini
file saved in %AppData%
.
My theory on how part of the geoSCOUT launcher works is that it uses the user’s GMAP.ini
file to find the geoSCOUT server and for version 8 it loads gsmainV8.exe
from the Programs directory in the geoSCOUT network location.
The geoSCOUT version 9.0 launcher seems to work the same way as the version 8 launcher did except that instead of launching gsmainV8.exe
it launches gsmap.exe
. Technically speaking you could run geoSCOUT by just launching gsmap.exe
but that isn’t the recommended way.
After the geoSCOUT upgrade to version 9.0 if a user is using a shortcut to gsmainV8.exe
they will get the warning that their launcher is out of date and needs to be upgraded even if their geoSCOUT launcher has been upgraded on their system.
The way the geoSCOUT launcher works is important because it shows us that unlike the normal geoSCOUT user install the path you use to install the launcher doesn’t matter.
In the past geoLOGIC support has told me there are no silent parameters for Setup_geoSCOUTLauncher.exe
. Surprise there are! If you try to run Setup_geoSCOUTLauncher.exe
from the command line and feed it a random parameter it will spit out a nice error that tells you all the secrets.
From that message, we can get even more information by going to https://jrsoftware.org/ishelp/index.php?topic=setupcmdline
This tells us that the Setup_geoSCOUTLauncher.exe
is an Inno Setup installer. Inno Setup does support command line parameters and silent parameters. We can also dive further into what Setup_geoSCOUTLauncher.exe
is doing. Spoiler it just puts geoSCOUT.exe
in Program Files and this reveals why admin is needed for the geoSCOUT launcher upgrade.
To silently install the geoSCOUT launcher we’ll want to use the following parameters.
/VERYSILENT
- This will show no prompts to the user about the installation or the progress.
/NORESTART
- This is just a safeguard as when you use very silent if a reboot is needed it would reboot the system without warning.
/SUPPRESSMSGBOXES
- This makes it force the install. If you did the install manually you would get a message that geoSCOUT Program Files already exists and a prompt about if you want to proceed or not.
/SP-
- This makes sure there are no messages to the user about the installation as it could display a message saying that the launcher is being installed.
If we combine all of those parameters we now have a silent install for Setup_geoSCOUTLauncher.exe
using the parameters supported by Inno Setup.
Another item that I noticed is that if you run Desktop_Build_v9.exe
on a system it does install the new geoSCOUT launcher but the build date for geoSCOUT.exe
is November 6th, 2023, but when you use Setup_geoSCOUTLauncher.exe
it installs geoSCOUT.exe
with a build date of November 27th, 2023. Both report as version 9.0 and the file sizes are only 1 KB different. I don’t know why they are different. From my testing, the fact that they are different doesn’t seem to make a difference.
The Script
- The script is built to work with the network install version of geoSCOUT.
- You need to upgrade your geoSCOUT network install to version 9.0 before you run the script.
- You will need version 9 of
Setup_geoSCOUTLauncher.exe
from your geoSCOUT install as the script needs this to do the upgrade.
Here is a link to the script on my GitHub https://github.com/thedxt/geoSCOUT#geoscout-90-launcher
The script will check if a system has C:\Program Files (x86)\geoSCOUT\geoSCOUT.exe
if that doesn’t exist the script aborts.
If C:\Program Files (x86)\geoSCOUT\geoSCOUT.exe
does exist the script checks if the geoSCOUT.exe
modification date is newer than November 5th, 2023. If the modification date is newer it considers that the geoSCOUT 9 launcher is already installed and exits. If the modification date is older than November 5th, 2023 the script considers that system to not have the geoSCOUT 9 launcher and downloads Setup_geoSCOUTLauncher.exe
and runs the install silently.
Essentially the script is built to be run across all systems and needs to be run as admin or run as system if using other script deployment tools and will only install the geoSCOUT version 9.0 launcher on systems that have an old launcher and will exit if a newer launcher is found or no launcher is found.