Files
knowledge-base/snippets/netbird-niikn-install.ps1
dttb cb33ecb0d3 niikn: PowerShell-версия скрипта установки NetBird
Чище .bat-версии: автопроверка прав без re-exec, нативная Windows
кодировка (без chcp), цветной вывод, прямой запуск через
'irm <url>/download | iex'.

Публичная ссылка: https://dttb.ru/s/jr3CAej6nDaazCW/download
2026-04-21 12:51:26 +03:00

112 lines
4.9 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# Установка NetBird для сотрудников НИИКН
#
# Запуск:
# PowerShell от имени администратора, одна строка:
# irm https://dttb.ru/s/<TOKEN>/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 для выхода'