Определение: тип сети в Windows Server 2025 — это категория сетевого профиля (Public/Private/DomainAuthenticated), которая влияет на политики брандмауэра, сетевое обнаружение и доверие к подсетям. Параметр задаётся DWORD-значением Category в реестре профиля сети по пути HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles{GUID}. 🛡️
| Параметр/Сущность | Значение/Описание | 
|---|---|
| Путь реестра | HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles{GUID} | 
| Ключ Category | DWORD: 0 — Public, 1 — Private, 2 — DomainAuthenticated | 
| Как найти нужный профиль | По полям ProfileName/Description внутри Profiles или через PowerShell Get-NetConnectionProfile | 
| Применение изменений | Перезапуск служб NlaSvc и netprofm, либо отключение/включение сетевого адаптера 🔁 | 
| Проверка результата | PowerShell: Get-NetConnectionProfile | Select Name, InterfaceAlias, NetworkCategory | 
| Важная особенность | Профиль DomainAuthenticated (2) устанавливается системой только при подтверждённой доменной аутентификации | 
| Риски | Смена типа сети меняет активный профиль брандмауэра и может прервать удалённый доступ ⚠️ | 
| Групповые политики | Могут переопределять локальные настройки через Network List Manager Policies | 
Когда это нужно и что меняется 🧰
- При автоматической классификации как Public на сервере, где нужно разрешить обнаружение/SMB в локальной сети.
- Для приведения поведения брандмауэра к корпоративным требованиям (например, Private в DMZ не нужен, а в офисной сети — нужен).
- Для устранения проблем, когда NLA неверно определил категорию или «застрял» после смены сети/вендора NIC.
Изменение Category напрямую влияет на активный профиль Microsoft Defender Firewall (Public/Private/Domain) и на набор применяемых правил, сетевое обнаружение, возможность получения ответов на пинги и доступ к службам.
Где находится параметр в реестре
Каждая подключённая сеть имеет свой профиль в ветке:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles{GUID}
Внутри профиля ищите:
- ProfileName (REG_SZ) — дружелюбное имя сети, как в PowerShell.
- Description (REG_SZ) — описание/провайдер.
- Category (REG_DWORD) — 0/1/2, задаёт тип сети.
Сопоставить текущий сетевой интерфейс с нужным {GUID} удобнее через PowerShell-команду Get-NetConnectionProfile и поиск по ProfileName в реестре.
Пошаговая инструкция (Server 2025)
-  Проверьте текущий тип сети: PowerShell Get-NetConnectionProfile | Format-Table Name,InterfaceAlias,InterfaceIndex,NetworkCategory
-  Сделайте резервную копию параметров (консоль/Server Core): cmd reg export "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles" C:backup_network_profiles.reg /y
-  Найдите профиль в реестре. Откройте regedit.exe (или используйте PowerShell/REG.EXE) и просмотрите подпапки {GUID}, сопоставив ProfileName с именем из шага 1. 
-  Измените значение Category: - 0 — Public (гостевая/недоверенная сеть)
- 1 — Private (доверенная локальная сеть)
- 2 — DomainAuthenticated (доменная сеть; поставится системой только при успешной проверке домена)
 PowerShell # Пример: установить Private $guid = (Get-Item 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles*' | Where-Object { $_.GetValue('ProfileName') -eq 'Network' }).PSChildName Set-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles$guid" -Name Category -Value 1 -Type DWord
-  Примените изменения, перезапустив службы NLA/Network List (или временно отключите/включите сеть): PowerShell Restart-Service -Name NlaSvc -Force Restart-Service -Name netprofm -Force # Альтернатива: # Disable-NetAdapter -Name "Ethernet" -Confirm:$false; Start-Sleep 2; Enable-NetAdapter -Name "Ethernet" -Confirm:$false
-  Проверьте результат: PowerShell Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
Сценарии и команды для Server Core
PowerShell
# Показать все профили и их GUID
Get-Item 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles*' |
  ForEach-Object {
    [PSCustomObject]@{
      Guid = $_.PSChildName
      ProfileName = $_.GetValue('ProfileName')
      Category = $_.GetValue('Category')
    }
  } | Format-Table
# Установить Private по InterfaceIndex без открытия regedit
$cp = Get-NetConnectionProfile | Where-Object InterfaceIndex -eq 12
$guid = (Get-Item 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles*' |
  Where-Object { $_.GetValue('ProfileName') -eq $cp.Name }).PSChildName
Set-ItemProperty "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles$guid" -Name Category -Value 1 -Type DWord
Restart-Service NlaSvc, netprofm -Force
cmd
:: То же через REG.EXE
for /f "tokens=*" %a in ('reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles"') do @reg query "%a" /v ProfileName
:: После нахождения нужного GUID:
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkListProfiles{GUID}" /v Category /t REG_DWORD /d 1 /f
net stop nlasvc & net stop netprofm & net start nlasvc & net start netprofm
Частые проблемы и их решение ⚙️
- После установки 2 (DomainAuthenticated) профиль возвращается к 0/1. Причина: нет связи с контроллером домена; NLA переопределяет значение. Решение: убедитесь в корректной DNS/AD-аутентификации, затем дать NLA выставить профиль автоматически.
- Групповая политика сбрасывает Category. Проверьте Computer Configuration → Windows Settings → Security Settings → Network List Manager Policies. Либо снимите принудительные правила, либо настройте их корректно.
- Потеря удалённого доступа после смены профиля. Держите консольный доступ/iDRAC/iLO и заранее разрешите правила RDP/WinRM под все профили или выполните изменение в непиковое время. Всегда имейте резервный канал управления 💾.
- Несколько адаптеров: меняйте Category для каждого соответствующего профиля; активный маршрут по умолчанию определяет, какой профиль «влияет» на исходящие подключения.
- NLA «зависает»: перезапустите NlaSvc и netprofm; при необходимости перезапустите mpssvc (брандмауэр) и временно отключите/включите адаптер.
Политики и фиксация нужного типа сети
Чтобы зафиксировать поведение на серверах, используйте Group Policy:
- Computer Configuration → Windows Settings → Security Settings → Network List Manager Policies.
- Настройте «Unidentified Networks» и «Identified Networks»: Set as Private, запретите пользователям менять расположение сети.
- Определите, какие службы брандмауэра разрешены под каждым профилем (Microsoft Defender Firewall with Advanced Security).
Это предотвратит нежелательные откаты и приведёт конфигурацию к стандартам компании.
FAQ по смежным темам
В: Можно ли менять тип сети только через реестр, без PowerShell?
 О: Да, с помощью regedit или reg.exe. Однако PowerShell облегчает поиск нужного GUID и проверку результата.
В: Как быстро проверить, какой профиль брандмауэра активен?
 О: В PowerShell: (Get-NetConnectionProfile).NetworkCategory и Get-NetFirewallProfile | Select Name, Enabled. Также можно посмотреть в Windows Security → Firewall & network protection (на Server с Desktop Experience).
В: Что делать, если после перезагрузки профиль снова Public?
 О: Проверьте связь с доменом, настройки GPO Network List Manager Policies, корректность DNS, порядок сетевых интерфейсов и наличие стороннего ПО, влияющего на NLA.
В: Есть ли безопасный способ «накатить» изменения массово?
 О: Да, через PowerShell Remoting/WinRM и Desired State Configuration/Intune/Group Policy Preferences. Перед массовым изменением проверьте, что RDP/WinRM открыты для всех целевых профилей.
В: Отличается ли поведение в Server 2025 от 2019/2022?
 О: Логика NLA и ключ Category остались прежними. Добавлены усиленные политики безопасности по умолчанию и возможные корпоративные базовые наборы, из‑за чего чаще встречается принудительный Public. Принципы и ключи реестра совместимы.
