Borre todas y solo las rutas persistentes (estáticas) en Windows

8

¿Hay una manera simple de hacer esto a través de un comando de shell / lote? Un VBScript también estaría bien.

usuario1686
fuente

Respuestas:

9

Para borrar todas las rutas, use:

ruta -f

Para borrar solo rutas persistentes, puede usar

reg eliminar HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ PersistentRoutes / va / f
pero esto no los eliminaría de las rutas activas actualmente.

usuario1686
fuente
Tengo muchas rutas persistentes, pero no veo ninguna en ese regkey. ¿Están almacenados en otro lugar en estos días (Windows 10)?
NickG
@NickG: No estoy seguro. ¿Estás hablando de rutas IPv4 o IPv6?
user1686
0

Aquí hay un cmd-script que extrae las rutas estáticas del registro y emite route deletecomandos para cada una de ellas.

Este método los elimina tanto de la lista almacenada de rutas persistentes como de las rutas actualmente activas.

@echo off
set key=HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
for /f "tokens=1,2,3,* delims=," %%i in ('reg query %key% ^| find "REG_SZ"') do (
   route delete %%i mask %%j %%k
)
Klaus Hartnegg
fuente
0

Esto puede hacerse como un bucle for básico que le permite borrar las rutas correctamente para las rutas existentes y futuras.

(Y sin involucrarse en la revisión o edición de ningún elemento del registro) usando una ruta simple de impresión canalizada en un hallazgo y en bucle en una ruta de eliminación.

FOR /F "TOKENS=1-5" %a IN ('ROUTE PRINT ^| FIND /I /V "On-Link" ^| FINDSTR /E /R /C:" *\.[0-9]*[0-9] *[0-9][0-9]*"') DO @(IF /I "%~e" EQU "" ( ROUTE DELETE %a MASK %b %c  ) )
Ben Personick
fuente