---
name: windows-iso-download
description: Download official Windows ISOs from Microsoft on a Linux server — navigating Microsoft's JS-generated download links, static CDN patterns, and third-party link aggregators like massgrave.dev.
version: 1.0.0
platforms: [linux]
metadata:
  hermes:
    tags: [windows, iso, download, microsoft, vm, bootable-media]
---

# Windows ISO Download (Linux)

Microsoft's official download page (`microsoft.com/software-download/windows11`) generates ISO links dynamically via JavaScript with time-limited tokens (24h expiry). Direct `curl`/`wget` extraction from the page source is not possible — the links are not embedded in the HTML. This skill covers the practical workarounds.

## Method 1: Microsoft Static CDN (Direct Download, Older Builds)

Microsoft publishes GA (General Availability) ISO builds to a static CDN that does NOT require authentication tokens:

```
https://software-static.download.prss.microsoft.com/dbazure/{UUID}/{build_string}_CLIENT_CONSUMER_x64FRE_{lang}.iso
```

These are the initial GA release builds, not the latest monthly refreshes. After installation, Windows Update brings the system fully current.

**Known working link (Windows 11 25H2, English x64, Sep 2025 GA):**
```
https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/26200.6584.250915-1905.25h2_ge_release_svc_refresh_CLIENT_CONSUMER_x64FRE_en-us.iso
```

**Download command:**
```bash
wget -O Win11.iso \
  --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
  --referer="https://www.microsoft.com/en-us/software-download/windows11" \
  "https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/26200.6584.250915-1905.25h2_ge_release_svc_refresh_CLIENT_CONSUMER_x64FRE_en-us.iso"
```

**Key points:**
- User-Agent MUST claim to be Windows to avoid 403
- Referer MUST be the Microsoft download page
- The `{lang}` code: `en-us` = English (US), `en-gb` = English (UK), `ar-sa` = Arabic, etc.
- Consumer ISO includes Home, Pro, Education editions

### Available Languages

The static CDN hosts ISOs for all 38 languages. Replace the language code in the URL:
- English (US): `en-us`
- English (UK): `en-gb`
- Spanish: `es-es`
- French: `fr-fr`
- German: `de-de`
- Japanese: `ja-jp`
- Chinese Simplified: `zh-cn`
- Chinese Traditional: `zh-tw`
- (Full list on massgrave.dev)

## Method 2: massgrave.dev (Latest Builds, Indirect)

[MAS (Microsoft Activation Scripts)](https://massgrave.dev/windows_11_links) maintains a list of verified ISO download links:

1. **Latest builds** (e.g., May 2026 monthly refresh) — linked via `zerofs.link` URL shortener. These require solving a Cloudflare Turnstile CAPTCHA before the real download URL is revealed. **Cannot be automated from a headless server.**
2. **GA builds** — linked to the same `software-static.download.prss.microsoft.com` CDN as Method 1, in a clearly labeled table by language.

**To find the latest static links:**
```bash
curl -sL -A "Mozilla/5.0" "https://massgrave.dev/windows_11_links" | \
  grep -oP 'software-static\.download\.prss\.microsoft\.com[^"\s<>]*en-us[^"\s<>]*\.iso'
```

## Method 3: Microsoft Q&A (Fresh Tokens, Manual)

Microsoft support staff on [learn.microsoft.com/answers](https://learn.microsoft.com/en-us/answers/) can generate fresh 24h download links on request. Search for recent questions tagged `windows-11` asking for ISO links. The links look like:
```
https://software.download.prss.microsoft.com/dbazure/Win11_25H2_English_x64.iso?t={token}&P1=...&P2=...
```
These are time-limited and expire after 24 hours.

## Pitfalls

- **`software.download` ≠ `software-static.download`:** The non-static domain (`software.download.prss.microsoft.com`) requires time-limited tokens (the `?t=` parameter) and returns HTTP 403 without one. Always prefer `software-static` when available.
- **Wrong User-Agent returns 403:** Microsoft's CDN checks the User-Agent header. Linux-based UAs get "unexpected URL format" errors. Always use a Windows UA string.
- **The download page's "Disk Image (ISO)" section only appears for non-Windows browsers:** If you're testing from a Windows machine, you'll see the Media Creation Tool instead. Use a Linux or macOS User-Agent to get the ISO dropdown.
- **zerofs.link requires a browser:** It uses Cloudflare Turnstile (CAPTCHA). Don't try to curl it — use Method 1 or 3 for programmatic access.
- **Latest ≠ latest:** The "latest" monthly refresh is only available via time-limited tokens (Method 3) or CAPTCHA-gated links (Method 2). The static CDN (Method 1) carries only GA releases. For most purposes (VM setup, bare-metal install), the GA build is fine — Windows Update handles the rest.
