From e66e591e34915f441dac6a6e464ac7a223111de4 Mon Sep 17 00:00:00 2001
From: Jack Carter <128555021+SunsetDrifter@users.noreply.github.com>
Date: Thu, 20 Aug 2026 14:31:55 +0200
Subject: [PATCH 1/2] docs: clarify Windows client updates need no user admin
on the service path
The 'update needs admin' confusion comes from mixing two paths. Clarify both:
- auto-update: accepting a prompted update is installed by the NetBird
service (system privileges), not the logged-in user, so no admin rights
are needed. Only the manual download-link path is a per-machine install
that requires elevation.
- Windows install: silent install/upgrade needs an elevated (SYSTEM)
context, which RMM/MDM tools provide; a standard user gets 1625. Add an
Updating section: the same installer upgrades in place (no separate
update package), pushed via the same RMM/MDM tool; downgrades are blocked.
All claims lab-verified 2026-08-20 (WS2022, v0.76.0 -> v0.77.0).
---
src/pages/get-started/install/windows.mdx | 24 +++++++++++++++++++++++
src/pages/manage/peers/auto-update.mdx | 6 +++++-
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/src/pages/get-started/install/windows.mdx b/src/pages/get-started/install/windows.mdx
index c974addd1..e2ccbaeeb 100644
--- a/src/pages/get-started/install/windows.mdx
+++ b/src/pages/get-started/install/windows.mdx
@@ -18,6 +18,10 @@ The NetBird client (agent) allows a peer to join a pre-existing NetBird deployme
Both installers support silent (unattended) installation for use with RMM tools, MDM platforms, and scripted deployments.
+
+ Silent installation writes to `C:\Program Files` and registers a Windows service, so it requires an elevated (administrator or `SYSTEM`) context. Deployment tools such as PDQ, Intune, and Group Policy run as `SYSTEM`, so this is already satisfied. A standard user running the same command interactively is prompted for elevation, and running it silently without elevation fails with exit code `1625` (`This installation is forbidden by system policy`).
+
+
### EXE Installer (NSIS)
Run the EXE installer with the `/S` flag for a silent installation:
@@ -62,6 +66,26 @@ netbird up --setup-key
For MDM-specific deployment guides, see [Deploy with Intune](/manage/peers/mdm-deployment/intune-netbird-integration) or [Deploy with Acronis](/manage/for-partners/acronis-integration).
+### Updating an Existing Installation
+
+There is no separate update package. The same installer upgrades an existing installation in place: run the newer version and it replaces the installed one, keeping the peer's registration and configuration. Push the newer MSI (or EXE) through the same RMM or MDM tool you used to install it.
+
+```bash
+msiexec /i netbird_installer__windows_amd64.msi /quiet
+```
+
+Or with the EXE installer:
+
+```bash
+netbird_installer__windows_amd64.exe /S
+```
+
+Like the initial install, an upgrade requires an elevated context, which deployment tools already provide by running as `SYSTEM`. Downgrades are blocked: installing a version older than the one already present exits with an error (`1603`) and leaves the current installation untouched.
+
+
+ Alternatively, you can let end users update from the client itself with [Automatic Updates](/manage/peers/auto-update), where the NetBird service performs the install with no administrator rights required from the user.
+
+
## Running NetBird with SSO Login
### Desktop UI Application
Launch the desktop app and click **Connect** in the main window or system-tray menu. On first launch, choose NetBird Cloud or enter the URL of your self-hosted deployment. NetBird opens your browser to authenticate the device. See the [desktop app guide](/client/desktop-app) for the complete interface.
diff --git a/src/pages/manage/peers/auto-update.mdx b/src/pages/manage/peers/auto-update.mdx
index bb006b429..cb7c1538d 100644
--- a/src/pages/manage/peers/auto-update.mdx
+++ b/src/pages/manage/peers/auto-update.mdx
@@ -48,10 +48,14 @@ When you need updates to be installed without user interaction, enable the **For
3. **Update Process**:
1. If the Peer is running an older version than specified, it will prompt the user to install the update via a system notification and an install entry in the NetBird tray menu.
2. Client will then download the update package from the official NetBird repository.
- 3. The Peer will then install the update and restart itself to apply the changes.
+ 3. The NetBird background service, which runs with system privileges, installs the update and restarts the client to apply it.
When **Force Automatic Updates** is enabled, step 3.1 is skipped, the update is installed automatically in the background without user interaction.
+
+ Accepting a prompted update does **not** require the user to have administrator rights. The installation in step 3.3 is performed by the NetBird background service, which already runs with system privileges, not by the logged-in user. This is the same install mechanism as a forced update; the only difference is who triggers it. Manually running the installer instead (for example, from the tray's download link when Automatic Updates is off) is a per-machine install and does require elevation.
+
+
## Supported Platforms
Automatic Updates are supported on the following platforms only:
From b5118f21ad9575d05880a600a0db01ce092d5a6f Mon Sep 17 00:00:00 2001
From: Jack Carter <128555021+SunsetDrifter@users.noreply.github.com>
Date: Thu, 20 Aug 2026 15:06:57 +0200
Subject: [PATCH 2/2] docs: qualify elevation context and warn install-only
deploy jobs skip upgrades
- Not every deployment configuration runs as SYSTEM; a user-context job
fails with 1625. Say the job must run elevated.
- The GPO deployment script exits when NetBird is already installed, so it
is install-only. Warn that upgrades need an upgrade-capable job.
---
src/pages/get-started/install/windows.mdx | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/pages/get-started/install/windows.mdx b/src/pages/get-started/install/windows.mdx
index e2ccbaeeb..82d0deb98 100644
--- a/src/pages/get-started/install/windows.mdx
+++ b/src/pages/get-started/install/windows.mdx
@@ -19,7 +19,7 @@ The NetBird client (agent) allows a peer to join a pre-existing NetBird deployme
Both installers support silent (unattended) installation for use with RMM tools, MDM platforms, and scripted deployments.
- Silent installation writes to `C:\Program Files` and registers a Windows service, so it requires an elevated (administrator or `SYSTEM`) context. Deployment tools such as PDQ, Intune, and Group Policy run as `SYSTEM`, so this is already satisfied. A standard user running the same command interactively is prompted for elevation, and running it silently without elevation fails with exit code `1625` (`This installation is forbidden by system policy`).
+ Silent installation writes to `C:\Program Files` and registers a Windows service, so it requires an elevated administrator or `SYSTEM` context. Make sure the deployment job runs elevated: tools such as PDQ, Intune, and Group Policy typically install as `SYSTEM` when targeting computers, but a job configured to run in the user's context is not elevated and fails with exit code `1625` (`This installation is forbidden by system policy`). A standard user running the installer interactively is prompted for elevation instead.
### EXE Installer (NSIS)
@@ -68,7 +68,7 @@ netbird up --setup-key
### Updating an Existing Installation
-There is no separate update package. The same installer upgrades an existing installation in place: run the newer version and it replaces the installed one, keeping the peer's registration and configuration. Push the newer MSI (or EXE) through the same RMM or MDM tool you used to install it.
+There is no separate update package. The same installer upgrades an existing installation in place: run the newer version and it replaces the installed one, keeping the peer's registration and configuration. Push the newer MSI (or EXE) through a deployment job that runs the installer even when NetBird is already present. Some install jobs deliberately skip deployment once they detect an existing installation, so a job like that will not upgrade. The script in the [Group Policy deployment guide](/manage/peers/mdm-deployment/windows-gpo-deployment), for example, exits early if NetBird is already installed, so use an upgrade-capable job for updates.
```bash
msiexec /i netbird_installer__windows_amd64.msi /quiet
@@ -80,7 +80,7 @@ Or with the EXE installer:
netbird_installer__windows_amd64.exe /S
```
-Like the initial install, an upgrade requires an elevated context, which deployment tools already provide by running as `SYSTEM`. Downgrades are blocked: installing a version older than the one already present exits with an error (`1603`) and leaves the current installation untouched.
+Like the initial install, an upgrade requires an elevated context, so the upgrade job must run as administrator or `SYSTEM`. Downgrades are blocked: installing a version older than the one already present exits with an error (`1603`) and leaves the current installation untouched.
Alternatively, you can let end users update from the client itself with [Automatic Updates](/manage/peers/auto-update), where the NetBird service performs the install with no administrator rights required from the user.