Löschen Sie alle und nur persistente (statische) Routen unter Windows

8

Gibt es eine einfache Möglichkeit, dies über einen Shell-Befehl / Batch zu tun? Ein VBScript wäre auch ok.

user1686
quelle

Antworten:

9

Verwenden Sie zum Löschen aller Routen:

Route -f

Um nur persistente Routen zu löschen, können Sie verwenden

reg delete HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ PersistentRoutes / va / f
Dies würde sie jedoch nicht von den derzeit aktiven Routen entfernen.

user1686
quelle
Ich habe viele dauerhafte Routen, aber ich sehe keine auf diesem Regkey. Werden sie heutzutage woanders gespeichert (Windows 10)?
NickG
@ NickG: Nicht sicher. Sprechen Sie über IPv4- oder IPv6-Routen?
user1686
0

Hier ist ein Cmd-Skript, das die statischen Routen aus der Registrierung extrahiert und route deleteBefehle für jede von ihnen ausgibt .

Diese Methode entfernt sie sowohl aus der gespeicherten Liste der persistenten Routen als auch aus den derzeit aktiven Routen.

@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
quelle
0

Dies kann als grundlegende for-Schleife erfolgen, mit der Sie die Routen für die vorhandenen und zukünftigen Routen korrekt löschen können.

(Und ohne sich mit dem Überprüfen oder Bearbeiten von Registrierungselementen zu befassen) Verwenden eines einfachen Routendrucks, der in einen Suchvorgang geleitet und in einen Routenlöschvorgang eingeschleift wird.

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
quelle