Skip to content

Step 5: Client Deployment

This step creates the setup key for endpoint enrollment and deploys the NetBird Windows client to approximately 200 machines using TacticalRMM.

  1. Sign in to https://netbird.gsisg.com
  2. Go to Setup Keys > Create Setup Key
Setup Keys page
FieldValue
NameCompany Laptops - TRMM Deploy
TypeReusable
Usage Limit250 (buffer above 200 machines)
Expires90 days (extend as needed during rollout)
Auto-assigned groupsCompany-Laptops
Create setup key for company laptops

Click Create Setup Key and copy the key.

Setup key created — copy immediately

The TRMM script performs a silent MSI install, applies the setup key, configures GlobalProtect coexistence flags, and verifies connectivity. The production script is maintained at:

/home/adminuser/projects/work-vpn/trmm-deploy-netbird.ps1

The script:

  1. Checks if NetBird is already installed (skips if yes)
  2. Adds a Windows Defender exclusion for C:\Program Files\NetBird\
  3. Downloads the latest MSI from GitHub
  4. Runs a silent install with SETUP_KEY and MANAGEMENT_URL properties
  5. Applies --network-monitor=false for GlobalProtect coexistence
  6. Verifies the NetBird service is running
  7. Reports connection status
Terminal window
param(
[string]$SetupKey = "REPLACE_WITH_YOUR_SETUP_KEY",
[string]$ManagementUrl = "https://netbird.gsisg.com",
[bool]$DisableNetworkMonitor = $true
)
  1. In TacticalRMM, go to Settings > Script Manager > New Script
  2. Set:
    • Name: Deploy NetBird Client
    • Shell: PowerShell
    • Run as: System
  3. Paste the script content
  4. In the script arguments, set:
    -SetupKey "YOUR_ACTUAL_SETUP_KEY" -ManagementUrl "https://netbird.gsisg.com" -DisableNetworkMonitor $true

The MSI supports these properties for silent deployment:

Terminal window
msiexec.exe /i "netbird.msi" /qn /norestart SETUP_KEY=<KEY> MANAGEMENT_URL=https://netbird.gsisg.com

This installs the NetBird agent and UI client to C:\Program Files\NetBird\ and creates a Windows service named NetBird.

During the transition period while GlobalProtect (Palo Alto) is still installed on some machines, the --network-monitor=false flag is required.

Why: NetBird’s network monitor detects interface changes and reconnects. When GlobalProtect brings its tunnel interface up/down, it triggers NetBird to restart, causing unnecessary disruptions. Disabling the network monitor prevents this.

The flag is applied in the TRMM script after installation:

Terminal window
if ($DisableNetworkMonitor) {
& $NetBirdExePath up --setup-key $SetupKey --management-url $ManagementUrl --network-monitor=false
}

For managed deployments, consider these additional flags to prevent users from modifying the NetBird configuration:

Terminal window
netbird up --disable-profiles --disable-update-settings
FlagPurpose
--network-monitor=falsePrevent GP-triggered restarts (remove after GP uninstall)
--disable-profilesPrevent users from switching network profiles
--disable-update-settingsPrevent users from changing management URL or other settings

Push Windows Defender (and any third-party AV) exclusions for the NetBird directory before or during installation. This prevents false-positive detections on the WireGuard driver and tunnel interface.

Via TRMM Script (Included in Deploy Script)

Section titled “Via TRMM Script (Included in Deploy Script)”
Terminal window
Add-MpPreference -ExclusionPath "C:\Program Files\NetBird\"
Section titled “Via Group Policy (Recommended for Persistence)”
  1. Open Group Policy Management
  2. Edit a GPO linked to your computer OUs
  3. Navigate to: Computer Configuration > Administrative Templates > Windows Components > Microsoft Defender Antivirus > Exclusions > Path Exclusions
  4. Add: C:\Program Files\NetBird\

NetBird creates a virtual network interface named wt0. Windows Firewall may block traffic on this interface depending on the network profile it is assigned. Create a GPO to ensure traffic flows properly.

  1. Open Group Policy Management
  2. Edit a GPO linked to your computer OUs
  3. Navigate to: Computer Configuration > Windows Settings > Security Settings > Windows Defender Firewall with Advanced Security
  4. Create an Inbound Rule:
FieldValue
Rule TypeCustom
ProgramAll programs
ProtocolAny
ScopeLocal IP: Any, Remote IP: 100.64.0.0/10 (NetBird CGNAT range)
ActionAllow
ProfileDomain, Private, Public
NameNetBird - Allow wt0 Inbound
  1. Create a matching Outbound Rule with the same settings
Terminal window
# Allow inbound from NetBird CGNAT range
New-NetFirewallRule -DisplayName "NetBird wt0 Inbound" `
-Direction Inbound -Action Allow -Protocol Any `
-RemoteAddress 100.64.0.0/10
# Allow outbound to NetBird CGNAT range
New-NetFirewallRule -DisplayName "NetBird wt0 Outbound" `
-Direction Outbound -Action Allow -Protocol Any `
-RemoteAddress 100.64.0.0/10

Roll out to a small pilot group first (8-10 users across both offices and remote workers).

  • 2-3 IT staff (immediate troubleshooting capability)
  • 2-3 Honolulu office users
  • 2-3 Boulder office users
  • 1-2 fully remote users
  1. Deploy the NetBird client via TRMM to pilot machines
  2. Verify the system tray icon shows “Connected”
NetBird system tray showing connected status
  1. Test from each pilot machine:
    • Ping DCs: ping 10.100.7.10 (Honolulu AD0), ping 10.15.0.10 (Boulder AD1)
    • SMB access: net use \\10.100.7.15\ShareName (FILES server)
    • DNS resolution: nslookup ad0.gsisg.local 10.100.7.10
    • RDP: Connect to a server via RDP through NetBird
    • SAGE access: Verify SAGE application at 10.100.7.40
  2. Run for 5-7 business days before proceeding to full rollout
  3. Collect feedback on performance, disconnects, and usability
  • All pilot machines show “Connected” in the Dashboard
  • DC authentication works (Group Policy applies, drive mappings work)
  • File shares accessible at both sites
  • No conflicts with existing GlobalProtect (if still installed)
  • No reported performance issues
  • Connection type is P2P (not relayed) for same-site peers — verify with netbird status --detail

After a successful pilot, deploy to all remaining machines:

  1. Create a TRMM policy targeting all Windows agents (or deploy in batches by site)
  2. Use the same script with the same setup key
  3. Monitor the Peers tab in the Dashboard — new machines should appear within minutes
  4. Verify peer count matches expected machine count
PhaseTargetMachinesDuration
PilotIT staff + selected users8-105-7 days
Wave 1Honolulu office~802-3 days
Wave 2Boulder office~802-3 days
Wave 3Remaining remote users~302-3 days

At this point you should have:

  • Reusable setup key created for Company-Laptops group
  • TRMM deployment script configured with setup key and management URL
  • AV exclusions pushed (Defender + GPO)
  • Firewall GPO for wt0 interface deployed
  • Pilot group deployed and tested for 5-7 days
  • Full rollout completed in waves
  • All machines visible in the NetBird Dashboard Peers tab

Proceed to Step 6: Verification and Monitoring to validate the full deployment and configure ongoing monitoring.