2008-12-20 154 views
9

有人確切知道Windows XP在網絡連接上單擊「修復」時的功能嗎?我想以編程方式或從命令行執行相同的操作。以編程方式/從命令行「修復」網絡連接

我做了一個谷歌搜索,發現this article,這有一個很好的解釋,但我認爲它不完整。我可以可靠地重現一種情況,即丟失網絡連接並單擊修復按鈕修復問題,但運行該文章中的命令不會。

回答

20

謝謝,夥計們,我想我明白了。在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

+0

你有偶然的C代碼或不知道所使用的API – Nightforce2 2011-08-18 18:22:50

+0

沒有,對不起,它已經有一段時間 – EMP 2011-08-19 00:26:55

+1

發現它使用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

0
ipconfig /renew 
2

在無線連接的情況下,它也禁用和重新啓用網絡適配器。我懷疑這是文章中缺少的東西。

8

似乎有一個few more things它:

  • 動態主機配置協議(DHCP)租約到期:ipconfig /續訂
  • 地址解析協議(ARP)緩存刷新命令arp -d
  • 刷新NetBIOS名稱緩存:使用nbtstat -R
  • NetBIOS名稱發送更新:使用nbtstat-RR
  • 域名SYSTE M(DNS)緩存刷新:IPCONFIG/FLUSHDNS
  • DNS名稱註冊:IPCONFIG/REGISTERDNS

但有一件事,如果你有打破所以經常需要用程序修復您的網絡連接,這可能不是您正在尋找的解決方案。

0

這只是完成1 api電話!

看到的Win32 API論壇新聞://comp.os.ms-windows.programmer.win32 其中代碼已獲得(C)

1
由lpfavreau和葉夫根,「修復列出的點

除了「網絡連接也做以下。 - 重置網絡設備MAC(可能是PHY)。這會導致設備重新啓動其所有本地數據結構,清除它可能陷入的任何錯誤狀態。 - 清除設備驅動程序和網絡接口中的Rx/Tx數據包隊列,將其更新爲舊的排隊的數據包。

5

有一個從命令行執行它的命令。

報價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地址相關的問題等)。

1

我體驗到WiFi連接,從時間下降到時候我的XP中,沒有任何明顯的理由,而解決這一問題的唯一方法是右鍵點擊系統托盤上和修復WiFi連接圖標。

得到這個命令行完成的,我按照這篇文章的步驟和工作對我來說:http://wlanbook.com/enable-disable-wireless-card-command-line/

1

什麼工作對我來說:

netsh interface show interface 

顯示接口名這對我來說是「以太網2」,然後:

netsh interface set interface "Ethernet 2" DISABLED 
netsh interface set interface "Ethernet 2" ENABLED 
0

這對我有效。

創建一個批處理文件(我稱爲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對於什麼樣的命令做

-1

這裏的解釋是,將執行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>&lt;QueryList&gt;&lt;Query Id="0" Path="System"&gt;&lt;Select Path="System"&gt;*[System[Provider[@Name='Microsoft-Windows-Power-Troubleshooter'] and EventID=1]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</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>