> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langdock.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upgrade an existing deployment

> Move devices that already run Langdock to the current deployment kit or macOS PKG, so they get the watermark camera and machine-wide updates without a reinstall.

## Upgrading an existing deployment

Already deployed the Langdock desktop app? These steps move your devices to the current release from the [Enterprise Guide for Langdock Desktop](https://docs.langdock.com/en/admin/desktop-app/deploy.md). Langdock stays installed the whole time, and people keep their sign-in and app data. Use them when Langdock asks people to contact their IT admin about an update or the meeting watermark camera, or when you switch from the plain MSIX or the DMG to the managed packages.

Pick the section for how you deployed Langdock:

| You deployed | Follow |
| - | - |
| The Intune Win32 app (`.intunewin`) | [Intune Win32 app](#intune-win32-app) |
| The MSIX as an Intune line-of-business app | [Intune line-of-business app](#intune-line-of-business-app) |
| The MSIX or the kit with Configuration Manager, Group Policy, or another tool | [Other Windows tools](#other-windows-tools) |
| The DMG on Macs | [From the DMG to the PKG](#from-the-dmg-to-the-pkg) |

Then [check a device](#check-a-device).

## Kits from before 1.0.15

The deployment kits up to 1.0.14 don't register the watermark camera and don't add the update task. On devices you deployed with one of them, the camera never gets set up on its own:

* Unless you turned off automatic updates, Langdock updates itself for each person, without admin rights. That can't register the camera. When your workspace requires the meeting watermark, the newer version asks people to contact their IT admin instead.
* The old kit's `Deploy.ps1` keeps reporting Langdock as installed, so Intune never runs the install again.

Upgrade these devices once with the steps for your tool below. For the Intune Win32 app, replace the package and the detection script in the app you already have. You don't need **Supersedence**. Even after Langdock updated itself, the device still has the old kit's version provisioned, so the new `Deploy.ps1` reports Langdock as not installed and Intune runs `Deploy.cmd Install`. From then on, the kit's update task keeps Langdock and the camera current.

To see whether a device has one of these kits, run `Get-ScheduledTask -TaskPath '\Langdock\'` from an elevated PowerShell. Kits before 1.0.15 leave no task there.

## Intune Win32 app

Update the Langdock app you already have in Intune. Don't create a second one.

**1. Download the new kit**

Download the deployment kit for [x64](https://desktop.langdock.com/global/stable/download/win-msix-kit-x64) or [ARM64](https://desktop.langdock.com/global/stable/download/win-msix-kit-arm64) and unzip it. You need its `Application.intunewin` and its `Deploy.ps1`, as the detection script. If you have an app for each architecture, repeat these steps with each kit.

**2. Replace the package**

In the Intune admin center, go to **Apps** > **Windows** and open the Langdock app. Under **Properties**, click **Edit** next to **App information**, click **Select file to update**, and upload the new kit's `Application.intunewin`.

Check **Program**: **Install command** is `Deploy.cmd Install` or `Deploy.cmd Install -RemovePersonalInstall`, **Uninstall command** is `Deploy.cmd Uninstall`, and **Install behavior** is **System**. You can change **App Version** to the new version, but it's only a label. Intune doesn't install anything because of it.

**3. Switch the detection rule**

Click **Edit** next to **Detection rules**. Keep **Use a custom detection script** and upload the new kit's `Deploy.ps1`. Set **Run script as 32-bit process on 64-bit clients** and **Enforce script signature check** to **No**.

This is the step that makes Intune install again. The script only reports Langdock as installed when the kit's version or newer is on the device. On every other device, Intune runs `Deploy.cmd Install` from the new package at its next check-in. That updates Langdock, registers the [watermark camera](https://docs.langdock.com/en/admin/desktop-app/deploy.md#meeting-watermark-camera), and adds the task that [keeps Langdock up to date](https://docs.langdock.com/en/admin/desktop-app/updates.md#control-updates-on-windows). To speed it up on a device, click **Sync** in Company Portal under **Settings**. On Windows 10, a kit newer than desktop 1.0.15 skips the camera and the install succeeds. Kits through 1.0.15 still show as failed in Intune. Langdock itself is updated. See [Meeting watermark camera](https://docs.langdock.com/en/admin/desktop-app/deploy.md#meeting-watermark-camera).

**4. Keep the assignment**

Leave the app assigned as **Required** to the same device groups. People get the new version at their next sign-in or through the app's own update. From then on, later versions offer **Restart to update**.

Did you turn off automatic updates so Intune could follow each version? With the kit's `Deploy.ps1` as the detection script, you can [turn them back on](https://docs.langdock.com/en/admin/desktop-app/updates.md#turn-updates-back-on), and the kit's task keeps Langdock up to date.

> [!WARNING]
>
> Don't uninstall the old app, and don't add the new version as a separate app with **Supersedence** and **Uninstall previous version** set to **Yes**. The old uninstall command removes Langdock for every user of the device, and Windows deletes their app data with it, so everyone has to sign in again.

## Intune line-of-business app

The plain MSIX installs Langdock without the watermark camera and without the update task. Only the deployment kit registers the camera, so switch to the Win32 app once.

**1. Add the Win32 app**

Set up the Intune Win32 app as in the [Intune steps](https://docs.langdock.com/en/admin/desktop-app/deploy.md#intune), with the kit's `Deploy.ps1` as the detection script. The kit has to be newer than the MSIX you deployed. With the same version or an older one, Intune counts the devices as installed and never runs the kit, so they get neither the camera nor the update task. If you already deployed the current release as MSIX, wait for the next one. Assign the app as **Required** to the same device groups as the line-of-business app.

**2. Wait until devices report Installed**

Open the Win32 app and check **Device install status**. Both apps install the same Langdock, so it stays on the devices while you switch.

**3. Remove the line-of-business assignment**

Open the line-of-business app, go to **Properties**, and remove its assignment. Don't assign it as **Uninstall**. Its uninstall removes Langdock for everyone on the device, including the copy from the kit.

Did you turn off automatic updates only because the line-of-business app needed it? You can [turn them back on](https://docs.langdock.com/en/admin/desktop-app/updates.md#turn-updates-back-on), and the kit's task keeps Langdock up to date.

## Other Windows tools

Install the new kit over the old one, the same way you deployed the first version:

* **Configuration Manager with the kit**: replace the files in the content source with the new extracted kit, use its `Deploy.ps1` as the detection script, and update the content on your distribution points.
* **Configuration Manager with the Windows app package**: this package doesn't register the camera. Create a Script Installer application with the kit as in the [Configuration Manager steps](https://docs.langdock.com/en/admin/desktop-app/deploy.md#sccm) and deploy it to the same collections. Then delete the deployment of the Windows app package. Don't deploy it with the action **Uninstall**.
* **Group Policy**: replace the kit files on the share with the new extracted kit. The startup script runs `Deploy.cmd Install` from it at the next startup.
* **Matrix42 Empirum, ACMP, baramundi, or your own scripts**: run `Deploy.cmd Install` from the new kit as SYSTEM. If you deployed the plain MSIX with `Add-AppxProvisionedPackage` or DISM, switch to the kit, because only the kit registers the camera.

Don't run `Deploy.cmd Uninstall` first. It removes Langdock and its app data for every user of the device.

## From the DMG to the PKG

On Macs that got Langdock from the DMG, the PKG adds the Langdock updater, which installs new versions without admin rights.

**1. Deploy the configuration profile**

Deploy the [configuration profile](https://docs.langdock.com/en/admin/desktop-app/deploy.md#macos) before the PKG. It sets the update policy and allows the updater as a login item, so macOS doesn't show people a "Background Items Added" notice. Keep the watermark camera and privacy profiles you already deploy.

**2. Deploy the PKG**

Add the PKG to your MDM as in the [macOS steps](https://docs.langdock.com/en/admin/desktop-app/deploy.md#macos). It replaces `/Applications/Langdock.app`, so you don't remove the DMG copy first. People keep their sign-in, because their app data stays in their home folder.

**3. Stop deploying the DMG**

Remove the DMG app or policy from your MDM without uninstalling Langdock, and stop the scheduled [DMG install script](https://docs.langdock.com/en/admin/desktop-app/deploy.md#macos). Otherwise your MDM and the updater both replace Langdock.

Copies people dragged into the `Applications` folder in their home folder stay next to the PKG install. Remove them with the [removal script](https://docs.langdock.com/en/admin/desktop-app/deploy.md#macos).

## Check a device

On Windows, run these commands from an elevated PowerShell:

```powershell theme={null}
# Version: shows the kit's version or newer
Get-AppxProvisionedPackage -Online | Where-Object DisplayName -eq 'com.langdock.desktop.msix' | Select-Object Version

# Update task: lists "Update com.langdock.desktop.msix_b9czaxkzpqt8m", which runs as SYSTEM
Get-ScheduledTask -TaskPath '\Langdock\'

# The task runs Bootstrap.ps1 from the current kit
(Get-ScheduledTask -TaskPath '\Langdock\').Actions.Arguments

# Updater health: lastRunResult is "installed" until the task's first run, then "completed"
Get-Content "$env:ProgramFiles\LangdockUpdater\com.langdock.desktop.msix_b9czaxkzpqt8m\updater-health.json"

# Watermark camera: prints 0 when the camera is registered
$pkg = Get-AppxProvisionedPackage -Online | Where-Object DisplayName -eq 'com.langdock.desktop.msix' | Sort-Object { [version]$_.Version } | Select-Object -Last 1
$root = [Environment]::ExpandEnvironmentVariables($pkg.InstallLocation) -replace '\\AppxManifest\.xml$', ''
(Start-Process (Join-Path $root 'App\resources\helpers\LangdockWatermark.exe') '--extension-status' -Wait -PassThru -WindowStyle Hidden).ExitCode
```

Any number other than `0` means the camera isn't registered. Run `Deploy.cmd Install` again, or wait for the update task, which registers it at startup and once a day. On Windows 11, people then find the camera ending in "Langdock Watermark" in their meeting app.

Right after the kit install, `previousVersion` in `updater-health.json` is empty, because there's no earlier [update logic](https://docs.langdock.com/en/admin/desktop-app/updates.md#how-the-updater-stays-current) to go back to yet.

On a Mac, run `pkgutil --pkg-info com.langdock.desktop` to confirm the PKG install, and check the updater's status and health files:

```bash theme={null}
cat "/Library/Application Support/Langdock/Updater/com.langdock.desktop/status.json"
cat "/Library/Application Support/Langdock/Updater/com.langdock.desktop/updater-health.json"
```

`state` is `idle` when Langdock is current. In the health file, `lastRunResult` is `completed`, or `waiting` while an update waits for Langdock to quit. For other values, see [Langdock doesn't update on a Mac](https://docs.langdock.com/en/admin/desktop-app/deploy.md#troubleshooting).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.