# Windows Installation

Source: https://docs.netbird.io/get-started/install/windows

---

# Windows Installation

The NetBird client (agent) allows a peer to join a pre-existing NetBird deployment. If a NetBird deployment is not yet available, there are both managed and [self-hosted](https://docs.netbird.io/selfhosted/selfhosted-quickstart) options available.

1. Download the latest Windows release:
    - 
    - 
2. Execute the installer and proceed with the installation steps
3. This will install the UI client in the `C:\Program Files\NetBird` and add the daemon service
4. After installing, you can follow the steps from [Running NetBird with SSO Login](#running-net-bird-with-sso-login).
> **Note:** To uninstall the client and service, you can use Add/Remove programs

## Silent and Automated Installation

Both installers support silent (unattended) installation for use with RMM tools, MDM platforms, and scripted deployments. By default, silent installations automatically configure the NetBird UI to start at user login, so the system tray icon is available without manual intervention.

### EXE Installer (NSIS)

Run the EXE installer with the `/S` flag for a silent installation:

```bash
netbird_installer_<VERSION>_windows_amd64.exe /S
```

The UI tray autostart is enabled by default for both interactive and silent installs. The installer writes the autostart entry to `HKLM\Software\Microsoft\Windows\CurrentVersion\Run`, which applies to all users on the machine.

### MSI Installer

Run the MSI installer with `msiexec` for a silent installation:

```bash
msiexec /i netbird_installer_<VERSION>_windows_amd64.msi /quiet
```

The MSI installer includes an `AUTOSTART` property that defaults to `1` (enabled). When enabled, it registers `netbird-ui.exe` in `HKLM\Software\Microsoft\Windows\CurrentVersion\Run` so the UI tray starts automatically at login for all users.

To disable the UI tray autostart during installation:

```bash
msiexec /i netbird_installer_<VERSION>_windows_amd64.msi AUTOSTART=0 /quiet
```

> **Note:** Disabling `AUTOSTART` only prevents the UI tray from launching at login. The NetBird background service still runs and maintains connectivity regardless of this setting.

### Combining with a Setup Key

For fully automated deployments where peers should register without user interaction, combine silent installation with a [setup key](/manage/peers/register-machines-using-setup-keys):

```bash
netbird_installer_<VERSION>_windows_amd64.exe /S
netbird up --setup-key <SETUP KEY>
```

Or with the MSI installer:

```bash
msiexec /i netbird_installer_<VERSION>_windows_amd64.msi /quiet
netbird up --setup-key <SETUP KEY>
```

> **Note:** For MDM-specific deployment guides, see [Deploy with Intune](/manage/integrations/mdm-deployment/intune-netbird-integration) or [Deploy with Acronis](/manage/for-partners/acronis-integration).

## Running NetBird with SSO Login
### Desktop UI Application
If you installed the Desktop UI client, you can launch it and click on Connect.
> It will open your browser, and you will be prompt for email and password. Follow the instructions.

    

### CLI
Alternatively, you could use command line. Simply run
   ```bash
  netbird up
   ```
> It will open your browser, and you will be prompt for email and password. Follow the instructions.

    

Check connection status:
```bash
  netbird status
```

## Running NetBird with a Setup Key
In case you are activating a server peer, you can use a [setup key](/manage/peers/register-machines-using-setup-keys) as described in the steps below.
> This is especially helpful when you are running multiple server instances with infrastructure-as-code tools like ansible and terraform.

1. Login to the Management Service. You need to have a `setup key` in hand (see [setup keys](/manage/peers/register-machines-using-setup-keys)).

For all systems:
```bash
netbird up --setup-key <SETUP KEY>
```

Alternatively, if you are hosting your own Management Service provide `--management-url` property pointing to your Management Service:
```bash
  netbird up --setup-key <SETUP KEY> --management-url http://localhost:33073
```

> You could also omit the `--setup-key` property. In this case, the tool will prompt for the key.

2. Check connection status:
```bash
netbird status
```

3. Check your IP:

```bash
netsh interface ip show config name="wt0"
```