Last updated on May 23, 2014
Garmin has recently moved to using Garmin Express for syncing and updating a number of its devices. I recently had to troubleshoot an issue where it wouldn’t work from within a corporate network that uses proxy servers. This has been widely reported on the Garmin Forums (eg: 1, 2), with the general consensus being that Express doesn’t support proxies. It turns out that this is incorrect; Express does support proxies, but because part of it runs as the LocalSystem Account (NT AUTHORITY\SYSTEM) it typically doesn’t have access to the proxy settings.
First, the cause:
Garmin Express has three main components: a service called Garmin Core Update Service which is Garmin.Cartography.MapUpdate.CoreService.exe
running as SYSTEM. The second is a tray applet, ExpressTray.exe
, which automatically launches on boot running as the currently logged in user. This in turn launches Express.exe
, which is the program’s main user interface. The Garmin Core Update Service handles the network communication with Garmin’s servers — something which would normally use proxy servers — but since the default in Windows is not to have proxy settings for the SYSTEM account, this service doesn’t know how to communicate with the outside world.
Now, a couple workarounds:
The first workaround is to change the Garmin Core Update Service to run as the user who needs to run Garmin Express. This works, but may experience wrinkles long-term. Setting the service to run as a specific user requires that user’s password, when password change time occurs (something fairly common on corporate networks) the service will likely fail to start. Additionally, it changes Garmin’s application architecture and may have other untold consequences such as becoming undone when Express updates itself, keeping Express from properly functioning on multi-user machines (read: tablets), etc.
The second workaround is to use the ProxySettingsPerUser policy setting to make the computer have one set of proxy settings for all accounts, user and SYSTEM alike. This is normally defined by Group Policy, but can be manually set by setting the registry value ProxySettingPerUser
in HKLM\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
to DWORD 0x0. After changing this setting, resetting the proxy settings in Internet Options may be necessary.
By having one set of proxy settings system-wide, processes running as the SYSTEM account will then be aware of the proxy settings. However, if the corporate network uses some manner of authentication for its proxy servers then communication may still fail as Express may not have access to appropriate credentials.
I do not feel that either of these is a proper solution, neither good long-term or enterprise-wide, but both are usable for an individual attempting to resolve problems with a one-off installation. Ideally I’d like to see Garmin change Express so that network communication is handled as the user running the UI. Additionally, some customizable proxy options (eg: Use System Settings, Manually Specify Proxy, etc) as many other applications offer would make Express‘ internet communication considerably more flexible.
(This post applies to Garmin Express 3.2.4.0 only. Newer versions may change this behavior.)
Saved my life! OK, not really, but solved hours of screwing around.
Worked for me (running as logged on user). Fortunately I control web filtering at work so was able to tell the proxies that Garmin’s site is allowed without authentication. Thanks for doing the investigative work – just need Garmin to fix it properly now…
I used your first suggestion, run the “Garmin Core Update Service” using my user account, rather than the System account. Worked perfectly! Thank you for posting!
Thanks.It worked for me after changing the service credentials to local user credentials.
Thanks to providing information about Garmin Express and Proxy Settings….
You Post have Uniqe data…
I bought FR220 and installed Garmin Express 4.1.6.0. When I change settings “Proxy servers” and press OK I would not add my device, because “Not able to add device”. If I again go to proxy-settings “auto” instead “manual”