- Notifications
You must be signed in to change notification settings - Fork2
Extract the windows major and minor build numbers from an ISO file, and automatically sort the iso files.
p0dalirius/SortWindowsISOs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Extract the windows major and minor build numbers from an ISO file, and automatically sort the iso files.
- Parse multiple ISO files from a directory.
- Detect the Windows build number and OS language.
- Sort and rename the ISO files in folders by OS major and minor builds.
Automatically sort and rename the isos from a directory by major and minor build numbers.
./SortWindowsISOs.py --iso-dir ./isos/ --archive-dir ./archive/
Only get the major and minor build numbers of an ISO.
./SortWindowsISOs.py --iso ./isos/Win10_21H1_x64_English.iso
$ ./SortWindowsISOs.py -husage: SortWindowsISOs.py [-h] (-i ISO | -d ISO_DIR) [-a ARCHIVE_DIR] [-v]Extract Windows Build number from ISO files. v1.1optional arguments: -h, --help show this help message and exit -i ISO, --iso ISO Path to iso file. -d ISO_DIR, --iso-dir ISO_DIR Directory containing multiple ISOs to parse. -a ARCHIVE_DIR, --archive-dir ARCHIVE_DIR Archive dir. (default: False) -v, --verbose Verbose mode. (default: False)
In order to extract the Windows version from an ISO, we first need to mount the ISO file and open its content. In the ISO, there is a./sources/
folder containing aWindows imaging (WIM) image
in./sources/boot.wim
. When we uncompress this archive, we get a lot of files, but one file at the root of the archive stands out:'[1].xml'
.
boot$ ls -lhatotal 52Kdrwxrwxr-x 5 podalirius podalirius 4,0K janv. 18 00:17 .drwxrwxr-x 4 podalirius podalirius 4,0K janv. 18 00:17 ..drwx------ 8 podalirius podalirius 4,0K mars 19 2019 1-rw-rw-r-- 1 podalirius podalirius 3,9K janv. 18 00:16 '[1].xml'drwx------ 8 podalirius podalirius 4,0K mars 19 2019 2drwx------ 2 podalirius podalirius 32K janv. 18 00:16 '[DELETED]'
This file is a XML file containing information about the images contained inside the./sources/install.wim
file. It contains all the information we need to know which major or minor build this ISO file is. Here is an extract of the'[1].xml'
file:
<WIM> <TOTALBYTES>4461218778</TOTALBYTES> <IMAGEINDEX="1"> ... <WINDOWS> <ARCH>9</ARCH> <PRODUCTNAME>Microsoft® Windows® Operating System</PRODUCTNAME> <EDITIONID>ServerStandardEval</EDITIONID> <INSTALLATIONTYPE>Server Core</INSTALLATIONTYPE> <SERVICINGDATA> <GDRDUREVISION>0</GDRDUREVISION> <PKEYCONFIGVERSION>10.0.17763.719;2016-01-01T00:00:00Z</PKEYCONFIGVERSION> <IMAGESTATE>IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE</IMAGESTATE> </SERVICINGDATA> <PRODUCTTYPE>ServerNT</PRODUCTTYPE> <PRODUCTSUITE>Enterprise</PRODUCTSUITE> <LANGUAGES> <LANGUAGE>en-US</LANGUAGE> <DEFAULT>en-US</DEFAULT> </LANGUAGES> <VERSION> <MAJOR>10</MAJOR> <MINOR>0</MINOR> <BUILD>17763</BUILD> <SPBUILD>737</SPBUILD> <SPLEVEL>0</SPLEVEL> <BRANCH>rs5_release</BRANCH> </VERSION> <SYSTEMROOT>WINDOWS</SYSTEMROOT> </WINDOWS> <NAME>Windows Server 2019 SERVERSTANDARDCORE</NAME> <DESCRIPTION>Windows Server 2019 SERVERSTANDARDCORE</DESCRIPTION> <FLAGS>ServerStandardEvalCore</FLAGS> <DISPLAYNAME>Windows Server 2019 Standard Evaluation</DISPLAYNAME> <DISPLAYDESCRIPTION>(Recommended) This option omits most of the Windows graphical environment. Manage with a command prompt and PowerShell, or remotely with Windows Admin Center or other tools.</DISPLAYDESCRIPTION> </IMAGE> ...</WIM>
Pull requests are welcome. Feel free to open an issue if you want to add other features.
About
Extract the windows major and minor build numbers from an ISO file, and automatically sort the iso files.