有人確切知道Windows XP在網絡連接上單擊「修復」時的功能嗎?我想以編程方式或從命令行執行相同的操作。以編程方式/從命令行「修復」網絡連接
我做了一個谷歌搜索,發現this article,這有一個很好的解釋,但我認爲它不完整。我可以可靠地重現一種情況,即丟失網絡連接並單擊修復按鈕修復問題,但運行該文章中的命令不會。
有人確切知道Windows XP在網絡連接上單擊「修復」時的功能嗎?我想以編程方式或從命令行執行相同的操作。以編程方式/從命令行「修復」網絡連接
我做了一個谷歌搜索,發現this article,這有一個很好的解釋,但我認爲它不完整。我可以可靠地重現一種情況,即丟失網絡連接並單擊修復按鈕修復問題,但運行該文章中的命令不會。
謝謝,夥計們,我想我明白了。在MS KB article posted by lpfavreau的步驟是幾乎完成。這就是我試過的,它不起作用。但是,如果我先用ipconfig /release
,那麼它似乎工作。我懷疑「修復」按鈕沒有明確記錄它。對於我的特殊情況,我還必須清除路線(「路線-f」)。所以,我最終到底執行上面的命令是:
route -f
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns
我也發現了一些C代碼來調用實際的「修復連接」功能,雖然我沒有測試它 - see last post here。
ipconfig /renew
在無線連接的情況下,它也禁用和重新啓用網絡適配器。我懷疑這是文章中缺少的東西。
似乎有一個few more things它:
- 動態主機配置協議(DHCP)租約到期:ipconfig /續訂
- 地址解析協議(ARP)緩存刷新命令arp -d
- 刷新NetBIOS名稱緩存:使用nbtstat -R
- NetBIOS名稱發送更新:使用nbtstat-RR
- 域名SYSTE M(DNS)緩存刷新:IPCONFIG/FLUSHDNS
- DNS名稱註冊:IPCONFIG/REGISTERDNS
但有一件事,如果你有打破所以經常需要用程序修復您的網絡連接,這可能不是您正在尋找的解決方案。
這只是完成1 api電話!
看到的Win32 API論壇新聞://comp.os.ms-windows.programmer.win32 其中代碼已獲得(C)
除了「網絡連接也做以下。 - 重置網絡設備MAC(可能是PHY)。這會導致設備重新啓動其所有本地數據結構,清除它可能陷入的任何錯誤狀態。 - 清除設備驅動程序和網絡接口中的Rx/Tx數據包隊列,將其更新爲舊的排隊的數據包。
有一個從命令行執行它的命令。
報價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:\網絡connection.log表示文件的地址,其中報告將被存儲
netsh int ip ...命令允許您重置TCP/IP。
在Windows XP Service Pack 2中,你可以使用:
netsh winsock reset catalog
重置其管理TCP/IP套接字。這可以用來處理網絡問題(瀏覽器問題,IP地址相關的問題等)。
我體驗到WiFi連接,從時間下降到時候我的XP中,沒有任何明顯的理由,而解決這一問題的唯一方法是右鍵點擊系統托盤上和修復WiFi連接圖標。
得到這個命令行完成的,我按照這篇文章的步驟和工作對我來說:http://wlanbook.com/enable-disable-wireless-card-command-line/
什麼工作對我來說:
netsh interface show interface
顯示接口名這對我來說是「以太網2」,然後:
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
這對我有效。
創建一個批處理文件(我稱爲mine netrepair.bat)並將其放置在您有執行權限的目錄中。使用記事本創建文件。
類型文件
IPCONFIG /在以下行更新 ARP -d * NBTSTAT -R NBTSTAT -RR IPCONFIG/FLUSHDNS IPCONFIG/REGISTERDNS
然後保存並關閉。
打開CMD端子作爲管理員,導航到其上netrepair.bat被保存,然後在命令行鍵入
netrepair.bat
的文件夾。
就是這樣。
參考http://support.microsoft.com/kb/289256對於什麼樣的命令做
這裏的解釋是,將執行netsh接口設置界面中的「以太網」關閉「後跟」啓用任務管理器的XML文件(將其導入到任務管理器) ?」,5秒後醒來
<?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>
你有偶然的C代碼或不知道所使用的API – Nightforce2 2011-08-18 18:22:50
沒有,對不起,它已經有一段時間 – EMP 2011-08-19 00:26:55
發現它使用IP幫助器類HTTP! //msdn.microsoft.com/en-us/library/windows/desktop/aa365872(v=vs.85).aspx。Infact!Microsoft發佈了Ipconfig的代碼elf在MSDN_98的其中一個代碼示例中。這是舊的,但它仍然在當前版本中使用。所有路由協議都使用位於此處的路由協議完成:http://msdn.microsoft.com/en-us/library/windows/desktop/bb530708(v=vs.85).aspx。我做出了我自己的想法,這對其他任何人來說都是有用的。 – Nightforce2 2012-01-17 00:17:18