返回powershell中大文件的url和状态代码

返回powershell中大文件的url和状态代码,powershell,csv,https,status,Powershell,Csv,Https,Status,我修改了一个大文件,只提供了希望在powershell中运行的URL,以检查状态代码并返回它们。我是powershell的新手,因此我的代码有一些问题。该文件也可能有重复的URL 当我只插入一个url时,我就可以工作了。我对每个物体都试过一些不同的方法,但我觉得我已经很接近了 $urlArray = Import-Csv -Path "Scripts\test.csv" | Select -ExpandProperty urls Function Get-WebStatus($url){

我修改了一个大文件,只提供了希望在powershell中运行的URL,以检查状态代码并返回它们。我是powershell的新手,因此我的代码有一些问题。该文件也可能有重复的URL

当我只插入一个url时,我就可以工作了。我对每个物体都试过一些不同的方法,但我觉得我已经很接近了

$urlArray = Import-Csv -Path "Scripts\test.csv" | Select -ExpandProperty urls


Function Get-WebStatus($url){

foreach ($url in $urlArray) {
    # First we create the request.
    $HTTP_Request = [System.Net.WebRequest]::Create($url)

    # We then get the HTTP code as an integer.
    $HTTP_Status = [int]$HTTP_Response.StatusCode

    If ($HTTP_Status -eq 200) {
        Write-Host "Site is Ok!"
    } Else {
        Write-Host $url + $HTTP_Request
    }
}
}
我只需要一个不工作的网站列表。最好的情况是将其保存到自己的txt文件中

不起作用示例: google.com 404应该可以:

Add-Type -AssemblyName System.Web
Add-Type -AssemblyName System.Web.Extensions

$urlArray = Import-Csv -Path "Scripts\test.csv" | Select -ExpandProperty urls

function Get-WebStatus {

    param( 
        $urlArray 
    )

    foreach ($url in $urlArray) {

        try {
            $request     = Invoke-WebRequest -Uri $url -Method GET
            $statusCode  = $request.StatusCode
        }
        catch {
            $statusCode  = $_.Exception.Response.StatusCode.value__
        }

        "$statusCode returned from $url"

    }
}

Get-WebStatus -urlArray $urlArray
这应该起作用:

Add-Type -AssemblyName System.Web
Add-Type -AssemblyName System.Web.Extensions

$urlArray = Import-Csv -Path "Scripts\test.csv" | Select -ExpandProperty urls

function Get-WebStatus {

    param( 
        $urlArray 
    )

    foreach ($url in $urlArray) {

        try {
            $request     = Invoke-WebRequest -Uri $url -Method GET
            $statusCode  = $request.StatusCode
        }
        catch {
            $statusCode  = $_.Exception.Response.StatusCode.value__
        }

        "$statusCode returned from $url"

    }
}

Get-WebStatus -urlArray $urlArray

这是我使用的函数

function Get-UrlResponse ([string] $Url)
{
    try
    {
        $TotalMilliseconds = $(Measure-Command {
            $reply = Invoke-WebRequest -Uri $Url -UseBasicParsing -DisableKeepAlive -Method Head
            $statuscode = $reply.StatusCode
        }).TotalMilliseconds
    }
    catch [Net.WebException]
    {
        $statuscode = [int]$_.Exception.Response.StatusCode
    }

    [pscustomobject]@{
        URL = $url
        StatusCode = $statuscode
        TotalMilliseconds = $TotalMilliseconds
        Date = Get-Date -f yyyyMMdd-HHmmss
    }
}

$urlArray = Import-Csv -Path "Scripts\test.csv" | Select -ExpandProperty urls

foreach ($url in $urlArray) {
    Get-UrlResponse $url
}

这是我使用的函数

function Get-UrlResponse ([string] $Url)
{
    try
    {
        $TotalMilliseconds = $(Measure-Command {
            $reply = Invoke-WebRequest -Uri $Url -UseBasicParsing -DisableKeepAlive -Method Head
            $statuscode = $reply.StatusCode
        }).TotalMilliseconds
    }
    catch [Net.WebException]
    {
        $statuscode = [int]$_.Exception.Response.StatusCode
    }

    [pscustomobject]@{
        URL = $url
        StatusCode = $statuscode
        TotalMilliseconds = $TotalMilliseconds
        Date = Get-Date -f yyyyMMdd-HHmmss
    }
}

$urlArray = Import-Csv -Path "Scripts\test.csv" | Select -ExpandProperty urls

foreach ($url in $urlArray) {
    Get-UrlResponse $url
}

您是否希望得到与此类似的结果?差不多吧。我找到了那个线程,但在拉入我的csv文件时遇到了问题。我不断收到错误。相关:所有200多个代码都正常,以及300多个重拨。。。最好检查400+代码或500+代码,您是否希望得到与此类似的结果?差不多吧。我找到了那个线程,但在拉入我的csv文件时遇到了问题。我不断收到错误。相关:所有200多个代码都正常,以及300多个重拨。。。最好检查400+码或500+码。这很有效,谢谢。我最大的问题是csv,它现在工作得很完美!这很有效,谢谢你。我最大的问题是csv,它现在工作得很完美!