Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting Media

setup-cm does not download licensed Microsoft media automatically. The operator must obtain each installer, verify its integrity, and place it in the configured cache or private vault before the Acquire stage runs. This page walks through every required item.

Media checklist

MediaSourcePublic URL?License required?
SQL Server 2022VLSC / Visual Studio Subscription / Evaluation CenterNo (evaluation available)Yes
MECM Current BranchVLSC / Visual Studio SubscriptionNoYes
Windows ADKMicrosoft Download CenterYesAccept EULA
Windows PE add-onMicrosoft Download CenterYesAccept EULA
ODBC Driver 18Microsoft Download CenterYesAccept EULA
VC++ Redistributable x64aka.msYesAccept EULA
VC++ Redistributable x86aka.msYesAccept EULA

Public downloads

These items can be downloaded directly without a subscription.

Windows ADK and Windows PE add-on

The example pins version 10.1.26100.2454 (Windows 11 24H2 ADK).

# ADK
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2289980" `
  -OutFile "adksetup.exe"

# Windows PE add-on
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2289981" `
  -OutFile "adkwinpesetup.exe"

Note: The fwlink URLs above are Microsoft’s stable download links. They redirect to the current ADK build. If Microsoft releases a newer ADK, the link may serve a different version than the example pins. Verify the product version after download and update lab.local.yaml if needed.

ODBC Driver 18 for SQL Server

Download from the Microsoft ODBC Driver 18 download page. The example pins 18.4.1.1 (x64 MSI).

Direct link pattern:

https://go.microsoft.com/fwlink/?linkid=2242886

Save as msodbcsql18-x64.msi.

VC++ Redistributables

Download both architectures from Microsoft’s evergreen links:

# x64
Invoke-WebRequest -Uri "https://aka.ms/vc14/vc_redist.x64.exe" `
  -OutFile "vc_redist.x64.exe"

# x86
Invoke-WebRequest -Uri "https://aka.ms/vc14/vc_redist.x86.exe" `
  -OutFile "vc_redist.x86.exe"

The example pins 14.44.35211.0. The minimum required by setup-cm is 14.34. The aka.ms links always serve the latest VC++ v14 build, so the version will advance over time. Record the actual version in your lab.local.yaml.

Subscription / VLSC downloads

These items require a Microsoft Volume License Service Center (VLSC) account, Visual Studio Subscription, or evaluation download.

SQL Server 2022

The example pins 16.0.1000.6 (SQL Server 2022 RTM). Save as sql-server.iso.

Important: The evaluation ISO is suitable for lab use. Do not use evaluation media for production.

MECM Current Branch

The example uses Current Branch 2509. Its signed SMSSETUP\BIN\X64\setup.exe reports native ProductVersion 5.00.9141.1002; record that value in sources.mecm.version and save the ISO as mecm-current-branch-2509.iso. A branch label such as 2509 is not a file version and fails configuration validation.

Important: MECM evaluation media is lab-appropriate. The productId: Eval setting in the example configuration matches evaluation media.

Verifying downloads

Every source entry in lab.local.yaml requires a SHA-256 checksum. Compute it after downloading.

Windows (PowerShell)

Get-FileHash -Path "C:\Downloads\sql-server.iso" -Algorithm SHA256

macOS / Linux

shasum -a 256 sql-server.iso

Record the 64-character hexadecimal string in the sha256 field. The Acquire stage will reject the file if the hash does not match exactly.

Placing media

You have two options for each installer:

Place the file directly in the configured cacheRoot with the filename matching cacheFile:

cacheRoot: C:\ProgramData\SetupCm\cache
sources:
  adk:
    cacheFile: adksetup.exe
    # ...

So the ADK installer goes to:

C:\ProgramData\SetupCm\cache\adksetup.exe

The Acquire stage finds the cached file, verifies its SHA-256, and skips the download.

Place licensed ISOs on a secure file share or vault that the lab server can reach:

sources:
  sqlServer:
    uri: \\LAB-FS01\Vault\SQLServer\sql-server.iso
    # or
    uri: https://installer-vault.internal/sql-server.iso
    # ...

The Acquire stage downloads from the URI to the local cache, then verifies integrity.

Security: Never commit actual installer files, product keys, or internal vault paths to Git. The lab.local.yaml file is ignored by Git for this reason.

License acceptance

Before the Acquire stage runs, every source must have licenseAccepted: true in lab.local.yaml. This is an explicit operator acknowledgement that you have accepted the applicable license terms.

sources:
  sqlServer:
    licenseAccepted: true   # You accept the SQL Server license terms
  mecm:
    licenseAccepted: true   # You accept the MECM license terms
  # ... repeat for all sources

Preflight validation (Test-SetupCmPreflight) will report any source where licenseAccepted is still false.

Complete acquisition checklist

Before running Invoke-SetupCm:

  • SQL Server 2022 ISO downloaded, SHA-256 recorded, placed in cache/vault
  • MECM Current Branch ISO downloaded, SHA-256 recorded, placed in cache/vault
  • ADK downloaded, SHA-256 recorded, placed in cache
  • Windows PE add-on downloaded, SHA-256 recorded, placed in cache
  • ODBC Driver 18 MSI downloaded, SHA-256 recorded, placed in cache
  • VC++ x64 downloaded, SHA-256 recorded, placed in cache
  • VC++ x86 downloaded, SHA-256 recorded, placed in cache
  • All licenseAccepted fields set to true in lab.local.yaml
  • All sha256 fields updated with actual computed hashes
  • Test-SetupCmPreflight returns Ready: True