$location = @('B0', 'CVF', 'OOV', 'openlayers', 'TRA', 'VM', 'WH1', 'rest') $baseUrl = 'https://geocloudtest.vd.dk/' $logFile = 'C:\Temp\curl-test.log' $failures = @() function Log-Message { param([string]$Message) $timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' $line = "$timestamp $Message" Write-Output $line Add-Content -Path $logFile -Value $line } if (-not (Test-Path (Split-Path $logFile -Parent))) { New-Item -ItemType Directory -Path (Split-Path $logFile -Parent) -Force | Out-Null } Log-Message 'Start' foreach ($i in $location) { $url = "$baseUrl$i" Log-Message "Trying $url" $res = & curl.exe -sS -o NUL -w '%{http_code}' -- $url Log-Message "HTTP status code: $res for $url" if ($res -ne '200' -and $res -ne '401' -and $res -ne '403') { $failures += "$i -> $res" } } if ($failures.Count -gt 0) { Log-Message "Summary: $($failures.Count) non-200/401/403 status code(s) found" foreach ($item in $failures) { Log-Message "Failure: $item" } } else { Log-Message 'Summary: all checks returned HTTP 200, 401, or 403' } Log-Message 'Done'