Windowsの起動中にネットワークインターフェイスを無効にする(またはアクティブ化を遅らせる)にはどうすればよいですか?これは、ファイアウォールアプリケーションが起動時にネットワークの監視を開始する前に発生する可能性のあるネットワークリークを回避することを目的としています。
状況:
ネットワークカードは、ドライバーが読み込まれ、ネットワークサービスが開始された直後にアクティブ化されるため、Windowsの起動シーケンスのかなり早い段階で、サードパーティのファイアウォールを使用するユーザーにとって潜在的なネットワークリスクにWindowsがさらされます。 (ほとんどのファイアウォールはWindowsログイン後にロードされるため)
考えられる解決策は、 BootExecute のような初期の起動段階でネットワークカードを無効にすることですが、この解決策の問題は、ネイティブアプリケーションがジョブを実行する必要があり、次のように実行するのが簡単ではないことです。ネイティブ関数は文書化されていません
解決策:
アイデアは、起動時にドライバーがアクティブ化されないようにドライバーを無効にすることです...システムが起動を完了した後、スケジュールされたタスクによってドライバーが有効になり、ロードされ、現在の状態でアクティブでロードされたまま、将来の再起動のために無効に設定されます時間
Diagram: (ND = Network Driver)
ND Disabled --> Boot --> Desktop --> ND Enabled --> ND Loaded --> ND Disabled (But still loaded)
アプリケーションは、2つのスケジュールされたスクリプトで構成されます。1つはWindowsログインの前に実行され(起動時)、もう1つはWindowsログインの後に実行されます(デスクトップ)。2つのスクリプトがある理由は、デバイス検出エラーを回避するためです。
スケジュールされたタスクスクリプト(ログオン前):
wmic path win32_networkadapter where index=0 call disable
wmic path win32_networkadapter where index=1 call disable
netsh interface set interface "Ethernet" disable
netsh interface set interface "Wi-Fi" disable
スケジュールされたタスクスクリプト(ログオン後):
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wifidriver /f /v Start /t REG_DWORD /d 3
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ethernetdriver /f /v Start /t REG_DWORD /d 3
wmic path win32_networkadapter where index=0 call enable
wmic path win32_networkadapter where index=1 call enable
netsh interface set interface "Ethernet" enable
netsh interface set interface "Wi-Fi" enable
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wifidriver /f /v Start /t REG_DWORD /d 4
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ethernetdriver /f /v Start /t REG_DWORD /d 4
出典:
ユーザーモードのデバッグ 、 サービスの開始 、 Windowsブートプロセス 、 ドライバーのロード順序 および 開始タイプサービスの値