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.
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
- Inicia sesión en el servidor objetivo.
- Abre una consola (CMD) y ejecuta:
ipconfig /all
- 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
Paso | Acción |
---|---|
1 | Invoke‑Command paraleliza la consulta en todos los hosts listados. |
2 | Get‑CimInstance obtiene los adaptadores con IP (evitamos túneles y Loopback). |
3 | Where‑Object filtra aquellos con servidor WINS primario o secundario configurado. |
4 | Select‑Object expone el nombre del equipo, descripción del NIC y las IP detectadas. |
5 | Export‑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 clave | Valor | Acción |
---|---|---|
HKLM\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_* NameServer | (vacío) | Actualizar |
(ruta idéntica) NameServerBackup | (vacío) | Actualizar |
(opcional) WINSEnableLMHostsLookup | 0 | Actualizar |
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
- Repite el script de inventario. El CSV debe quedar vacío.
- Apaga temporalmente el servicio WINS en uno de los controladores de pruebas durante 48 h.
- Monitorea el visor de eventos en clientes: errores de NetBT o de mapeo de recursos indican dependencias residuales.
- 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.