8

I have a Windows 10 InstallUSB and I'd like to know which version of Windows 10 it is. Searching online, I found this technique in many places, with the file [install.<esd||swm||wim>, boot.wim] varying:

dism /Get-WimInfo /WimFile:"F:\sources\install.esd" /Index:1
  • Without /Index, it lists each edition [image], eg, Home, Pro, etc, available in the file, but not the version
  • Index 1 always exists, with often higher indexes available as well

WinHelpOnline reports that sometimes DISM reports the wrong WIM/ESD version because the WIM header information is wrong.

I think this is happening with me since I just downloaded Windows 10 21H2, created an InstallUSB, and the above command returned Version : 10.0.19041 which is v2004 according to Wikipedia.

  • I notice this is the last version of the format YYMM, as it switched to YYHN ["H" for "half"] right after that with 20H2 (maybe the WIM version is stuck at 19041?)

Does anybody know any other way of extracting the version information, short of installing it?

1
  • 1
    The base filesystem images for Windows will always be an install.<esd||wim> (usually the former since ESD's compression ratio is 33% more efficient than WIM's, allowing for it to remain <4GB in size). The boot.wim is the WinPE boot image and .swm are only ever found on OEM recovery partitions (unsure why they're still used since there is no file size limit for recovery partitions - .swm's are split-WIMs at a certain size, often 4GB). Each index is a separate image, as ESDs/WIMs are smart compression file formats (I cover them here).
    – JW0914
    Jun 16 at 3:55

2 Answers 2

7

There is a Microsoft support article that addresses this issue:

Version and build number are reported incorrectly after you build a new Windows Image file

We are working to simplify this procedure for future releases so that the image metadata reports the correct version and build number.

Workaround

To determine whether the media is 20H2 media, mount the image, run dism /get-packages and check whether the 20H2 Enablement Package is installed. Specifically, look for a package named Package_for_KB4562830.

7

@w32h, very close - it's true for 20H2, 21H1, and 21H2:

Windows 10, versions 2004, 20H2, 21H1, and 21H2 share a common core operating system with an identical set of system files. Therefore, the new features in Windows 10, version 21H2 are included in the latest monthly quality update for Windows 10, version 2004, 20H2, and 21H1, but are in an inactive and dormant state. These new features will remain dormant until they are turned on through the “enablement package,” a small, quick-to-install “master switch” that activates the Windows 10, version 21H2 features.

@w32sh's reference hints at how to find the enablement packages. An example command is:

dism /Get-Packages /Image:"c:\path\to\mounted\wim"
  • That command acts on a mounted WIM. To mount a WIM, which takes several minutes:
    # Assumes an Install USB, or ISO, mounted at E: and the index of the edition [Home, Pro, etc.] must be chosen:
      Dism /Mount-Image /ImageFile:"E:\sources\install.wim" /MountDir:"C:\path\to\mounted\wim" /Index:1
    


If you have an ESD instead of a WIM (the Media Creation Tool downloads the former by default), this shows how to convert it, which also takes several minutes:

mkdir "C:\esd_to_wim"

# Can be repeated with other /SourceIndex values since it appends:
  dism /Export-Image /SourceImageFile:"E:\Sources\install.esd" /SourceIndex:1 /DestinationImageFile:"C:\esd_to_wim\install.wim" /Compress:Max /CheckIntegrity


A search turned up the other enablement packages (so far):

Here's an example of querying the mounted WIM in powershell for the enablement KB [21H2 in this case]:

PS> dism /Get-Packages /Image:"C:\path\to\mounted\wim" | Select-String KB

  Package Identity : Package_for_KB5003791~31bf3856ad364e35~amd64~~19041.1237.1.3
4
  • A sentence does not a paragraph make - questions/answers benefit from basic grammar and correct markdown (e.g. for weblinks). I'm unsure why this answer covers exporting an install.esd to a WIM, as the only reason to do so is if importing the install.esd into SIM, which requires a WIM - beyond that, there's no purpose for doing so.
    – JW0914
    Jun 16 at 13:00
  • (Cont'd...) Exporting an install.esd to a WIM will create more problems than it solves since the install.wim will be over the 4GB file size limit for FAT32 InstallUSBs (this is why an ESD is used for the install ISO, as the ESD compression ratio is 33% more efficient than WIM's even though they're both smart compression image formats - I cover ESD/WIM imaging here and install ISO's ESD/WIM sizes wiithin 6.2 at the bottom of this answer).
    – JW0914
    Jun 16 at 13:15
  • @JW0914 the answer covers exporting a .esd to a .wim as a temporary temporary file so that you can mount it (can't mount a .esd) so that you can extract the packages and find the enablement kb so you can see what version of Windows 10 it is (without installing it). It is a very likely case for folks to encounter, because MCT produces .esd by default. Thanks for your other improvements. Jun 16 at 19:06
  • 1
    I never knew ESDs couldn't be mounted, thanks for letting me know =]
    – JW0914
    Jun 16 at 22:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.