批量检测多网站在线状态的PowerShell脚本修改求助
嘿,我帮你把这个单网站检测的脚本改成批量版本啦,新手也能轻松上手~下面是修改后的完整脚本,还加了实用的异常处理和友好的输出提示:
# 定义要检测的网站列表,你可以自由添加/修改这里的网址(支持8-10个甚至更多) $websites = @( 'http://google.com', 'https://github.com', 'https://stackoverflow.com', 'http://example.com', 'https://microsoft.com' # 继续添加你需要检测的网站即可 ) # 逐个遍历网站执行检测 foreach ($site in $websites) { Write-Host "`n正在检测: $site" -ForegroundColor Cyan $httpResponse = $null try { # 创建HTTP请求对象 $httpRequest = [System.Net.WebRequest]::Create($site) # 设置请求超时时间(10秒,避免卡壳) $httpRequest.Timeout = 10000 # 获取网站响应 $httpResponse = $httpRequest.GetResponse() $statusCode = [int]$httpResponse.StatusCode # 根据状态码判断网站状态 if ($statusCode -eq 200) { Write-Host "✅ 网站在线,状态码: $statusCode" -ForegroundColor Green } else { Write-Host "⚠️ 网站返回非200状态码: $statusCode" -ForegroundColor Yellow } } catch { # 捕获请求失败的异常(比如无法连接、超时、DNS解析失败等) Write-Host "❌ 网站无法访问,错误信息: $($_.Exception.Message)" -ForegroundColor Red } finally { # 确保无论成功失败都关闭响应,释放资源 if ($httpResponse -ne $null) { $httpResponse.Close() } } }
针对新手的关键说明:
- 怎么添加网站:直接在
$websites数组里换行添加网址就行,比如再加'https://xxx.com',8-10个完全没问题。 - 为什么加try/catch:原来的脚本如果遇到网站打不开(比如断网、网站宕机)会直接报错终止,现在捕获异常后会继续检测其他网站,还会告诉你具体错误原因。
- 超时设置:
$httpRequest.Timeout = 10000是设置10秒超时,要是某个网站响应太慢,脚本不会一直等,会直接判定无法访问。 - 彩色输出:用不同颜色区分状态,绿色是正常,黄色是非200状态,红色是访问失败,结果一眼就能看明白。
使用方法:把这段代码复制到记事本,保存为WebsiteChecker.ps1,然后右键选择“用PowerShell运行”就可以啦~
内容的提问来源于stack exchange,提问作者robh
相关产品推荐
相关产品推荐

