Эта "особенность" безопасности разработана. Серверы в "новой" или "нераспознанной" сети по умолчанию будут использовать общедоступный профиль. Поскольку он не находится в профиле домена, не является 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".