ネットワーク接続で[修復]をクリックしたときにWindows XPが何をするかを正確に知っている人はいますか?プログラムまたはコマンドラインから同じことをしたいのですが。
グーグルで検索して この記事 を見つけました。これは良い説明がありますが、完全ではないと思います。ネットワーク接続が失われ、[修復]ボタンをクリックすると問題が解決する状態を確実に再現できますが、その記事のコマンドを実行しても問題は解決しません。
おかげで、みんな、私はそれを理解したと思います。 lpfavreauによって投稿されたMS KB記事 の手順はほぼ完了しています。それが私が試したもので、うまくいきませんでした。しかし、私がipconfig /release
最初に、それはうまくいくようです。 「修復」ボタンは、明示的に文書化されていなくてもそれを行うのではないかと思います。私の特定のケースでは、ルートもクリアする必要がありました(「route-f」)。したがって、最終的に実行することになったコマンドは次のとおりです。
route -f
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns
また、実際の「接続の修復」機能を呼び出すためのCコードもいくつか見つかりましたが、テストはしていません- ここの最後の投稿を参照 。
あと少し あるようです:
- 動的ホスト構成プロトコル(DHCP)リースが更新されました:ipconfig/renew
- アドレス解決プロトコル(ARP)キャッシュがフラッシュされます:arp -d
- NetBIOSネームキャッシュのリロード:nbtstat -R
- NetBIOS名の更新が送信されます:nbtstat -RR
- ドメインネームシステム(DNS)キャッシュがフラッシュされます:ipconfig/flushdns
- DNS名の登録:ipconfig/registerdns
ただし、接続が頻繁に切断されるため、プログラムでネットワークを修復する必要がある場合、これは探している解決策ではない可能性があります。
コマンドラインからそれを行うコマンドがあります。
引用 http://en.kioskea.net/faq/sujet-848-windows-xp-repairing-the-network-connection-using-command-line :
Windowsの下でXPネットワーク接続を修復できる小さな機能があります。コントロールパネル(コントロールパネル/ネットワーク接続)のネットワーク接続オプションに移動し、目的のネットワーク接続を右クリックします修復オプションを選択します。
次のコマンドライン内で、Netshユーティリティを使用して同じコマンドを実行できます。
netsh int ip reset c:\network-connection.log
c:\ network-connection.logは、レポートが保存されるファイルのアドレスを表します
Netsh int ip ...コマンドを使用すると、TCP/IPをリセットできます。
Windows XP Service Pack 2では、次を使用できます。
netsh winsock reset catalog
TCP/IPを管理するソケットをリセットします。これは、ネットワークの問題(ブラウザの問題、IPアドレス関連の問題など)を処理するために使用できます。
ワイヤレス接続の場合は、ネットワークアダプタを無効にしてから再度有効にします。そのようなものが記事に欠けているものだと思います。
LpfavreauとEvgenyによってリストされたポイントとは別に、「修復」ネットワーク接続は次のことも行います。 -ネットワークデバイスのMAC(およびおそらくPHY)をリセットします。これにより、デバイスはすべてのローカルデータ構造を再開始し、スタックしている可能性のあるエラー状態をクリアします。-デバイスドライバーとネットワークインターフェイスのRx/Txパケットキューをクリアし、古いキューがあればフラッシュします。パケット。
私のために働いたこと:
netsh interface show interface
私にとって「イーサネット2」であったインターフェース名を表示し、次に:
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
Wi-Fi接続が発生し、XPボックスにときどきドロップされますが、明確な理由はありません。これを修正する唯一の方法は、システムトレイのWi-Fi接続アイコンを右クリックして修復することです。
これをコマンドラインから実行するには、この記事の手順に従います。これでうまくいきます。 http://wlanbook.com/enable-disable-wireless-card-command-line/
ipconfig /renew
これで私が見つけた最も近いものはでした。 http://msdn.Microsoft.com/en-us/library/ff358632(v = vs.85).aspx
これは私のために働いています。
バッチファイル(私は私のnetrepair.batと呼びました)を作成し、実行権限のあるディレクトリに配置します。メモ帳を使用してファイルを作成します。
ファイルに次の行を入力します
ipconfig/renew arp -d * nbtstat -R nbtstat -RR ipconfig/flushdns ipconfig/registerdns
次に、保存して閉じます。
管理者としてcmdターミナルを開き、netrepair.batが保存されているフォルダーに移動して、次のように入力します。
netrepair.bat
コマンドラインで。
それでおしまい。
コマンドの機能の説明については、 http://support.Microsoft.com/kb/289256 を参照してください。
1回のAPI呼び出しで完了です!
コードが提供されたWin32apiフォーラムnews://comp.os.ms-windows.programmer.win32を参照してください(C)