当响应代码不等于200

时间:2019-03-26 13:51:42

标签: powershell powershell-v5.0

我正在尝试编写一个脚本,该脚本循环通过其中包含一堆链接的CSV文件。然后,我想用Invoke-WebRequest检查页面是否可访问。如果HTTP响应代码为“ 200”,则此方法工作正常。但是我也希望脚本在它有点像4xx,3xx,5xx等时写出响应代码。到目前为止,响应代码变量只是空的。

问题在于,当“ Invoke-WebRequest”返回的不是200(也就是脚本的要点)时,它会生成错误,而不是使用HTTP响应代码为我提供干净的输出。

到目前为止,我的脚本是

$Links = Import-Csv -Path 'Path\to\file.csv' -Delimiter ";"

$user = Get-Credential

function Check-Link{
        $name_de = $Link.title_de
        $link_de = $Link.url_de

        Write-Host $link_de
        $HTTP_Response = (Invoke-WebRequest $Link.url_de -Credential $user -Method Head).StatusCode  

        if($HTTP_Response -ne 200){
            Write-Host "The page $name_de is not reachable! Response Code: $HTTP_Response"
        }
        else{
            Write-Host "The page $name_de is reachable!"
        }

}

$DeadLinks

foreach($Link in $Links){
    Check-Link
    Start-Sleep 10
}

现在,当响应码不等于200时,输出ist:

www.example.com
the page example.com is not reachable! Response Code: 

预期输出为:

www.example.com
the page example.com is not reachable! Response Code: 401

0 个答案:

没有答案