Método 1
Uma maneira de lidar com esse problema em um sistema Windows Server crítico em um ambiente que mantenho foi com um script em lote que usa Set-NetConnectionProfile e netsh , e defini explicitamente cada NIC / adaptador confiável na máquina como privado na inicialização do sistema com Agendador de tarefas usando Run whether user is logged on or not
e Run with highest privileges
opção.
Nota: Enquanto a nota de agradecimento declara " A solução não deve causar perda de conectividade de rede para implementar ", eu queria mencionar que, quando esse problema ocorre, você tem uma interrupção na rede de qualquer maneira, executando esse script se o problema ocorrer aleatoriamente quando o sistema estiver instalado. não reinicializou que simplesmente executar esse mesmo script ainda resolverá rapidamente o problema e obterá novamente o acesso à rede da máquina do sistema operacional na ordem esperada e de trabalho.
Além disso, você pode usar o Get-NetConnectionProfile para obter os nomes alternativos da NIC e os números de índice para colocar no exemplo de script em lote abaixo para suas necessidades e / ou sistemas.
Script de lote
@ECHO ON
::: The below PowerShell will set all the nework adapters to private rather than public and unknown as happens.
:DynamicPSScriptBuild
SET PSScript=%temp%\%~n0.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO Set-NetConnectionProfile -InterfaceIndex 12 -NetworkCategory Private>>"%PSScript%"
ECHO Set-NetConnectionProfile -InterfaceIndex 20 -NetworkCategory Private>>"%PSScript%"
ECHO Set-NetConnectionProfile -InterfaceIndex 22 -NetworkCategory Private>>"%PSScript%"
ECHO Set-NetConnectionProfile -InterfaceIndex 24 -NetworkCategory Private>>"%PSScript%"
:PowerShell
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"
:: The below will disable and then re-enable each NIC one-by-one so the unidentfied goes away after set to "private" above
:ResetNICs
SET Array="Ethernet", "Ethernet 2", "Ethernet 3", "Ethernet 4"
FOR %%A IN (%Array%) DO (
netsh int set int "%%~A" admin=disable
netsh int set int "%%~A" admin=enable
)
EXIT
Abaixo estão alguns outros métodos, com um dos muitos sendo o que você tentou, mas deixei para outros que se deparam com este post, caso isso os ajude, mas existem algumas maneiras de evitar isso inteiramente, talvez, mas existem sempre haverá vantagens e desvantagens em qualquer método que você escolher, então escolha seu veneno e faça o teste de acordo.
Método 2 (vários métodos)
Se o NLA não puder determinar um local de conexão, ele o nomeará "Não identificado" e marcará o local como Público. Ele escolhe Público porque é o mais seguro e você não quer nada menos se a conexão estiver na DMZ.
Existem duas maneiras fáceis de corrigir isso. Um usa a Diretiva de Segurança Local para alterar o local padrão de redes não identificadas. O segundo método usa uma alteração nas propriedades da conexão de rede para fornecer ao NLA as informações necessárias para colocar o local corretamente.
Usando Diretiva de Segurança Local
Cuidado: Isso só deve ser usado se o computador nunca tiver nenhuma conexão na LAN pública. Caso contrário, você corre o risco de ter um perfil de firewall menos seguro aplicado à sua conexão pública.
Abra " Diretiva de segurança local ".
Clique em " Políticas do Network List Manager " no painel esquerdo. (Esta seleção está oculta em versões mais antigas do Windows.)
Clique duas vezes em " Redes não identificadas " no painel direito.
Para computadores que existem apenas na rede privada, não há problema em definir " Tipo de local " para " particular ".
Usando propriedades de conexão de rede
Não se trata de adicionar um IP de gateway, pois isso não funciona corretamente em um servidor com hospedagem múltipla. Em vez disso, adicionaremos um sufixo DNS para que o NLA possa localizar corretamente o controlador de domínio, que sabe como marcar o local como "Rede de domínio".
Vá para Conexões de rede (no Centro de rede e compartilhamento, clique em "Alterar configurações do adaptador".)
Vá para as propriedades de uma conexão de rede marcada como " Não identificado ", mas na LAN privada.
Vá para as propriedades do IPv4 .
Clique no botão " Avançado ...".
Selecione a guia DNS .
Digite seu nome de domínio na caixa de texto para " Sufixo DNS para esta conexão: ".
Desative e ative a conexão para que o NLA identifique novamente o local. Depois de ativar a conexão, o Status deve mudar para o nome de domínio e a Categoria de Rede para "Rede de Domínio". Dependendo da sua configuração, é provável que você precise "consertar" apenas uma conexão para que todas as conexões relacionadas vejam o domínio.
Mover de Particular para Público
Existem duas maneiras comuns de forçar o NLA a marcar uma conexão como pública. Uma é usar uma regra de firewall para bloquear o NLA, para que ele não tenha escolha, a não ser usar o local padrão. A outra é usar o registro para desativar o NLA na conexão.
Usando o Firewall
Eu não testei isso, mas a teoria parece sólida.
Abra " Firewall do Windows com segurança avançada " (ou seja wf.msc
).
Vá para Regras de saída .
Clique em " Nova regra ...".
Use estas configurações:
- Tipo de regra: personalizado
- Programa: Selecione "Todos os programas" e clique em "Personalizar ...". Selecione "Reconhecimento do local da rede" (o nome abreviado é NlaSvc).
- Protocolo e portas: Tipo de protocolo = Qualquer.
- Escopo: IPs locais = Digite todos os seus IPs públicos. Verifique duas vezes se há conexões com vários IPs.
- Ação: Bloquear
- Perfil: Todos
Depois que a regra estiver ativada, desative e ative a conexão de rede para que o NLA identifique novamente o local.
Usando o registro
Eu não tive esse trabalho para mim, mas minha circunstância pode ser diferente da sua. Encontrar o número de conexão correto é um pouco imprevisível, pois há muito mais entradas do que você esperaria.
Execute regedit
Vamos para HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Abaixo, você deve ver várias teclas denominadas 0000, 0001, 0002, etc… Examine essas e encontre os adaptadores em que deseja desativar o NLA.
Para cada um dos adaptadores, adicione um novo valor DWORD chamado "* NdisDeviceType" e defina-o como 1 (certifique-se de obter o * no início do nome).
Ficando drástico
Os perfis de localização estão alojados no registro e parece inofensivo excluí-los e permitir que o Windows os reconstrua. Definitivamente, você desejará fazer backup do registro primeiro e provavelmente precisará estar conectado ao servidor via KVM em vez de remoto (RDP). Não assumirei nenhuma responsabilidade se você escolher esta etapa, pois estou colocando isso aqui principalmente para referência.
A localização dos perfis é:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
fonte