Очистить все и только постоянные (статические) маршруты в Windows

8

Есть ли простой способ сделать это через команду / пакет оболочки? VBScript также будет в порядке.

user1686
источник

Ответы:

9

Чтобы очистить все маршруты, используйте:

маршрут -f

Чтобы очистить только постоянные маршруты, вы можете использовать

reg delete HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ PersistentRoutes / va / f
но это не удалит их из текущих активных маршрутов.

user1686
источник
У меня есть множество постоянных маршрутов, но я не вижу ни одного на этом регки. Они хранятся где-то еще в наши дни (Windows 10)?
NickG
@NickG: не уверен. Вы говорите о маршрутах IPv4 или IPv6?
user1686
0

Вот cmd-скрипт, который извлекает статические маршруты из реестра и выдает route deleteкоманды для каждого из них.

Этот метод удаляет их как из сохраненного списка постоянных маршрутов, так и из текущих активных маршрутов.

@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
)
Клаус Хартнегг
источник
0

Это можно сделать в качестве основного цикла for, позволяющего корректно очистить маршруты для существующих и будущих маршрутов.

(И не вмешиваясь в просмотр или редактирование каких-либо элементов реестра), используя простую печать маршрута, направленную в находку и зацикленную в удалении маршрута.

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  ) )
Бен Персоник
источник