ネットワーク接続で [修復] をクリックしたときの Windows XP の動作を正確に知っている人はいますか? プログラムまたはコマンドラインから同じことをしたいと思います。
Google 検索を行ったところ、適切な説明が記載されているこの記事が見つかりましたが、完全ではないと思います。ネットワーク接続が失われ、[修復] ボタンをクリックすると問題が解決する状況を確実に再現できますが、その記事のコマンドを実行しても問題は解決しません。
ネットワーク接続で [修復] をクリックしたときの Windows XP の動作を正確に知っている人はいますか? プログラムまたはコマンドラインから同じことをしたいと思います。
Google 検索を行ったところ、適切な説明が記載されているこの記事が見つかりましたが、完全ではないと思います。ネットワーク接続が失われ、[修復] ボタンをクリックすると問題が解決する状況を確実に再現できますが、その記事のコマンドを実行しても問題は解決しません。
ありがとう、みんな、私はそれを理解したと思います。lpfavreau によって投稿された MS KB 記事の手順はほぼ完了しています。それが私が試したもので、うまくいきませんでした。ただし、ipconfig /release
最初に実行すると、うまくいくようです。「修復」ボタンは、明示的に文書化されていなくてもそれを行うと思われます。私の特定のケースでは、ルートもクリアする必要がありました(「ルート-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) をリセットします。これにより、デバイスはすべてのローカル データ構造を再開し、スタックした可能性のあるエラー状態をクリアします。パケット。
私のために働いたもの:
netsh interface show interface
私にとっては「Ethernet 2」だったインターフェイス名を表示するには、次のようにします。
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
1回のAPI呼び出しで完了です。
コードが提供されたWin32apiフォーラムnews://comp.os.ms-windows.programmer.win32を参照してください(C)
私がこれで見つけた最も近いものは. http://msdn.microsoft.com/en-us/library/ff358632(v=vs.85).aspx
ipconfig /renew
これは私にとってはうまくいきました。
バッチ ファイル (私は netrepair.bat と呼びます) を作成し、実行権限のあるディレクトリに配置します。メモ帳を使用してファイルを作成します。
ファイルに次の行を入力します
ipconfig /renew arp -d * nbtstat -R nbtstat -RR ipconfig /flushdns ipconfig /registerdns
保存して閉じます。
管理者としてコマンド ターミナルを開き、netrepair.bat が保存されているフォルダーに移動して、次のように入力します。
netrepair.bat
コマンドラインで。
それでおしまい。
コマンドの機能の説明については、http://support.microsoft.com/kb/289256を参照してください。
これは、ウェイクアップの 5 秒後に netsh インターフェイス セット インターフェイス "Ethernet" DISABLED" に続いて "ENABLED" を実行するタスク マネージャー XML ファイル (タスク マネージャーにインポート) です。
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2015-01-15T10:19:28.1634612</Date>
<Author>MACHINE\user</Author>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Power-Troubleshooter'] and EventID=1]]</Select></Query></QueryList></Subscription>
<Delay>PT5S</Delay>
</EventTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>true</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\Windows\System32\netsh.exe</Command>
<Arguments>interface set interface "Ethernet" DISABLED</Arguments>
</Exec>
<Exec>
<Command>C:\Windows\System32\netsh.exe</Command>
<Arguments>interface set interface "Ethernet" ENABLED</Arguments>
</Exec>
</Actions>
</Task>