---
title: Update and uninstall
description: How scanner updates work, and how to remove the scanner from a laptop.
---

## Updating

There are two ways a laptop gets a new scanner version.

**Through your MDM.** Push the new package with the same policy you used to install. The installer stops the running service, upgrades in place, and keeps the enrollment. This is the normal path.

**On the laptop.**

```bash
sudo surface update --check   # show current and latest version
sudo surface update           # download, verify, install, restart
```

Updates are signed and checked before they install. A failed update rolls back to the previous version.

:::info
The scanner does not update itself on a schedule. It only self-updates when SuperAlign marks a release as required. Plan routine upgrades through your MDM.
:::

## Uninstalling

**macOS**

```bash
sudo /opt/surface/bin/uninstall.sh --force
```
Or, without the package: `curl -fsSL https://superalign.ai/surface/releases/uninstall.sh | sudo sh`

**Windows**

```powershell
msiexec /x {ProductCode} /qn /norestart
```
Or Add/Remove Programs, or `irm https://superalign.ai/surface/releases/uninstall.ps1 | iex`.

**Debian, Ubuntu**

```bash
sudo apt remove surface
```

**Fedora, RHEL**

```bash
sudo dnf remove surface
```

Uninstall removes the laptop from the console first, then stops and removes the service and tray, the binaries, the desktop app, the credentials, and the MDM setting. On Linux the package manager keeps `/var/lib/surface`; delete it by hand for a full clean-up.

Options for the scripts: `--keep-data` keeps scan data (credentials are still deleted), `--force` skips the confirmation.

## Removing a laptop from the console

Deleting a laptop on the **Endpoints** page cancels its credential right away. The scanner on it stops reporting until it is enrolled again. Laptops that stay silent for 60 days have their credential disabled, and after 90 days it is deleted.

## Related

- [MDM deployment](/surface/deploy/mdm/overview) for pushing a new version through your policy
- [Troubleshooting](/surface/scanner/troubleshooting)
