一般的な状況: 私は Windows 7 64 ビット プロフェッショナル、イーサネット経由のネットワーク接続、および USB GSM モデムのプラグを使用しています。問題は、インターネット プロバイダーが時々停止することであり、その間、自動的に USB モデムを使用したいと考えています。接続がダウンしているかどうかをアクティブにテストし、シェル コマンドを実行してインターネット アクセスに使用するアダプターを切り替えることができる Perl コードをいくつか書きました。
問題は、コマンド プロンプトからアダプターを変更する方法です。スクリプトに管理者権限を与えたくないのですが、やむを得ない場合は我慢できます。
予備的なルックアラウンド:
C:\Windows\system32>wmic nic get name, index
Index Name
0 WAN Miniport (SSTP)
1 WAN Miniport (IKEv2)
2 WAN Miniport (L2TP)
3 WAN Miniport (PPTP)
4 WAN Miniport (PPPOE)
5 WAN Miniport (IPv6)
6 WAN Miniport (Network Monitor)
7 Realtek PCIe GBE Family Controller
8 WAN Miniport (IP)
9 Microsoft ISATAP Adapter
10 RAS Async Adapter
11 Teredo Tunneling Pseudo-Interface
12 Microsoft ISATAP Adapter
13 Microsoft 6to4 Adapter
「netstat -rn」を見ると、ローカル エリア接続用のアダプタがモデムよりもバインドの優先順位が高いことがわかります。これは良いことです。
カジュアル ユーザー向けの私の USB モデムの使用法は、特注のアプリケーションを実行し、[接続/切断] ボタンをクリックすることで構成されます。私の知る限り、アプリにはコマンドラインオプションがありません。
一方向では、接続を維持するという追加の利点がある回避策を見つけました: Jarek "Shider" Wieczorek による AutoConnect 0.1.3.1。私の知る限り、コマンドラインオプションはありませんが、一度構成した後に実行するだけでGSM接続が確立され、場合によっては後で再接続されます。これは素晴らしいことです.
しばらくして、インターネット アクセスが復元された後、LAN (これは私の主要な、より高速なネット アクセスです) に戻す方法に固執しました。AutoConnect を強制終了した後も、接続はモデム経由のままです。元に戻すのは netsh コマンドの可能性があるのではないかと疑っていましたが、ヘルプには明らかなものは見つかりませんでした。絶望的な試みで、devcon.exe を使用してモデムを無効にすることを考えましたが、 http://support.microsoft.com/? kbid=311272 からダウンロードしたプログラム は実行されませんでした (いくつかのエラーは、実際には主な問題とは関係ありません)そして、うまくいけばより良いバージョンのために巨大なWindows Driver Kit 7.1.0をダウンロードする前に、私はここでいくつかの提案/解決策を尋ねようと思いました:)
USB接続をオフにする方法(Windowsが自動的にLANを使用する可能性があります)またはLANに切り替える方法について、きちんとした一般的な解決策または小さな特定の解決策を事前にありがとうございます。
編集:遅ればせながら、解決策を思いつきました。モデム接続の名前が ABCD であると仮定すると、次のコマンドは AutoConnect を閉じた後に接続を終了します。
rasdial ABCD /disconnect
しかし、私が提示したアイデア全体は非常にぎこちなく、きちんとしたアプローチを喜んで見ていると思います。ありがとう。