【发布时间】:2013-12-13 19:17:46
【问题描述】:
我正在使用一个 powershell 脚本来检查 Web URL 以查看它是否存在。但是,我必须检查的几个站点将您重定向到需要您单击按钮才能继续的站点。即使站点正在运行,它也会因为页面提前返回失败。有没有办法使用 powershell 脚本解决这个问题?我收到的错误如下,后面是我的代码。
错误
SSL 错误图标
该站点的安全证书不受信任!
您尝试访问 ,但服务器提供了由您的计算机操作系统不信任的实体颁发的证书。这可能意味着服务器已经生成了自己的安全凭证,Chrome 无法依赖这些凭证获取身份信息,或者攻击者可能试图拦截您的通信。
您不应该继续,特别是如果您以前从未见过此站点的此警告。
代码
$URLListFile = "\url_list.txt"
$URLList = Get-Content $URLListFile -ErrorAction SilentlyContinue
$Result = @()
#$OutputReport = "<html><title>PROD Monitoring Report</title><body><h2>PROD Monitoring Report</h2><table border=1 cellpadding=0 cellspacing=0><tr>Description</tr><tr>Status Code</tr><tr>Status</tr><tr>Response Time</tr>";
$OutputReport += "<HTML><TITLE>PROD Report</TITLE><BODY><font color=""#99000""><H2> PROD Monitoring Report </H2></font><Table border=1 cellpadding=0 cellspacing=0><TR bgcolor=gray><TD><B>Description</B></TD><TD><B>Code</B></TD><TD><B>Status</B></TD><TD><B>ResponseLength</B></TD></TR>"
Foreach($Uri in $URLList)
{
$startTime = Get-Date
$req = [system.Net.WebRequest]::Create($Uri)
try
{
$res = $req.GetResponse()
}
catch [System.Net.WebException]
{
$res = $_.Exception.Response
}
$endTime = Get-Date
$OutputReport += "<tr><td>"+$Uri+"</td>";
#$OutputReport += "<tr><td>Template</td>";
$web_status = [int]$res.StatusCode
if ($web_status -ne 200)
{
$OutputReport += "<td>"+$web_status+"</td><td bgcolor=red>Failure</td>"
}
else
{
$OutputReport += "<td>"+$web_status+"</td><td>Success</td>"
}
$OutputReport += "<td>"+($endTime - $startTime).TotalSeconds+" seconds</td></tr>"
}
$OutputReport += "</table></body></html>";
$Outputreport | out-file C:\Users\phall\Desktop\Docs\report.html
#Invoke-Expression C:\Scripts\Test.htm
【问题讨论】:
-
您是否在这些服务器上使用自签名证书?
标签: powershell ssl powershell-3.0