diff --git a/snippets/netbird-niikn-install.ps1 b/snippets/netbird-niikn-install.ps1 new file mode 100644 index 0000000..2a684b7 --- /dev/null +++ b/snippets/netbird-niikn-install.ps1 @@ -0,0 +1,111 @@ +# ============================================================================= +# Установка NetBird для сотрудников НИИКН +# +# Запуск: +# PowerShell от имени администратора, одна строка: +# irm https://dttb.ru/s//download | iex +# или напрямую: +# Set-ExecutionPolicy Bypass -Scope Process -Force +# .\netbird-niikn-install.ps1 +# +# Что делает: +# - Проверяет права администратора (требуется) +# - Скачивает последнюю версию installer с pkgs.netbird.io +# - Устанавливает silent +# - Подключает с корпоративным setup-key → группа NIIKN → NetBird route +# на 2.63.246.0/24 автоматом (для обхода блокировки nspd.gov.ru) +# - Выводит статус подключения +# +# Версия: 2026-04-21 +# ============================================================================= + +$ErrorActionPreference = 'Stop' +$ProgressPreference = 'SilentlyContinue' +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +$SetupKey = '6507CC68-2919-4D04-AB8E-3F8507906220' +$InstallerUrl = 'https://pkgs.netbird.io/windows/x64/netbird_installer_x64.exe' +$TmpFile = Join-Path $env:TEMP 'netbird_installer_niikn.exe' +$NbExe = 'C:\Program Files\Netbird\netbird.exe' +$MgmtUrl = 'https://api.netbird.io:443' + +function Write-Step($msg) { Write-Host "[>] $msg" -ForegroundColor Cyan } +function Write-Ok($msg) { Write-Host " OK: $msg" -ForegroundColor Green } +function Write-Err($msg) { Write-Host "[X] $msg" -ForegroundColor Red } + +# --- Проверка: админ? --- +$isAdmin = ([Security.Principal.WindowsPrincipal] ` + [Security.Principal.WindowsIdentity]::GetCurrent() ` + ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) + +if (-not $isAdmin) { + Write-Err 'Запустите PowerShell от имени администратора и выполните команду заново.' + Write-Host '' + Write-Host 'Как запустить от администратора:' -ForegroundColor Yellow + Write-Host ' 1. Пуск -> наберите "PowerShell"' + Write-Host ' 2. ПКМ по "Windows PowerShell" -> "Запустить от имени администратора"' + Write-Host ' 3. В открывшемся окне выполните команду установки ещё раз' + Read-Host 'Нажмите Enter для выхода' + exit 1 +} + +Write-Host '' +Write-Host '============================================================' +Write-Host ' Установка корпоративного VPN NetBird для НИИКН' +Write-Host '============================================================' +Write-Host '' + +# --- 1. Installer: нужен? --- +if (Test-Path $NbExe) { + Write-Step 'NetBird уже установлен - пропускаю скачку/установку' +} else { + Write-Step 'Скачиваю установщик NetBird...' + try { + Invoke-WebRequest -Uri $InstallerUrl -OutFile $TmpFile -UseBasicParsing + Write-Ok "сохранён в $TmpFile" + } catch { + Write-Err "Не удалось скачать: $($_.Exception.Message)" + Read-Host 'Нажмите Enter'; exit 1 + } + + Write-Step 'Устанавливаю NetBird (silent, 30-60 сек)...' + Start-Process -FilePath $TmpFile -ArgumentList '/S' -Wait + Start-Sleep -Seconds 8 + + if (-not (Test-Path $NbExe)) { + Write-Err 'Установка не прошла - netbird.exe не найден.' + Read-Host 'Нажмите Enter'; exit 1 + } + Write-Ok 'установлен' +} + +# --- 2. Подключение с setup-key --- +Write-Step 'Подключаю к корпоративной сети (группа NIIKN)...' +try { + & $NbExe up --setup-key $SetupKey --management-url $MgmtUrl 2>&1 | ForEach-Object { + Write-Host " $_" + } +} catch { + Write-Err "Ошибка при подключении: $($_.Exception.Message)" + Read-Host 'Нажмите Enter'; exit 1 +} + +Start-Sleep -Seconds 3 + +# --- 3. Статус --- +Write-Step 'Проверяю статус...' +Write-Host '' +& $NbExe status +Write-Host '' + +# --- cleanup --- +if (Test-Path $TmpFile) { Remove-Item $TmpFile -Force -ErrorAction SilentlyContinue } + +Write-Host '============================================================' -ForegroundColor Green +Write-Host ' ГОТОВО' -ForegroundColor Green +Write-Host '============================================================' -ForegroundColor Green +Write-Host '' +Write-Host ' Откройте https://nspd.gov.ru/ в браузере - должно работать.' +Write-Host ' VPN подключается автоматически при каждой загрузке Windows.' +Write-Host '' +Read-Host 'Нажмите Enter для выхода'