Esse "recurso" de segurança é por design. Servidores em uma rede "nova" ou "não reconhecida" serão padronizados para o perfil público. Porque não está em um perfil de domínio, não é um DC e pesquisas de DNS (para identificar a rede) estão falhando, ele define a rede que você está como uma rede "Desconhecido" e, portanto, padrão para o perfil "público".
Você poderia contornar esse problema associando o servidor a um domínio e, ao fazer isso, definiria o local da rede como "Rede de domínio". Embora esta solução possa não ser ideal ou mesmo possível para você se você se conectar constantemente a redes "novas".
If you are on a trusted network and this is happening or this server is a DC, setting the service "Network Location Awareness" to delayed start will resolve this issue.
Se o seu servidor estiver "viajando" para redes diferentes ou um DC não estiver presente, você poderá executar o seguinte script powershell (Do windows blog do time do powershell ) para definir todos os perfis de rede como "privados":
# 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)}
Se você deseja criar uma tarefa agendada para executar este script na inicialização, aqui está um ótimo tutorial: "Use o Agendador de Tarefas do Windows para executar um script do Windows PowerShell ".