
前提
Powershellでテキストファイルから100以上のURLを読み込み、
それぞれにリクエストして、1度リダイレクトされHTTPステータスコード301を返すことを確認しようとしています。
実現したいこと
とりあえずInvoke-WebRequestで以下の2つのリダイレクトするページにリクエストを送り、
HTTPステータスコード301を取得したいです。
https://jurassic-design.com/redirect-sample-page/
https://impreatesoft.jp/sample/sample2.html
お手数ですが、ご教示の程宜しくお願いします。
発生している問題・出力されるログ
HTTPステータスコード200が返ってきてしまいます。
{"Date":"2022年12月15日 23:47:54","Url":"https://impreatesoft.jp/sample/sample2.html","StatusCode":200} {"Date":"2022年12月16日 0:42:34","Url":"https://jurassic-design.com/redirect-sample-page/","StatusCode":200}
該当のソースコード
$validStatusCode = 301 $logFile = "./RedirectCheck.log" $max = 0 $urlArray = Get-Content "C:\git\ps\redirect.txt" #URL確認用 # foreach ($str in $urlArray) { # Write-Host $str # } foreach ($url in $urlArray) { #レスポンスを取得する $response = try { Invoke-WebRequest -Uri $url -MaximumRedirection $max } catch { $_.Exception.GetBaseException().Response.StatusCode.Value__ } $statusCode = $response.StatusCode $header = $response.Headers Write-Host $response Write-Host $header Write-Host $statusCode #ステータスコードが200になる if ($statusCode -eq $validStatusCode) { #ログファイルがあるかを確認する if (-not(Test-Path $logFile)) { #ログファイルを作る New-Item -Path $logFile } #ファイルは後からコマンドから読みやすいようにJSONとする $json = [ordered]@{ Date = (Get-Date).ToString("F") Url = $url StatusCode = $statusCode } | ConvertTo-Json -Compress } }
バージョン
PSVersion:5.1.22000.1335
回答2件
あなたの回答
tips
プレビュー