[英]“Repair” network connections programmatically/from command line
謝謝,伙計們,我想我想通了。 lpfavreau發布的MS KB文章中的步驟幾乎已完成。 這就是我嘗試過的,但它沒有用。 但是,如果我首先執行ipconfig /release
那么它似乎可行。 我懷疑“修復”按鈕會在沒有明確記錄的情況下執行此操作。 對於我的特殊情況,我還必須清除路線(“路線-f”)。 所以,我最終運行的命令是:
route -f
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns
我還發現了一些C代碼來調用實際的“修復連接”功能,雖然我還沒有測試過 - 請參閱上一篇文章 。
有命令從命令行執行此操作。
引用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地址相關問題等)
在無線連接的情況下,它還禁用並重新啟用網絡適配器。 我懷疑這篇文章中遺漏了什么。
我經歷了無線連接,不時在我的XP機箱上丟失,沒有任何明顯的原因,解決這個問題的唯一方法是右鍵單擊系統托盤上的wifi連接圖標並進行修復。
要從命令行完成此操作,我按照本文中的步驟操作,它適用於我: http : //wlanbook.com/enable-disable-wireless-card-command-line/
什么對我有用:
netsh interface show interface
顯示對我來說是“Ethernet 2”的接口名稱然后:
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
除了lpfavreau和Evgeny列出的點之外,“修復”網絡連接也會執行以下操作。 - 重置網絡設備MAC(可能還有PHY)。 這會導致設備重新啟動其所有本地數據結構,清除可能卡在其中的任何錯誤情況。 - 清除設備驅動程序和網絡接口中的Rx / Tx數據包隊列,清除任何較舊的排隊數據包。
這對我有用。
創建一個批處理文件(我稱之為我的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
ipconfig /renew
這只是1 api電話!
請參閱Win32 api論壇新聞://comp.os.ms-windows.programmer.win32其中已給出代碼(C)
這是一個任務管理器XML文件(將其導入任務管理器),它將在喚醒后5秒執行netsh接口設置接口“Ethernet”DISABLED“,然后執行”ENABLED“。
<?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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.