Windows网络故障排查脚本

总是有朋友家里网络出问题请帮忙修理,这是个麻烦事,没有网络不能远程控制排除问题,电话描述又总是跟小白朋友说不清楚,因此就简单写了个故障排除脚本,让他们双击运行就好。做软件的总是沦落到修电脑的境地啊...

有些地方还需要完善,只在Win7上试过,有更懂行的朋友帮忙完善下吧!(保存成bat脚本,双击运行)

@echo off
setlocal enabledelayedexpansion
cls

echo "-----------------------------------------------------------" > NetworkStatus.txt
echo "------------           网络故障检测程序          ----------" >> NetworkStatus.txt
echo "-----------------------------------------------------------" >> NetworkStatus.txt
echo. >> NetworkStatus.txt

:: 检测TCP/IP协议驱动运行情况
:CHECKTCPPROT
echo "Check TCP/IP Protocol ..."
for /F "tokens=1,2* delims=(%%" %%i in ('ping -n 5 127.0.0.1 ^| find /i "Packets:"') do (
	set LOSSPACKE=%%j
	if !LOSSPACKE!==0 (
		echo "正确 : 网卡驱动、TCP/IP协议安装正常 ... " >> NetworkStatus.txt
	) else (
		if !LOSSPACKE!==100 (
			echo "错误 : 网卡驱动、TCP/IP协议错误!可能需要重装网卡驱动或操作系统 ... " >> NetworkStatus.txt
			NetworkStatus.txt
			goto :EOF
		) else (
			echo "警告 : 网卡驱动、TCP/IP协议可能存在问题,存在丢包情况(!LOSSPACKE!% loss) ... " >> NetworkStatus.txt
		)
	)
)
echo. >> NetworkStatus.txt

:: 检测网卡安装及网络参数配置情况
:CHECKNETWORKCFG
echo "Check Net work config settings ..."
for /F "tokens=1,2* delims=:" %%i in ('ipconfig ^| find /i "IP Address"') do (
		set LOCALIP=%%j
		echo "------------- IP 地址 (winXP): !LOCALIP!" >> NetworkStatus.txt
)
for /F "tokens=1,2* delims=:" %%i in ('ipconfig ^| find /i "IPv4 Address"') do (
		set LOCALIP=%%j
		echo "------------- IPv4 地址 (win7):!LOCALIP!" >> NetworkStatus.txt
)
for /F "tokens=1,2* delims=:" %%i in ('ipconfig ^| find /i "Default Gateway"') do (
	set GATEWAY=%%j
	echo "------------- 默认网关地址 : !GATEWAY!" >> NetworkStatus.txt
)
for /F "tokens=1,2* delims=:" %%i in ('ipconfig ^| find /i "DNS Server"') do (
	set DNSSERVER=%%j
	echo "------------- DNS 服务器地址 : !DNSSERVER!" >> NetworkStatus.txt
)
if "LOCALIP"=="" (
	echo "错误 : 网卡故障或者IP配置错误,请尝试设置(TCP/IPv4)为“自动分配IP地址” “自动分配DNS服务器” ... " >> NetworkStatus.txt
	control.exe ncpa.cpl
	NetworkStatus.txt
	goto :CHECKNETWORKCFG
) else (
	if "GATEWAY"=="" (
		echo "错误 : 网卡故障或者默认网关配置错误,请尝试设置(TCP/IPv4)为“自动分配IP地址” “自动分配DNS服务器” ... " >> NetworkStatus.txt
		control.exe ncpa.cpl
		NetworkStatus.txt
		goto :CHECKNETWORKCFG
	) else (
		for /F "tokens=1,2,3* delims=." %%i in ("%LOCALIP%") do (
			set IPADDERSEC1=%%i
			set IPADDERSEC2=%%j
			set IPADDERSEC3=%%k
		)
		for /F "tokens=1,2,3* delims=." %%i in ("%GATEWAY%") do (
			set GETWADDERSEC1=%%i
			set GETWADDERSEC2=%%j
			set GETWADDERSEC3=%%k
		)
		if !IPADDERSEC1!==!GETWADDERSEC1! (
			if !IPADDERSEC2!==!GETWADDERSEC2!  (
				if !IPADDERSEC3!==!GETWADDERSEC3! (
					set NETCONFIGERROR=0
				) else (
					set NETCONFIGERROR=1
				)
			) else (
				set NETCONFIGERROR=1
			)
		) else (
			set NETCONFIGERROR=1
		)
		if !NETCONFIGERROR!==1 (
			echo "错误 : IP地址配置错误或者默认网关配置错误,请尝试设置(TCP/IPv4)为“自动分配IP地址” “自动分配DNS服务器” ... " >> NetworkStatus.txt
			control.exe ncpa.cpl
			NetworkStatus.txt
			goto :CHECKNETWORKCFG
		) else (
			echo "正确 : 网卡正常,网络参数配置正常 ... " >> NetworkStatus.txt
		)
	)
)
echo. >> NetworkStatus.txt

:: 检测本地连接是否正常
:CHECKLANLINE
echo "Check Local area connection status..."
for /F "tokens=1,2* delims=(%%" %%i in ('ping -n 5 %GATEWAY% ^| find /i "Packets:"') do (
	set LOSSPACKE=%%j
	if !LOSSPACKE!==0 (
		echo "正确 : 本地路由连接正常 ... " >> NetworkStatus.txt
	) else (
		if !LOSSPACKE!==100 (
			echo "错误 : 无法连接路由器,如使用有线连接,请检查网线是否连接,电脑网络接口绿灯是否闪烁;">> NetworkStatus.txt
			echo "		 如使用无线连接,请检查无线路由是否开启,无线信号灯是否闪烁。 " >> NetworkStatus.txt
			echo "		 可尝试拔掉路由器电源以重新启动,看是否可以正常工作。 " >> NetworkStatus.txt
			NetworkStatus.txt
			goto :EOF
		) else (
			echo "警告 : 网线端口接触不良,或者无线信号强度不够,存在丢包情况(!LOSSPACKE!% loss) ... " >> NetworkStatus.txt
			echo "		 如使用有线连接,可尝试重新插拔网线两端端口,或更换网线或接头。 " >> NetworkStatus.txt
			echo "		 如使用无线连接,可尝试重启无线路由或电脑,并保持二者距离更近。 " >> NetworkStatus.txt
		)
	)
)
echo. >> NetworkStatus.txt

:: 检测互联网连接状态
:CHECKINTERNETCONNECTION
echo "Check Internet connection status ..."
for /F "tokens=1,2* delims=(%%" %%i in ('ping -n 5 www.baidu.com ^| find /i "Packets:"') do (
	set LOSSPACKE=%%j
	if !LOSSPACKE!==0 (
		echo "正确 : 外部网络连接正常,如无法上网,请尝试重启电脑,或重装应用程序或浏览器 ... " >> NetworkStatus.txt
	) else (
		echo "警告 : 我需要以下信息分析网络连接出现问题环节 ..."  >> NetworkStatus.txt
		echo "---------------------------------------------------------------------"  >> NetworkStatus.txt
		tracert www.baidu.com >> NetworkStatus.txt
		echo "---------------------------------------------------------------------"  >> NetworkStatus.txt
	)
)
echo. >> NetworkStatus.txt

NetworkStatus.txt


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows组策略执行脚本是一种用于在Windows操作系统中自动执行特定任务或配置策略的功能。该功能通过使用特定的脚本语言,如VBScript或PowerShell脚本,结合Windows组策略设置来实现。 通过组策略执行脚本,管理员可以在多台计算机上集中管理并自动执行相同的任务或配置。这极大地简化了系统管理员的工作。管理员可以在组策略管理器中创建或编辑组策略对象,并在“计算机配置”或“用户配置”中启用执行脚本的设置。 在执行脚本时,系统将会在指定的时间间隔内从网络共享或本地目录中下载指定的脚本文件,并在目标计算机上执行该脚本脚本可以用于各种任务,如安装软件、配置注册表、映射网络驱动器、更改配置文件等。 脚本的执行结果可以通过查看计算机的事件日志来监控。如果脚本执行失败或出现错误,将会在事件日志中生成相应的错误信息,管理员可根据错误信息进行故障排除和修复。 需要注意的是,组策略执行脚本功能需要管理员对目标计算机具有足够的权限,以便访问和执行脚本文件。另外,脚本的编和配置也需要一定的技术知识和经验,以确保脚本的正确性和安全性。 总之,Windows组策略执行脚本是一种方便实用的功能,可帮助管理员自动化和集中管理多台计算机的配置和任务。通过合理的使用和配置,可以大幅提高系统管理的效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值