Topics: WIM Library

WIM Library

The WIM Library is the central repository for all Windows images used in deployments. Each registered WIM file includes a SHA-256 hash that the deployment agent verifies before applying the image to a target machine.

Family (Client or Server)

The table has a Family column and a Family filter (All, Client, Windows Server), worked out from the image's Windows version label. The filter is kept in the address (?family=server) so a link opens the same view. Windows Server images are labelled by server release, for example Windows Server 2025; see Deploying Windows Server.

Uploading Images

On the Windows Images page, click Upload Custom WIM to add a WIM file directly. The upload process:

  1. Select a .wim file from your local machine
  2. The file is streamed directly to the server via HTTP POST (not through the Blazor SignalR connection, enabling multi-GB transfers)
  3. A progress bar shows upload status in real time
  4. The server computes the SHA-256 hash after upload completes
  5. The WIM is registered in the database with its name, size, hash, and detected Windows version

The maximum upload size for WIM files is 10 GB.

Tip: For most use cases, use the Create Windows Image wizard instead of uploading raw WIMs. The wizard creates optimized, debloated images from your ISOs.

Image Verification

Every WIM in the library has a stored SHA-256 hash. During deployment, the agent:

  1. Streams the WIM from the server (or relay)
  2. Computes the SHA-256 hash of the received data
  3. Compares against the expected hash
  4. Aborts with INTEGRITY_FAILED if there is a mismatch

This ensures bit-perfect image delivery even over unreliable networks.

Managing Images

Progress and status of uploads and customization jobs update on the page as they happen; there is no need to refresh it.

  • Edit - Click the row, or use the row's Actions menu, to open the edit dialog (rename, and read the full SHA-256 with a copy button). In-flight job rows open their progress detail the same way, so every row in the table opens something on click.
  • Delete - Removes the image from the database and deletes the .wim file from disk. Deletion is blocked if the image is:
    • Referenced by an active deployment recipe
    • Referenced by an active WIM customization job
    • Completed job references are automatically nulled on delete

Relay Sync

WIM images sync to relay sites automatically based on recipe assignments. Images are never assigned to relay groups themselves: when an active recipe is in a relay group, its image is included in the sync manifest of that group's relay sites (see Relay groups). Relays download images using:

  • HTTP Range headers for resumable downloads: an interrupted download continues from the byte it reached on the next sync
  • ETag-based conditional resume (the SHA-256 hash is the ETag): a resume sends If-Range with the ETag the partial file was started under, so if the image changed on Core in the meantime the relay receives the whole new image and starts over instead of splicing new bytes onto an old prefix. Every image is SHA-256 verified before it is registered, resumed or not

Deploying machines resume the same way: if the connection drops during the image download, the agent resumes from the byte it reached (up to 3 times) instead of starting the multi-GB download again, and still verifies the SHA-256 of the whole file.

Storage

WIM files are stored in the configured image storage path (typically {DataRootPath}/Images). The resolved path is visible in Settings > General > Organization > Data Storage.