Chapter1/1.6_Scripting/StatusCheck.ps1
$url = "https://google.com" $validStatusCode = 200 $logFile = "./StatusCheck.log" while ($true) { #ステータスコードを取得する $statusCode = try { (Invoke-WebRequest -Uri $url).StatusCode } catch { $_.Exception.GetBaseException().Response.StatusCode.Value__ } #ステータスコードが200かどうか確認する if ($statusCode -ne $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 #1分ごとに繰り返す $json | Out-File -LiteralPath $logFile -Append } # 60秒停止する Start-Sleep -Seconds 60 } |