当您点击网络连接上的“修复”时,是否有人确切知道Windows XP的功能?我想以编程方式或从命令行执行相同的操作。
我进行了Google搜索并找到了this article,这有一个很好的解释,但我不认为它是完整的。我可以可靠地重现丢失网络连接并单击“修复”按钮修复问题的情况,但是运行该文章中的命令却没有。
答案 0 :(得分: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。
答案 1 :(得分:8)
似乎它有few more things:
- 续订动态主机配置协议(DHCP)租约:ipconfig / renew
- 刷新地址解析协议(ARP)缓存:arp -d
- 重新加载NetBIOS名称缓存:nbtstat -R
- 发送NetBIOS名称更新:nbtstat -RR
- 刷新域名系统(DNS)缓存:ipconfig / flushdns
- DNS名称注册:ipconfig / registerdns
但有一点,如果您经常断开连接,则需要以编程方式修复网络,这可能不是您正在寻找的解决方案。
答案 2 :(得分: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:\ network-connection.log表示将存储报告的文件的地址
netsh int ip ...命令允许您重置TCP / IP。
使用Windows XP Service Pack 2,您可以使用:
netsh winsock reset catalog
重置管理TCP / IP的套接字。这可用于处理网络问题(浏览器问题,IP地址相关问题等)
答案 3 :(得分:2)
在无线连接的情况下,它还会禁用并重新启用网络适配器。我怀疑这篇文章中缺少的东西。
答案 4 :(得分:1)
除了lpfavreau和Evgeny列出的点之外,“修复”网络连接也会执行以下操作。 - 重置网络设备MAC(可能还有PHY)。这会导致设备重新启动其所有本地数据结构,清除可能卡在其中的任何错误情况。 - 清除设备驱动程序和网络接口中的Rx / Tx数据包队列,清除任何较旧的排队数据包。
答案 5 :(得分:1)
我经历了wifi连接,不时在我的XP机箱上丢失,没有任何明显的原因,解决这个问题的唯一方法是右键单击系统托盘上的wifi连接图标并进行修复。
要从命令行完成此操作,我按照本文中的步骤操作,它适用于我:http://wlanbook.com/enable-disable-wireless-card-command-line/
答案 6 :(得分:1)
对我有用的是什么:
netsh interface show interface
显示对我来说是“Ethernet 2”的接口名称,然后是:
netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
答案 7 :(得分:0)
ipconfig /renew
答案 8 :(得分:0)
只需1次api通话即可完成!
请参阅Win32 api论坛新闻://comp.os.ms-windows.programmer.win32 代码已经给出(C)
答案 9 :(得分:0)
答案 10 :(得分:0)
这对我有用。
创建批处理文件(我称之为net 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
答案 11 :(得分:-1)
这是一个任务管理器XML文件(将其导入任务管理器),它将执行netsh接口集接口"以太网" DISABLED"然后在醒来后5秒钟启动#34; 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>