我有一个Windows XP机器,我正在远程访问,有进入一个奇怪的状态与networking连接 – 当你在本地机器上显示为连接,但没有任何东西通过。 禁用和启用networking连接解决了这个问题。 我猜这是一个更严重的问题的症状,但我至less在星期一才能到达机器进行sorting,所以我希望能够find一些实用程序或将一个快速脚本放在一起testingnetworking连接(即telnet google.com 80或其他),并尽可能重新启动networking连接,否则重新启动机器。 在此searchbuild议只有真正复杂的应急,我不想locking自己,才能得到它…任何人都可以提出一个简单的东西? 甚至每隔几个小时自动重新启动连接的方法?
如果你打算重启,至less要先testing连接。 所以如果你不能通过互联网取回东西,那么重新启动。 我们可以嘲笑你在第二场比赛中以70分的成绩淘汰,但是在每一个二分钟的比赛中都是愚蠢的。
编辑:经过进一步的反思和好奇心,这里是PowerShell的做法,有一些奖励的想法。 没有必要powershell -File testandpunt.ps1时间表,它会自动睡三分钟,所以只需在启动时运行一次( powershell -File testandpunt.ps1 )。 我已经添加了一个简单的计数器,所以它不会重启,直到三次失败的尝试。 显然,改变任何这些值。 更改serverfault.com为google.com因为后者可能更快,我宁愿你虹吸他们的带宽。
TestAndPunt.ps1:
$url = "http://google.com" $i = 0 # failure count while(1){ try{ $req=[system.Net.HttpWebRequest]::Create($url) $req.Timeout = 10000 # in milliseconds $res=$req.getresponse() $res.Close() $i=0 # got it, reset failure count } catch{ $i++ # failed, bump failure count } if( $i -eq 3 ){ # i give up, reboot shutdown -r -t 60 -f -c "Lost connection. Rebooting in 60 seconds..." } Start-Sleep -s 180 # wait a bit }
原来的答案:有可能是更好的方法,但我写了一个小脚本,只有在连接失败时才能重新启动。 如果你不能或不能使用vbs,那么curl,python或者perl或者其他什么都可以做同样的事情。
因此,您可以将时间安排得更紧 – 比如说每五分钟一次 – 减less重新启动次数,并减less连接断开的最长时间。
TestAndPunt.vbs:
Set WshShell = WScript.CreateObject("WScript.Shell") Set http = CreateObject("Microsoft.XmlHttp") http.open "GET", "http://serverfault.com/", FALSE http.send "" strData = http.ResponseText if( len(strData) = 0 ) Then Wscript.Echo "Restarting" WshShell.Run "%SystemRoot%\System32\shutdown.exe -r -t 600" End If set WshShell = nothing set http = nothing
在命令提示符下,您可以使用:
netsh接口设置界面“本地连接”禁用
netsh接口设置接口“本地连接”ENABLE
您可以将其粘贴到新的文本文件中,以.BAT或.CMD扩展名保存,然后设置一个计划任务,以便随时启动。
但是,我会build议尝试更新驱动程序,如果它不起作用,购买一个PCI网卡,你可以得到大约2英镑的价格便宜的,这是超过能够做的工作。
我现在所做的是每30分钟安排一次以下任务:
%SystemRoot%\System32\shutdown.exe -r -t 600
所以如果它死了,最坏的情况是我会在40分钟内回来。 这意味着我必须准备好shutdown -a当我使用它。
任何人都知道,如果它可能会损害你的机器每半小时重新启动?