3

В Windows Server 2012 и 2012R2 можно ли настроить будущие сетевые подключения на использование профиля Private firewall вместо значения по умолчанию для Public?

Я попытался установить для всех элементов сети значение «Частное» в secpol.msc -> «Параметры безопасности» -> «Политики диспетчера списка сетей», но когда я подключаюсь к новой сети, по умолчанию всегда используется значение «Общий».

Кроме того, есть ли способ повторно включить диалоговое окно "Установить сетевое расположение", которое представлено в не серверных версиях Windows. Это по крайней мере поможет облегчить проблему.

1 ответ1

2

Эта "особенность" безопасности разработана. Серверы в "новой" или "нераспознанной" сети по умолчанию будут использовать общедоступный профиль. Поскольку он не находится в профиле домена, не является DC и DNS-запросы (для идентификации сети) не работают, он определяет сеть, в которой вы находитесь, как "Неизвестную" сеть, и, таким образом, по умолчанию используется "публичный" профиль.

Вы можете обойти эту проблему, присоединив сервер к домену, и в этом случае сетевое расположение будет установлено как "Доменная сеть". Хотя это решение может быть не идеальным или даже невозможным для вас, если вы постоянно подключаетесь к "новым" сетям.

Если вы находитесь в доверенной сети, и это происходит, или этот сервер является DC, то установка службы "Сведения о расположении сети" на отложенный запуск решит эту проблему.

Если ваш сервер "путешествует" по разным сетям или DC отсутствует, вы можете запустить следующий скрипт powershell (из блога команды windows powershell), чтобы установить для всех сетевых профилей значение "private":

# Skip network location setting for pre-Vista operating systems
if([environment]::OSVersion.version.Major -lt 6) { return }

# Skip network location setting if local machine is joined to a domain.
if(1,3,4,5 -contains (Get-WmiObject win32_computersystem).DomainRole) { return }

# Get network connections
$networkListManager = [Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]"{DCB00C01-570F-4A9B-8D69-199FDBA5723B}"))
$connections = $networkListManager.GetNetworkConnections()

# Set network location to Private for all networks
$connections | % {$_.GetNetwork().SetCategory(1)}

Если вы хотите создать запланированное задание для запуска этого сценария при загрузке, вот отличное руководство: "Используйте планировщик заданий Windows для запуска сценария Windows PowerShell".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .