Detectar servidores con WINS activo en Windows Server mediante PowerShell

Si tu organización planea apagar sus servidores WINS pero teme romper alguna aplicación legada, lo primero es saber qué equipos aún dependen de WINS. En esta guía aprenderás a identificarlos rápidamente con PowerShell y a deshabilitar el servicio de forma segura.

Índice

Por qué todavía existe WINS en 2025

Windows Internet Name Service (WINS) fue la respuesta de Microsoft al reto de resolver nombres NetBIOS cuando todavía no existía un DNS corporativo fiable. Aunque la mayoría de entornos modernos usan únicamente DNS, las migraciones largas, servidores obsoletos y aplicaciones heredadas hacen que WINS siga «oculto» en más redes de lo que parece. Mantenerlo encendido implica:

  • Supervisión adicional y gasto de licencias o de virtualización.
  • Superficie de ataque innecesaria: WINS carece de hardening moderno.
  • Complejidad operativa que frena la automatización de red.

Riesgos de apagar WINS sin inventario previo

Apagar un servidor WINS sin saber qué clientes aún lo usan puede provocar fallos de resolución NetBIOS, mapeos de carpetas compartidas que dejan de funcionar y servicios de impresión que no responden. Por ello es imprescindible enumerar primero los hosts con WINS configurado.

Método manual — útil para comprobaciones rápidas

  1. Inicia sesión en el servidor objetivo.
  2. Abre una consola (CMD) y ejecuta:
    ipconfig /all
  3. Busca la sección WINS Servers. Si aparecen IPs, ese adaptador aún utiliza WINS.

Es sencillo, pero impracticable si tienes decenas o cientos de hosts.

Método automatizado recomendado con PowerShell

Requisitos previos

  • WinRM habilitado y accesible en los servidores remotos (por defecto en Windows Server 2012+).
  • Una lista de nombres de servidor o FQDN en lista_servidores.txt, un elemento por línea.
  • Permisos administrativos en los equipos objetivo (o una cuenta con delegación CIM).

El script paso a paso

Invoke-Command -ComputerName (Get-Content .\lista_servidores.txt) -ScriptBlock {
    Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter "IPEnabled=TRUE" |
        Where-Object { $.WINSPrimaryServer -or $.WINSSecondaryServer } |
        Select-Object PSComputerName, Description,
                      @{Name='Primario';  Expression={$_.WINSPrimaryServer}},
                      @{Name='Secundario';Expression={$_.WINSSecondaryServer}}
} | Export-Csv .\ServidoresConWINS.csv -NoTypeInformation

Qué hace cada línea

PasoAcción
1Invoke‑Command paraleliza la consulta en todos los hosts listados.
2Get‑CimInstance obtiene los adaptadores con IP (evitamos túneles y Loopback).
3Where‑Object filtra aquellos con servidor WINS primario o secundario configurado.
4Select‑Object expone el nombre del equipo, descripción del NIC y las IP detectadas.
5Export‑Csv escribe un informe listo para Excel o Power BI.

Ejecución y resultado

Guarda el script en una estación de administración y ejecútalo con una sesión elevada. Obtendrás un archivo ServidoresConWINS.csv con un registro por cada adaptador que usa WINS. En entornos medianos (< 300 hosts) el barrido suele tardar menos de dos minutos.

Escenarios alternativos

Entornos sin WinRM

Si tu política de seguridad bloquea WinRM, puedes recurrir a WMI clásico (más lento) desde el equipo local:

Get-WmiObject -Class Win32_NetworkAdapterConfiguration `
              -ComputerName (Get-Content .\lista_servidores.txt) `
              -Filter "IPEnabled=TRUE" |
    Where-Object { $.WINSPrimaryServer -or $.WINSSecondaryServer } |
    Select PSComputerName, Description, WINSPrimaryServer, WINSSecondaryServer

Comprobación local en scripts de inicio de sesión

Para capturar estaciones de trabajo o portátiles que rara vez están en línea, inserta este bloque en un script de inicio de sesión o en una GPO de logon:

Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "IPEnabled=TRUE" |
    Where-Object { $.WINSPrimaryServer -or $.WINSSecondaryServer } |
    Out-File "\\Servidor\Share\WINS_$(hostname).txt"

Cómo deshabilitar WINS de forma masiva

Eliminación manual (GUI)

En cada adaptador → Propiedades → Protocolo IPv4 → Avanzadas → Pestaña WINS → elimina las IP de los servidores WINS y desactiva Enable LMHOSTS Lookup.

Política de grupo (preferido)

Crea una GPP Registry con los siguientes ajustes para cada interfaz:

Ruta de claveValorAcción
HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_*
 NameServer
(vacío)Actualizar
(ruta idéntica)
 NameServerBackup
(vacío)Actualizar
(opcional)
 WINSEnableLMHostsLookup
0Actualizar

Tras la próxima aplicación de política los adaptadores dejarán de usar WINS y, si procede, también de consultar LMHOSTS.

Script PowerShell nativo

Para operar fuera de dominios o en entornos híbridos, adapta este fragmento:

$nics = Get-CimInstance Win32_NetworkAdapterConfiguration -Filter "IPEnabled=TRUE"
foreach ($nic in $nics) {
    $nic | Invoke-CimMethod -MethodName SetWINSServer -Arguments @{WINSPrimaryServer=''; WINSSecondaryServer=''}
    $nic | Invoke-CimMethod -MethodName EnableWins -Arguments @{DNSEnabledForWINSResolution=$false}
}

Verificación posterior a la migración

  1. Repite el script de inventario. El CSV debe quedar vacío.
  2. Apaga temporalmente el servicio WINS en uno de los controladores de pruebas durante 48 h.
  3. Monitorea el visor de eventos en clientes: errores de NetBT o de mapeo de recursos indican dependencias residuales.
  4. Si no hay incidencias, desinstala o apaga los servidores WINS definitivos.

Buenas prácticas finales

  • Documenta la fecha en la que el servicio dejó de estar disponible.
  • Actualiza tu estándar de creación de imágenes (golden images) para no añadir servidores WINS nuevos.
  • Considera un escaneo trimestral automático para detectar configuraciones heredadas que aparezcan por error.

Preguntas frecuentes

¿Qué sucede si una aplicación antigua solo usa NetBIOS?
Configura un alias DNS que resuelva el nombre corto al FQDN o usa el archivo hosts como último recurso.

¿Puedo borrar directamente la función WINS del servidor?
Sí, pero es más seguro detener el servicio, esperar una ventana de observación y, por último, remover la característica.

¿Hace falta reiniciar el servidor tras quitar WINS?
No. Basta con deshabilitar NetBIOS sobre TCP/IP para finalizar cualquier sesión NetBT pendiente; esto se realiza sin reinicios.

Conclusión

Enfrentarse a la jubilación de WINS puede parecer arriesgado, pero con el inventario adecuado es un proceso directo. Aprovecha los scripts que has visto para obtener visibilidad, aplica una política de grupo o un ajuste de registro centralizado y valida a conciencia. Así, podrás desactivar WINS con plena confianza y simplificarás tu infraestructura de nombres, reduciendo costes y mejorando la seguridad.

Índice