シェルコマンド/バッチを介してこれを行う簡単な方法はありますか? VBScriptでも問題ありません。
すべてのルートをクリアするには、次を使用します:
ルート-f
永続的なルートのみをクリアするには、次を使用できます
reg HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes/va/fを削除します
以下は、レジストリから静的ルートを抽出し、それぞれにroute delete
コマンドを発行するcmdスクリプトです。
このメソッドは、保存されている永続的なルートのリストと現在アクティブなルートの両方からそれらを削除します。
@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
)
これは、既存のルートと将来のルートのルートを正しくクリアできるようにする基本的な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 ) )