$ProgressPreference='SilentlyContinue'; $ErrorActionPreference='Continue' "== 1. download official Tailscale 1.104.2"; $m="$env:TEMP\ts-1.104.2.msi"; Invoke-WebRequest https://pkgs.tailscale.com/stable/tailscale-setup-1.104.2-amd64.msi -OutFile $m -UseBasicParsing $s=Get-AuthenticodeSignature $m; "signature: $($s.Status) / $($s.SignerCertificate.Subject)"; if($s.Status -ne 'Valid' -or $s.SignerCertificate.Subject -notmatch 'Tailscale Inc'){ "STOP: signature not valid"; return } "== 2. install unattended (no tray, no auto-update)"; Start-Process msiexec -Wait -ArgumentList "/i `"$m`" /qn /norestart TS_UNATTENDEDMODE=always TS_NOLAUNCH=1 TS_ADMINCONSOLE=hide TS_ONBOARDING_FLOW=hide TS_INSTALLUPDATES=never" Set-Service Tailscale -StartupType Automatic; Start-Service Tailscale; Start-Sleep 5; Get-Service Tailscale | %{ "Tailscale service: $($_.Status) $($_.StartType)" } "== 3. OpenSSH server"; if(-not (Get-Service sshd -EA SilentlyContinue)){ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 | Out-Null }; Set-Service sshd -StartupType Automatic; Start-Service sshd; Get-Service sshd | %{ "sshd: $($_.Status) $($_.StartType)" } "== 4. log in: open the URL below on your phone and approve =="; $ts='C:\Program Files\Tailscale\tailscale.exe'; & $ts up --unattended --reset "== 5. status"; & $ts status; & $ts version | select -First 1