Effacez tous et uniquement les itinéraires persistants (statiques) sous Windows

8

Existe-t-il un moyen simple de le faire via une commande / batch shell? Un VBScript serait également correct.

user1686
la source

Réponses:

9

Pour effacer tous les itinéraires, utilisez:

route -f

Pour effacer uniquement les itinéraires persistants, vous pouvez utiliser

reg supprimer HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ PersistentRoutes / va / f
mais cela ne les supprimera pas des itinéraires actuellement actifs.

user1686
la source
J'ai beaucoup de routes persistantes, mais je n'en vois aucune sur cette clé de registre. Sont-ils stockés ailleurs ces jours-ci (Windows 10)?
NickG
@ NickG: pas sûr. Parlez-vous des routes IPv4 ou IPv6?
user1686
0

Voici un script cmd qui extrait les routes statiques du registre et émet des route deletecommandes pour chacune d'elles.

Cette méthode les supprime à la fois de la liste stockée des itinéraires persistants et des itinéraires actuellement actifs.

@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
la source
0

Cela peut être fait comme une boucle for basique vous permettant d'effacer correctement les routes pour les routes existantes et futures.

(Et sans s'impliquer dans la révision ou la modification des éléments du registre) à l'aide d'une simple impression d'itinéraire routée dans une recherche et bouclée dans une suppression d'itinéraire.

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
la source