> For the complete documentation index, see [llms.txt](https://www.osdeploy.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.osdeploy.com/guide/cmdlets/update-osdeploycoreesd.md).

# Update-OSDeployCoreESD

Download and verify the Windows Enterprise ESD files permitted by the host and ADK.

{% hint style="info" %}
`Update-OSDeployCoreESD` is the second stage run by `Update-OSDeployCore`, after `Update-OSDeployCoreCatalogOS`. Run it independently when only the Windows ESD source files need updating.

**TLDR:** Run `Update-OSDeployCoreESD` to download the latest Enterprise ESD files for the Windows release permitted by the host and installed ADK. Use `-Architecture` only when one architecture is needed.

```powershell
Update-OSDeployCoreESD
Update-OSDeployCoreESD -Architecture amd64
Update-OSDeployCoreESD -Architecture arm64
```

{% endhint %}

`Update-OSDeployCoreESD` downloads the current en-US Windows Enterprise ESD files from the Microsoft Content Delivery Network. It selects the newest recognized catalog for the Windows release permitted by the host build and installed ADK, across the module and Core cache. Catalog build `26200` maps to Windows 11 25H2; build `26300` maps to Windows 11 26H2.

A valid Recast Software license is required when the command is called directly. If no valid license is found, the command displays license guidance and returns. The immediate call from `Invoke-OSDeployHydration` is the only license-gate exception.

This command downloads and caches the source ESD files. It does not install Windows or import the ESD contents into OSDeploy Core.

<figure><img src="https://3996045416-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDKRxGiKLYjW1gana2O%2Fuploads%2FErtdyRuSeHgqfkSySdwB%2Fimage.png?alt=media&amp;token=2dff0f68-c40c-4e63-96cf-bbd1d32a99fa" alt=""><figcaption></figcaption></figure>

## Requirements

Run this command from an elevated PowerShell 7.6 or later session on Windows 11 25H2 build 26200 or Windows 11 26H2 build 26300. Install ADK `10.1.26100.2454` or `10.1.26100.9457`. PowerShell must be installed from the MSI package, and `curl.exe` must be available in `PATH`. Internet access is required for URL tests and uncached downloads.

{% hint style="warning" %}
The command stops before catalog selection when a Windows version, PowerShell, MSI installation, `curl.exe`, or administrator check fails. It also stops when no catalog XML exists or the newest catalog file name does not match the expected `<build>-win<version>-<release>.xml` format.
{% endhint %}

## Parameters

| Parameter       | Type             | Default     | Accepted values and behavior                                                                                                                                                                                                             |
| --------------- | ---------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-Force`        | `Switch`         | Not enabled | Bypasses current and older verified cache reuse and queues a fresh download. It does not bypass the Yes/No download prompt.                                                                                                              |
| `-Architecture` | `String`         | Automatic   | Use `amd64` or `arm64`. Omission uses host-based targets: AMD64 hosts consider x64 then ARM64; ARM64 hosts consider ARM64 only. `amd64` on an ARM64 host leaves no eligible target.                                                      |
| `-WhatIf`       | Common parameter | Not enabled | Suppresses operations gated by `ShouldProcess`, including cache-directory creation, deletion, download, retry, and failed-file cleanup. Initialization, catalog and cache reads, hashing, URL tests, and Yes/No prompts can still occur. |
| `-Confirm`      | Common parameter | Not enabled | Adds PowerShell confirmation at each `ShouldProcess` boundary. Independent `ShouldContinue` Yes/No prompts still appear.                                                                                                                 |

## Select an Architecture

The architectures offered by default depend on the OSDeploy PC architecture.

| OSDeploy PC | Default ESD selection |
| ----------- | --------------------- |
| AMD64       | x64 first, then ARM64 |
| ARM64       | ARM64 only            |

Download only the x64 ESD on an AMD64 OSDeploy PC:

```powershell
Update-OSDeployCoreESD -Architecture amd64
```

Download only the ARM64 ESD:

```powershell
Update-OSDeployCoreESD -Architecture arm64
```

When `-Architecture` is omitted, the command processes every architecture supported by the current OSDeploy PC. Each ESD is confirmed separately before downloading.

## Download the ESD Files

Run the command without parameters to use the default architecture selection:

```powershell
Update-OSDeployCoreESD
```

For each ESD that is not already cached, the command:

1. Reads the latest operating system catalog included with OSDeploy.
2. Selects the en-US Enterprise ESD for the requested architecture.
3. Tests the Microsoft download URL for availability.
4. Displays the file name, size, and destination.
5. Prompts for confirmation.
6. Downloads the file with resumable transfer support.
7. Verifies the downloaded file against the catalog SHA256 checksum.

Downloads are saved in the version-specific folder:

```
C:\ProgramData\OSDeployCore\OSDCloud\OS\<Windows release>\
```

The exact release folder is derived from the newest catalog file name, and the ESD file name can change when the module catalog is updated to a newer Windows build. Core path initialization occurs before catalog processing and can create directories or migrate legacy repository content and profiles.

{% hint style="warning" %}
Each ESD is several gigabytes. The confirmation prompt estimates a download time of 5 to 30 minutes, but the actual time depends on the internet connection.
{% endhint %}

## Use Cached Downloads

The command verifies an existing ESD before deciding whether another download is needed.

* If the current ESD exists and its SHA256 checksum matches, the file is returned without being downloaded again.
* If a differently named ESD from an older catalog exists in the current release folder and matches its own catalog checksum, the command offers a choice between returning that file and downloading the newer version. Older catalogs are cache lookup metadata, not fallback download sources.
* If an existing file does not match the expected checksum, the command offers to move it to the Recycle Bin and download it again.

Use `-Force` to download the selected ESD files again even when the current files are already cached and verified:

```powershell
Update-OSDeployCoreESD -Architecture amd64 -Force
```

## Preview the Operation

Use `-WhatIf` to prevent directory creation and downloads:

```powershell
Update-OSDeployCoreESD -Architecture amd64 -WhatIf
```

The command can still initialize Core paths, inspect and hash cached files, test download URLs, and display `ShouldContinue` prompts while processing `-WhatIf`. A verified current cache file, or an older verified file retained after declining the newer download, can still be returned. No ESD transfer starts unless both the Yes/No prompt and `ShouldProcess` approve it.

## Download Recovery

Downloads use `curl.exe` with resume support. When a transfer fails, produces no file, is incomplete, or fails SHA256 verification, the command makes up to two automatic retries after the initial attempt. URL reachability is tested for every pending entry before any per-file download confirmations are collected.

If all automatic attempts fail, the command displays the failure details and asks whether to retry again. Failed checksum files are moved to the Recycle Bin before a clean retry. If the final retry is declined, the failed file can also be moved to the Recycle Bin.

Use `-Verbose` to show catalog selection, cache checks, URL tests, architecture filtering, and download details:

```powershell
Update-OSDeployCoreESD -Architecture amd64 -Verbose
```

## Review the Results

The command returns one `System.IO.FileInfo` object for each ESD that is ready to use, whether it was downloaded during the current run or was already cached and verified.

```powershell
$WindowsESD = Update-OSDeployCoreESD -Architecture amd64
$WindowsESD | Select-Object Name, Length, DirectoryName
```

No object is returned for an architecture when its download is unavailable, declined, or unsuccessful.

## Import Windows into OSDeploy Core

After the ESD files are downloaded, run `Update-OSDeployCoreRE` to create the Windows media, WIM files, Windows RE content, and driver sources used by OSDeploy Core:

```powershell
Update-OSDeployCoreRE -Architecture amd64
```

## Related

* [Complete OSDeploy Core update](/guide/cmdlets/update-osdeploycore.md)
* [Update-OSDeployCoreESD command reference](/command-reference/osdeploy/update-osdeploycoreesd.md)
* [Update-OSDeployCoreRE command reference](/command-reference/osdeploy/update-osdeploycorere.md)
* [Insider: The Windows ESD Catalog](/osdeploy-insider/reference/windows-esd-catalogs.md)
* [System Requirements](/guide/requirements/windows-11-os.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.osdeploy.com/guide/cmdlets/update-osdeploycoreesd.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
