Эта «особенность» безопасности разработана. Серверы в «новой» или «нераспознанной» сети по умолчанию будут использовать общедоступный профиль. Поскольку он не находится в профиле домена, не является DC и DNS-запросы (для идентификации сети) не работают, он определяет сеть, в которой вы находитесь, как «Неизвестную» сеть, и, таким образом, по умолчанию используется «публичный» профиль.
Вы можете обойти эту проблему, подключив сервер к домену, и в этом случае сетевое расположение будет установлено как «Доменная сеть». Хотя это решение может быть не идеальным или даже невозможным для вас, если вы постоянно подключаетесь к «новым» сетям.
Если вы находитесь в доверенной сети, и это происходит, или этот сервер
это DC, установка службы «Network Location Awareness» на задержку
начало решит эту проблему.
Если ваш сервер «путешествует» по разным сетям или DC отсутствует, вы можете запустить следующий скрипт powershell (Из блог команды windows powershell ) чтобы установить все профили сети как "частные":
# 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» ,