# Helmut4 Client

The purpose of this guide is to assist you in upgrading the Helmut4 client to a newer version.

Updating the client is generally straightforward. On Windows, an uninstaller is available, which removes the client and the Helmut4-related extensions.

**We recommend** [**running the uninstaller**](https://docs.helmut.de/helmut4-releases/v4.9.1/installation-guide/helmut4-client#unattended-automated-client-installation) **(Windows) or manually deleting the client (macOS) in the first place, before installing the new one**.\
Please refer as well to: [Optional update script for central client distribution](#optional-update-script-for-central-client-distribution)

Running the new client installer defaults to updating the client and the Adobe-Helmut4 extensions.

It is important to note that when updating Helmut4 and Adobe simultaneously, Adobe applications should be updated first; otherwise, the extensions will not be available.

For further information, please consult the [supported Adobe versions](https://docs.helmut.de/helmut4-releases/v4.9.1/getting-started/supported-adobe-versions) or [Helmut4 client tech specs](https://docs.helmut.de/helmut4-releases/v4.9.1/getting-started/installation-guide/helmut4-client).

### **Update procedure till version 4.7 and earlier**

{% hint style="warning" %}
*Consider to update the Helmut4 client on every workstation in advance.*

Note: Updating the Helmut4 server first may lead to compatibility issues, as the client might lack certain dependencies introduced as part of new features or changes.
{% endhint %}

### **Update procedure from version 4.7 and earlier to version 4.8 and newer**

{% hint style="danger" %}
As a result of the underlaying java framework update, pre-populating the client in advance is not feasible, as the client version 4.8 and newer is incompatible with earlier versions. This also applies vice versa: a client version 4.7 and earlier cannot be utilized with a server version 4.8 and newer.

#### Autologin file

Due to a change in the length of security keys, it is necessary for **ALL autologin files** to be replaced with newly created ones.

These new files need to be **generated after the server has been updated** to the desired version, such as version 4.8.0.
{% endhint %}

### Helmut4: Server vs client version

Every stable/snapshot release has a dedicated client. The specific client version for the server can be found on the [admin webpage](https://docs.helmut.de/helmut4-releases/v4.9.1/installation-guide/helmut4-client#download-helmut4-client-via-gui) or via API/URL.

For more details, please refer to the following link: [Request Helmut4 client via URL](https://docs.helmut.de/helmut4-releases/v4.9.1/installation-guide/helmut4-client#request-helmut4-client-via-url).

If you'd like to obtain it ahead of time, please don't hesitate to submit a [ticket](https://moovit.jitbit.com/helpdesk/).

### Optional update script for central client distribution

When updating the server, it is essential to also update the client application. The dedicated client includes release-related changes as well as panel extensions used within Adobe Premiere Pro and After Effects.

We strongly recommend performing a clean uninstall of the client for both Windows and Mac.

Please refer to [Helmut4 Panel Extensions](https://docs.helmut.de/helmut4-releases/v4.9.1/support/debug-or-log-collection/helmut4-client/check-installed-helmut-extensions#helmut4-panel-extensions) for the names of the latest and deprecated extensions.

Below are two (optional) scripts that might assist you with this procedure when deploying the client with a software deployment system:

<details>

<summary>Windows Script</summary>

This batch script will silently uninstall and then reinstall the Helmut4 client.

```batch
@echo off
:: Helmut Client Silent Installation Script
:: Purpose: Automates the uninstallation of previous versions and installation of Helmut Client

:: MoovIT - B. Dimmel
:: Version 4.3
:: Date: Apr 4th 2023

:: Changelog: Mar 20th 2025
:: Major Features Due To Refactoring:
:: - Automatic version detection from server
:: - Silent uninstallation of previous versions
:: - Cleanup of Adobe extensions and temporary files
:: - Installation of new client version
:: - Automatic startup configuration
:: - Adopted URL for client version request

color 1F

:: Configuration Variables
:: ---------------------
:: Local folder path for Helmut4 client installer
set "helmutpath=C:\temp\helmut4"

:: Helmut4 server address (IP or DNS name only, no protocol or slashes)
set "helmut4-server=192.168.122.220"

:: Default client version (will be updated automatically if server is accessible)
set "clientversion=4.10.0.1"

:: Check for existing installer
if exist "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe" (
    echo Found existing Helmut4 client installer
    echo.
    goto terminateH4process
) else (
    echo Helmut4 client installer not found - attempting download
    echo.
    goto downloadClient
)

:downloadClient
:: Auto-detect server version and protocol
:: Tests both HTTP and HTTPS to determine available protocol
set baseUrl=%helmut4-server%/v1/license/client/version

rem Function to test a URL and capture the response
set "protocol=http"
for %%p in (http https) do (
    for /f "tokens=*" %%i in ('powershell -Command "try { (Invoke-WebRequest -Uri '%%p://%baseUrl%' -UseBasicParsing -TimeoutSec 5).StatusCode } catch { '' }"') do (
        if %%i==200 (
            set "protocol=%%p"
            goto :found
        )
    )
)
echo.
echo Error: Unable to detect Helmut4 server version!
exit /b

:found
:: Retrieve current version from server
for /f "usebackq tokens=*" %%i in (`powershell -Command "(Invoke-WebRequest -Uri '%protocol%://%baseUrl%' -UseBasicParsing).Content | ConvertFrom-Json | Select-Object -ExpandProperty version"`) do (
    set clientversion=%%i
)
echo Detected Helmut4 version %clientversion% using %protocol%
echo.

:: Download client installer
set "downloadurl=%protocol%://%helmut4-server%/v1/client/Helmut_Client_Setup_%clientversion%.exe"
if not exist "%helmutpath%" mkdir "%helmutpath%"
::Downloading client installer via bitsadmin
bitsadmin /transfer "Download of Helmut4 client: v%clientversion%" /download /priority foreground "%downloadurl%" "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe"

if not exist "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe" (
    echo Error: Download failed, exiting script!
    exit /b
)
echo Client download completed successfully
echo.

:terminateH4process
:: Stop all running instances of Helmut4
:: Handles both legacy (pre-4.8.0) and current versions
taskkill /F /T /IM "javaw.exe" >nul 2>&1
timeout /t 2 >nul 2>&1
taskkill /F /T /IM "Helmut4.exe" >nul 2>&1
echo Terminated existing Helmut4 processes
echo.

:: Uninstall existing Helmut4 installation
if exist "C:\Program Files\MoovIT GmbH\Helmut4\Uninstall Helmut4.exe" (
    cd /d "C:\Program Files\MoovIT GmbH\Helmut4"
    echo Uninstalling previous Helmut4 version...
    echo.
    start /wait "" "C:\Program Files\MoovIT GmbH\Helmut4\Uninstall Helmut4.exe" /S
    timeout /t 40 /nobreak >nul

    echo Helmut4 client uninstalled.
) else (
    echo No existing Helmut4 installation found
)
rd /s /q "C:\Program Files\MoovIT GmbH\Helmut4"
echo.

:removeExtensions
:: Clean up extension directories and temporary files
echo Removing extension directories and cache...
set "extensions=de.moovit.AME_WS de.moovit.HELMUT de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL de.moovit.HELMUT_ADOBE_WINDOW_EXTENSION de.moovit.PREMIERE_WS Helmut4"
set "extensions_path=C:\Program Files (x86)\Common Files\Adobe\CEP\extensions"
for %%e in (%extensions%) do (
    Rmdir /S /Q "%extensions_path%\%%e" 2>nul
)

:: Clean up user-specific temporary files
for /D %%D in (C:\Users\*) do (
    del "%%D\AppData\Local\Temp\stream-engine-4*.jar" /F /Q 2>nul
    if exist "%%D\AppData\Local\Temp\cep_cache" (
        forfiles /P "%%D\AppData\Local\Temp\cep_cache" /M *_de.moovit.* /C "cmd /c if @isdir==TRUE rmdir /s /q @file" 2>nul
        forfiles /P "%%D\AppData\Local\Temp\cep_cache" /M *Helmut* /C "cmd /c if @isdir==TRUE rmdir /s /q @file" 2>nul
    )
)
echo.
echo Adobe extensions and temporary files have been deleted.
echo.

:: Install new Helmut4 Client
echo Installing Helmut4 client v%clientversion% ...
cd /d "%helmutpath%"
start /wait "" "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe" /S
timeout /t 30 /nobreak >nul

:: Check if client has been installed properly
if exist "C:\Program Files\MoovIT GmbH\Helmut4\Helmut4.exe" (
    echo.
    ) else (
    echo Error during installation - Helmut4.exe is missing!
    exit /b
)

:: Configure auto-start
echo.
echo Configuring automatic startup...
echo.
robocopy "C:\Users\Public\Desktop" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" Helmut4.lnk /is >nul 2>&1
del /f "C:\Users\Public\Desktop\Helmut4.lnk" >nul 2>&1

echo.
echo Helmut4 Client has been installed successfully.
echo.

:: Wait for installation to complete
timeout /t 5 /nobreak >nul

:: Launch Helmut4 client in detached mode
start "" cmd /c "start "" "C:\Program Files\MoovIT GmbH\Helmut4\Helmut4.exe" & exit"

exit /b
```

</details>

<details>

<summary>macOS Script</summary>

This shell script is designed to uninstall the Helmut4 application along with its dedicated extensions, followed by the installation of the Helmut4 client.

```sh
#!/bin/bash

# Uninstall + Install Helmut Client on macOS

# MoovIT
# Version 1.3
# Date: Apr 4th 2023

# Changelog: Mar 15th 2024
# Minor refactoring
# Verify existence of pkg installer

# Define variables for installer path and client version
helmutpath="/Volumes/MacHD/Users/Shared"
clientversion="4.9.0"
installpath="$helmutpath/Helmut_Client_Setup_$clientversion.pkg"

# Check if the installer package file exists
if [ ! -f "$installpath" ]; then
    echo "Error: Installer package file '$installpath' not found. Aborting."
    exit 1
fi

# Terminate running Helmut4 instance
pkill "Helmut4"
echo "Helmut process terminated"

# Delete users' moovIT panel cache
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT"
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/AME_*_de.moovit.AME_WS"
# Old extension
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.PREMIERE_WS"

# Delete all moovIT panel extensions (safeline version)
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.AME_WS"
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT"
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"
# Old extensions
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.PREMIERE_WS"

# Delete old Helmut4 application
rm -rf "/Applications/Helmut4.app"

# Install Helmut4
installer -pkg "$installpath" -target /Applications/

echo "Update finished"

# Display dialog message
osascript -e 'display dialog "Helmut4 client installed!" with title "MoovIT-Helmut4"'
```

</details>
