netbirdio / netbird

Connect your devices into a secure WireGuard®-based overlay network with SSO, MFA and granular access controls.
https://netbird.io
BSD 3-Clause "New" or "Revised" License
11.26k stars 517 forks source link

Automatic installation and configuration on Windows machines? #2802

Open mattish91 opened 3 weeks ago

mattish91 commented 3 weeks ago

Is your feature request related to a problem? Please describe. Not really a problem, but a nice to have as requested in several threads before this one.

Describe the solution you'd like MSI installer with multiple flags for automatic installation and authentication. The /s is nice for Windows, but i would also like to be able to use the equivilent of "--setup-key ID" on Windows during the installation, this is in order to manage multiple Windows servers without UI for example (SMB servers). Maybe a PowerShell script we could run with "irm https://whatever/setup.ps1 | iex"?

Something that would be nice would be that the ps1 could point to the latest .zip archive and use Expand-Archive to unpack it to the correct location like C:\Program Files\Netbird\ and setup the config trough the ID (could be either a flag for the ps1 or a modifier that one could self-host internally to make it more secure).

Describe alternatives you've considered I have not really looked in to any alternatives right now except maybe setting up new SMB shares on a Linux host that obviously supports this type of netbird installation (a huge hasstle to move/re-assign disks tho).

If any one is a real script-monkey maybe we could get this going to solve a couple of of these points? 😊

mattish91 commented 3 weeks ago

Noticed that i could ask the Netbird Guru from some other thread, which solved part of it for me, how ever i found a working solution that could be used as a base for the future if needed.

mkdir c:\TempPath
Invoke-WebRequest -Uri https://pkgs.netbird.io/windows/x64 -OutFile C:\TempPath\NetBird_Installer.exe
$installerPath = "C:\TempPath\NetBird_Installer.exe"
$setupID = "YOUR-SETUP-ID-HERE"
Start-Process -FilePath $installerPath -ArgumentList "/S", "/setup-id=$setupID" -Wait
del C:\TempPath\NetBird_Installer.exe

This have been tested with "immense/remotely" as a script that does the trick perfectly*

Any suggestions as to make this better?