簡體   English   中英

以編程方式/從命令行“修復”網絡連接

[英]“Repair” network connections programmatically/from command line

當你點擊網絡連接上的“修復”時,有沒有人確切知道Windows XP的功能? 我想以編程方式或從命令行執行相同操作。

我做了谷歌搜索並找到了這篇文章這篇文章有很好的解釋,但我認為它並不完整。 我可以可靠地重現我丟失網絡連接並單擊修復按鈕修復問題的情況,但是運行該文章中的命令卻沒有。

謝謝,伙計們,我想我想通了。 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地址相關問題等)

在無線連接的情況下,它還禁用並重新啟用網絡適配器。 我懷疑這篇文章中遺漏了什么。

我經歷了無線連接,不時在我的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>&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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM