From cb33ecb0d3b2d7a9b350b638c30b9addda716315 Mon Sep 17 00:00:00 2001 From: dttb Date: Tue, 21 Apr 2026 12:51:26 +0300 Subject: [PATCH] =?UTF-8?q?niikn:=20PowerShell-=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D0=B0=20?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20NetBir?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Чище .bat-версии: автопроверка прав без re-exec, нативная Windows кодировка (без chcp), цветной вывод, прямой запуск через 'irm /download | iex'. Публичная ссылка: https://dttb.ru/s/jr3CAej6nDaazCW/download --- snippets/netbird-niikn-install.ps1 | 111 +++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 snippets/netbird-niikn-install.ps1 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 для выхода'