我有一个应用程序Web URL列表,其中我试图通过Invoke-WebRequest
命令方法监视Web URL的HTTP状态代码。
我通过以下命令获得了列表对象:
Invoke-WebRequest https://example.com/123 | Get-Member
在这里,我使用statuscode和statusdescription字段将其包括在输出中:
Invoke-WebRequest https://example.com/123 |
Select-Object StatusCode, StatusDescription |
ft -a
现在,我希望在状态代码和状态描述之前在输出中包含URL的自定义名称,以便输出如下所示
URL StatusCode StatusDescription --- ---------- ----------------- abc web page 200 OK
答案 0 :(得分:0)
如果您不需要将数据存储在变量中,只需打印就可以了
$URLsources = "http://fooo/fooURL1:800","http://fooo/fooURL2:800","http://fooo/fooURL2:800"
#table definition
$tabName = "Output table"
#Create Table object
$table = New-Object system.Data.DataTable “$tabName”
#columns definition
$col1URL = New-Object system.Data.DataColumn URL,([string])
$col2Status = New-Object system.Data.DataColumn Status,([string])
$col3Desc = New-Object system.Data.DataColumn Desc,([string])
#add columns
$table.Columns.Add($col1URL)
$table.Columns.Add($col2Status)
$table.Columns.Add($col3Desc)
foreach($url in $URLsources){
$result = Invoke-WebRequest $url
#preparation of the row
$row = $table.NewRow()
$row.URL= $url
$row.Status= $result.StatusCode
$row.Desc= $result.StatusDescription
#add row to the table
$table.Rows.Add($row)
}
#print out the table
$table | format-table -AutoSize
答案 1 :(得分:0)
您可以将所有内容添加到您的输出中:
Invoke-WebRequest www.google.com | Select-Object -Property @{n="URL";e={'Any Name'}},StatusCode, StatusDescription
如果您想要在输出中检查的真实网址,可以这样做:
Invoke-WebRequest www.google.com | Select-Object -Property @{n="URL";e={$_.BaseResponse.ResponseUri.Host}},StatusCode, StatusDescription