Files
desktop-edge-win/scripts/verify-streams.ps1
T
Clint Dovholuk 2f7e53f02c Allow registry overrides.conflict.free (#992)
* feat: bump dependencies (NuGet 8 -> 10, NLog 5 -> 6)

* feat: shared IPC data structures for policy state

* feat: registry policy reader with WMI watcher

* feat: monitor service policy enforcement, maintenance window, deferred install

* feat: UI policy state propagation, locks, deferred-install + sentinel UX fix

* feat: ADMX/ADML templates, admin guide, helper script, test runbook

* chore: build tooling, MSI SHA256, version bump, release notes

* more reworking around the adml/admx/md

* build and upload ADMX/ADML admin templates zip

* updates from looking at / testing GPO UI

* missed the prepare-for-tests ps1

* add boms to all ps1's just in case

* update test-run for more vebosity to allow humans to understand

* more updates to release notes

* Fix alignment on "from" label for maintenance window

* Remove arrow pointing to task bar

* Remove unused selection changed stub

* Ensure logical hour value is passed to maintenance window start/end

* Fix invalid URL error not showing - ensure maintenance start/end time errors return correctly

Change variable names

* reworking new-upcoming-releasenotes

* publish admin templates zip + sha256 sidecar to GitHub release, update release note

* add tatooing words

* reword clamping words

---------

Co-authored-by: Christopher Britton <christopher.l.britton@outlook.com>
2026-05-06 09:14:57 -04:00

42 lines
1.3 KiB
PowerShell

# Verifies that every browser_download_url in the release-streams JSON files is reachable.
# Skips versioned snapshot files (e.g. 2.9.5.0.json) and local dev files.
#
# Usage:
# .\verify-streams.ps1
# .\verify-streams.ps1 -StreamsDir .\release-streams
param(
[string]$StreamsDir = (Join-Path (Split-Path $PSScriptRoot -Parent) "release-streams")
)
$failed = $false
$files = Get-ChildItem (Join-Path $StreamsDir "*.json") | Where-Object {
$_.BaseName -notmatch '^\d' -and $_.BaseName -notlike 'local*'
}
foreach ($file in $files) {
$json = Get-Content $file.FullName -Raw | ConvertFrom-Json
foreach ($asset in $json.assets) {
$url = $asset.browser_download_url
if (-not $url) { continue }
Write-Host "$($file.Name): $url ... " -NoNewline
try {
$resp = Invoke-WebRequest -Uri $url -Method Head -UseBasicParsing -ErrorAction Stop
Write-Host "OK ($($resp.StatusCode))" -ForegroundColor Green
} catch {
$status = $_.Exception.Response.StatusCode.value__
Write-Host "FAIL ($status)" -ForegroundColor Red
$failed = $true
}
}
}
if ($failed) {
Write-Error "One or more download URLs could not be reached."
exit 1
}
Write-Host "All URLs OK." -ForegroundColor Green