Método 1
Una forma en que he tratado este problema en un sistema crítico de Windows Server en un entorno que mantengo fue con un script por lotes que usa Set-NetConnectionProfile y netsh , y configuró explícitamente cada NIC / adaptador de confianza en la máquina como privado al inicio del sistema con Programador de tareas usando Run whether user is logged on or not
y Run with highest privileges
opción.
Nota: Si bien la nota de recompensa dice " La solución no debe causar la pérdida de conectividad de red para implementar " Quería mencionar que, cuando ocurre este problema, hay una interrupción de la red de todos modos, que ejecutar este script si el problema ocurre al azar cuando el sistema está no reinicié que simplemente ejecutando este mismo script, aún así se resolverá rápidamente el problema y se obtendrá el acceso a la red de la máquina del sistema operativo en el orden de trabajo y esperado.
Además, puede usar el Get-NetConnectionProfile para obtener los nombres de alias de NIC y los números de índice para colocarlos en el script por lotes de ejemplo a continuación para sus necesidades y / o sistemas.
Script por lotes
@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
A continuación se presentan algunos otros métodos, uno de los muchos es lo que ha intentado, pero lo dejé allí para otros que se encuentran con esta publicación en caso de que los ayude, pero estas son algunas formas de evitar esto por completo, pero hay siempre tendrá ventajas y desventajas con cualquier método que elija, así que elija su veneno y pruebe en consecuencia.
Método 2 (métodos múltiples)
Si NLA no puede determinar la ubicación de una conexión, la nombra "No identificada" y marca la ubicación como Pública. Elige Público porque es más seguro y no querría nada menos si la conexión está en la DMZ.
Hay dos formas fáciles de solucionar esto. Uno usa la Política de seguridad local para cambiar la ubicación predeterminada de las redes no identificadas. El segundo método utiliza un cambio en las propiedades de conexión de red para darle a NLA la información que necesita para ubicar adecuadamente la ubicación.
Uso de la política de seguridad local
Precaución: Esto solo debe usarse si la computadora nunca tendrá conexiones en la LAN pública. De lo contrario, corre el riesgo de tener un perfil de firewall menos seguro aplicado a su conexión pública.
Abra la " Política de seguridad local ".
Haga clic en " Políticas de Network List Manager " en el panel izquierdo. (Esta selección está oculta en versiones anteriores de Windows).
Haga doble clic en " Redes no identificadas " en el panel derecho.
Para las computadoras que solo existen en la red privada, está bien establecer " Tipo de ubicación " en " privado ".
Usar propiedades de conexión de red
No se trata de agregar una puerta de enlace IP, ya que eso no funciona correctamente en un servidor de alojamiento múltiple. En su lugar, agregaremos un sufijo DNS para que NLA pueda ubicar adecuadamente el controlador de dominio, que es cómo sabe marcar la ubicación como "Red de dominio".
Vaya a Conexiones de red (desde el Centro de redes y recursos compartidos, haga clic en "Cambiar la configuración del adaptador").
Vaya a las propiedades de una conexión de red marcada como " No identificada " pero en la LAN privada.
Vaya a las propiedades de IPv4 .
Haga clic en el botón " Avanzado ...".
Seleccione la pestaña DNS .
Ingrese su nombre de dominio en el cuadro de texto para " Sufijo DNS para esta conexión: ".
Deshabilite y luego habilite la conexión para que NLA vuelva a identificar la ubicación. Después de habilitar la conexión, el Estado debería cambiar al nombre de dominio y la Categoría de red a "Red de dominio". Dependiendo de su configuración, es probable que solo necesite "arreglar" una conexión para obtener todas las conexiones relacionadas para ver el dominio.
Pasar de privado a público
Hay dos formas comunes de obligar a NLA a marcar una conexión como pública. Una es usar una regla de firewall para bloquear NLA para que no tenga más remedio que usar la ubicación predeterminada. El otro es usar el registro para deshabilitar NLA en la conexión.
Usando el cortafuegos
No he probado esto, pero la teoría parece sólida.
Abra " Firewall de Windows con seguridad avanzada " (es decir wf.msc
).
Ir a las reglas de salida .
Haga clic en " Nueva regla ...".
Use esta configuración:
- Tipo de regla: personalizada
- Programa: Seleccione "Todos los programas" y luego haga clic en "Personalizar ...". Seleccione "Conocimiento de ubicación de red" (el nombre corto es NlaSvc).
- Protocolo y puertos: Tipo de protocolo = Cualquiera.
- Alcance: IP locales = Ingrese todas sus IP públicas. Verifique dos veces las conexiones con múltiples IP.
- Acción: bloque
- Perfil: Todos
Una vez que se habilita la regla, deshabilite y luego habilite la conexión de red para que NLA vuelva a identificar la ubicación.
Usando el registro
No he tenido este trabajo para mí, pero mi circunstancia puede ser diferente a la suya. Encontrar el número de conexión correcto es un poco impredecible, ya que hay muchas más entradas de las que cabría esperar.
Ejecute regedit
Ir HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Debajo, debería ver varias teclas con la etiqueta 0000, 0001, 0002, etc ... Mire a través de estas y encuentre los adaptadores donde desea desactivar NLA.
Para cada uno de los adaptadores, agregue un nuevo valor DWORD llamado "* NdisDeviceType" y configúrelo en 1 (asegúrese de obtener el * al comienzo del nombre).
Poniéndose drástico
Los perfiles de ubicación se encuentran en el registro y parece inofensivo eliminarlos y dejar que Windows los reconstruya. Definitivamente, querrá hacer una copia de seguridad del registro primero y es probable que necesite estar conectado al servidor a través de KVM en lugar de a distancia (RDP). No asumiré ninguna responsabilidad si eliges este paso, ya que principalmente lo pongo aquí como referencia.
La ubicación de los perfiles es:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
fuente