有人确切知道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