Windows extract files from installer

How to Extract Files from Windows 10 ISO or DVD (Install.wim)

There are situations where you need a specific Windows system file from the install.wim image present in a Windows 10 setup disk or ISO. In the case of missing system files, the DISM & SFC procedure will automatically restore them. Alternatively, you can restore missing Windows system files (of any version) from the WinBindex.

So, why do you need the install.wim extraction method?

In some circumstances, extracting from install.wim in Windows ISO/DVD is the only option possible. Let’s say you want to repair or restore the Windows Recovery Environment on a computer. For that, you’ll need the WinRE.wim image present inside the install.wim or install.esd in a Windows 10 DVD or ISO.

(For a piece of brief information about ESD & WIM formats, go to the end of this article.)

There are at least two ways to extract files from the Windows 10 Setup DVD or ISO. Though the title says “Windows 10”, the instructions below apply to Windows Vista through Windows 10.

Extract individual files from Windows 10 DVD or ISO (install.wim)

In this example, let’s see how to extract a file named WinRE.wim from the Windows 10 Setup disk or ISO.

Method 1: Using 7-Zip to extract files from Install.wim

  1. Download and install 7-Zip from http://7-zip.org/
  2. Insert your Windows 10 DVD and browse to the Sources folder inside the DVD. If you have a Windows 10 ISO, double-click the ISO to mount the ISO to a drive letter.

Note: You can see the list of indexes and the corresponding editions using DISM. This is explained in Method 2 of this article.

As a side note, I’ve found that the WinRE.wim (Windows Recovery Environment image) file size is precisely the same in every Windows 10 Edition. However, the best practice would be to get a copy only from the specific index folder in the install.wim.

The ISOs downloaded from Microsoft site contain multiple Windows images combined into a single .wim file. If you have a custom ISO or DVD (e.g., distributed by your organization) has a single Windows image (Pro, Home, Education Edition, etc.), the index number folders won’t exist.

Using the above method, you can extract any file from the install.wim or install.esd .

7-Zip supports the ESD format as well. That means you don’t have to convert the install.esd to install.wim to extract its contents.

Method 2: Using DISM to mount Install.wim and extract the contents

DISM (Deployment Image Servicing and Management tool) tool is to service online and offline Windows images. To mount the install.wim file and extract its contents, follow these steps:

Note: If you have install.esd instead of install.wim , you’ll need to convert the ESD to WIM format before you can mount it using DISM.

  1. Insert your Windows 10 DVD and browse to the Sources folder inside the DVD. If you have a Windows 10 ISO, double-click the ISO to mount the ISO to a drive letter.
  2. Open an elevated Command Prompt window.
  3. Find the list of indexes and the corresponding editions found in the install.wim , by running the following command:

… where G:\ is the drive letter of the mounted ISO or Windows Setup DVD.

In the case of ISOs downloaded from Microsoft, you’ll see more indexes (Meaning: Multiple windows images or different editions combined into the install.wim). For example, here’s the list of indexes found inside the Windows 10 ISO from Microsoft:
Now, let’s mount the image #6 (Windows 10 Pro) to a folder using the following commands:

The 2nd command-line takes a few minutes to complete. It extracts/maps the install.wim (the specified index #) to the mentioned folder so that you can access its contents using File Explorer.

If you skip the /ReadOnly parameter accidentally, the following error would pop-up:

You do not have permissions to mount and modify this image.
Verify that you have Read/Write permissions or mount the image using the /ReadOnly option. Note that you cannot commit changes to an image with read-only permissions.

When I ran the Unmount command above, the following error displayed in the console:

The directory could not be completely unmounted. This is usually due to applications that still have files open within the mount directory. Close these files and unmount again to complete the unmount process.

However, since the entire directory was already empty, all I had to do was delete the WinMount folder manually. I didn’t have to run the DISM unmount command-line again.

Gigabytes of data are written to or removed from the file system when you mount and unmount the Windows image. Unlike Method 1, each DISM command-line would take a few minutes to complete.

Using 7-Zip or any third-party archiver (as discussed in Method 1) is the fastest method to view and extract the contents of a Windows image file (*.wim).

Install.esd vs Install.wim

Some Windows 10 ISO have install.esd instead of install.wim . ESD is a highly compressed format whose file size comes around 80% compared to the WIM image.

But the ESD image format is read-only and thus has drawbacks. For instance, it can’t be deployed using a WDS server. So you need to convert the ESD file to a WIM file to service the image or to deploy it.

7-Zip can handle ESD as well as WIM. Whereas, DISM would throw the following error when you try to mount an ESD file ( install.esd ).

An attempt was made to load a program with an incorrect format.

So, if you plan to use DISM to view or extract from the image, you must first convert the ESD file into WIM format using DISM, nLite, or any other utility. This is discussed in the article How to Convert ESD to WIM Using DISM or NTLite in Windows 10.

How to extract MSI files from an EXE installer

Problem:

You need to extract an .msi file from an .exe installer.

Solution:

There are at least three ways of solving this problem, but none of them is universal. You might need to go through all of them to find the one that works for the EXE installer that you have.

CodeTwo strongly advises against extracting (and using) MSI files from the EXE installers of the CodeTwo software. Unless the product website allows such an operation (or unless you are instructed/allowed to do so by CodeTwo Support), use the .exe setup files.

The first method is based on the fact that most installers extract their .msi files to the temporary files folder during the installation process. To extract an MSI file from an EXE installer, you need to:

  1. Launch your .exe file.
  2. When you see the first prompt (e.g. a question about whether you want to continue installation, accept a license agreement, etc.), do not click anything in this window and do not close it.
  3. Open Windows Explorer, type %temp% in the address bar and press Enter.
  4. Sort the files in the folder by the modification date. The newest file on the list should be the .msi file you are looking for.
  5. Copy the MSI file to a safe location before you close the installer prompt window (see step 2). Be aware that if you close the installer window, the MSI file will be immediately deleted from the temporary files folder.

The second method uses a free third-party tool called 7-Zip to browse the content of the .exe installer file. Follow the steps below.

  1. Download 7-Zip from this page and install it.
  2. Right-click on the .exe file (from which you want to extract an .msi file) and from the shortcut menu choose 7-Zip >Open Archive.
  3. Do not extract any files yet. Instead, browse and look for the folder MSI within the contents. It might take some time to find this folder because it is not always located directly in the root directory (its location may vary depending on the installer).
  4. When you locate the MSI folder, you will notice that it most likely does not contain any .msi files, but a file or files with no extensions and rather cryptic names such as 132. Despite these misleading names, these are actually the MSI files you are looking for.
  5. Drag and drop these files to any desired folder or select them and extract them with 7-Zip. Close 7-Zip after that.
  6. Change the names of the extracted files so that they include the .msi extension.
  7. If there are two files, the larger one is the 64-bit installer, and the smaller one is the 32-bit version. Use the one you need.

The third method works with InstallShield based projects. To get the MSI file from your EXE installer, you need to:

  1. Log on to a computer where the software (the installer of which you would like to access) is not installed. This is because this method forces the uninstalling process to trigger extraction of the .msi file. If you already have this software installed, this method will remove it, which might not be desired.
  2. Run Windows Command Prompt (cmd) (in Windows 10: open the Start menu, type cmd and press Enter) and go to the folder where your EXE file is located.
  3. Execute the command below:

replace with the name of your .exe file and with the path to the folder where you want the .msi file to be extracted (for example C:\Folder ).

As described in this thread, the switches for the command above do the following:

  • /s /x — silently ( /s ) uninstalls ( /x ) the product from the system;
  • /b — defines the target path for the .msi file;
  • /v — passes desired arguments to the installer. In this case, the argument is /qn — it disables GUI and any prompts.

Universal Extractor

Note: Development on the ‘official’ version of Universal Extractor has stopped. It’s not exactly abandoned, but since I no longer run Windows it’s not something I have much of a need for these days. There have been a lot of unofficial forks and continuations released, and while I appreciate the effort and enthusiasm, most of those have been closed source updates that I wouldn’t recommend.

That said, I recently discovered a project calling itself Universal Extractor 2. I’m not affiliated with the project in any way, but it seems to be a nice continuation of the project in the original open source spirit as my own creation. I’ve not used it myself, but if you’re having trouble with the official version or not able to get it to extract newer formats and executables, I’d recommend giving Bioruebe’s version a try.

Introduction

Universal Extractor Feedback
If you have any questions about, or find any problems with, Universal Extractor, please post your comments to the UniExtract subforum on the MSFN message board. This has become the main point of discussion for this project.

Universal Extractor is a program designed to decompress and extract files from any type of archive or installer, such as ZIP or RAR files, self-extracting EXE files, application installers, etc. The full list of supported formats can be found in the table below. It’s able to support so many varied file formats by utilizing the many backend utilities listed in the credits at the bottom of the page.

Please note that Universal Extractor is not intended to be a general purpose archiving program. It cannot (and never will) create archives, and therefore cannot fully replace archivers such as 7-Zip or WinRAR. What it will do, however, is allow you to extract files from virtually any type of archive, regardless of source, file format, compression method, etc.

The original motivation behind this project was to create an easy, convenient way to extract files from various types of installation packages without the need to remember arcane command line switches or track down separate utilities to handle the unpacking. Over time, and with the encouragement of its many users and the fine folks over on the MSFN forum, it has evolved into a mature and very capable unarchiving utility that many, including myself, find indispensable.

Screenshots


Universal Extractor context menu


Universal Extractor file/destination GUI


Universal Extractor preferences

Download Current Version: 1.6.1, Released: 05/12/2010

UniExtract Installer (5.3 MB) — This is the recommended download. The installer will automatically install the application and optionally integrate with the Windows Explorer context menu. This package does not contain source code.

UniExtract Binary Archive (4.95 MB) — This archive contains the binaries. Download this if you want a portable version, or just prefer not to use the installer.

UniExtract Source Code (163.13 KB) — This archive only contains the source code, but it includes all support files as well (compiler scripts, installer, etc.). This is best to download (along with the binary archive) if you want to help further development of UniExtract.

ChangeLog, ToDo — UniExtract development details

Universal Extractor Download Archive — archived versions of all official binary and source code releases

Note: If you download Universal Extractor from one of the official links above, it is not infected with a virus. If your anti-virus software tells you otherwise, please see this forum post for details.

Language Files

As of version 1.4, Universal Extractor supports internationalization. If you’re interested in translating Universal Extractor into another language, please download the source archive and follow the instructions in English.ini. Please send me your completed translation and I’ll include it in the next version of Universal Extractor. Thanks to all of the contributors!

To use these language files, simply download and copy into the lang\ directory of your Universal Extractor installation. The new language will appear as an option the next time you run UniExtract.

Note: The (alt) language files are alternate translations that are not included with the official release. Sometimes I get multiple submissions for a single language, and I like to give everyone credit, but I generally stick with the first one that’s submitted out of fairness. Some of the alternate translations may be better than the included ones (or, they may not be), so feel free to give them a try. If you find that an alternate version is better than the included version, please let me know; I may switch them out for the next release.

Language File Native Name Contributer Added/Updated
Arabic* العربية Awadh A Al-Ghaamdi 10/22/2008
Arabic (alt) العربية Musab (KooTaa) 10/12/2008
Armenian* Հայերէն Hayeren Hrant Ohanyan 05/11/2010
Bulgarian* Български Кирил Кирилов (DumpeR) 10/12/2008
Chinese (Simplified) 简体中文 phCole 05/13/2010
Chinese (Traditional)* 繁体中文 Huang Junwei 11/21/2006
Croatian* Hrvatski Tomislav Glušac 10/22/2008
Croatian (alt1) Hrvatski Danijel Ivanieviæ 05/11/2010
Croatian (alt2) Hrvatski Ivica Hrvoj Ivanić 10/12/2008
Czech* Čeština Lubomír Hajda 05/11/2010
Dutch* Nederlands Robby Kooken 10/12/2008
English* English (American) Default/native language file 05/12/2010
Finnish* Suomi Teijo Sakkara 10/25/2008
French* Français jacklours 10/22/2008
German Deutsch Arno Krumpholz 05/13/2010
Greek* Ελληνικά Nick Mattheakis 10/22/2008
Hungarian* Magyar Simon László 03/25/2007
Italian* Italiano TJL73 / Roberto Boriotti 05/11/2010
Japanese* 日本語 Yachuko Nakai 11/28/2006
Japanese (alt) 日本語 Nardog 11/28/2006
Korean* 한국어/조선말 Sunsuk Kim 03/21/2007
Persian (Farsi)* فارسی Sajjad Mohammadi 05/11/2010
Polish* Język Polski ULTIMA PRIME 02/22/2007
Portuguese* Português José Gonçalves 03/01/2007
Portuguese (Brazilian)* Português ZimzuM / Marcio Barbosa 03/21/2007
Romanian* Limba Română Cristian Stefan 02/27/2007
Russian* Русский язык gora 05/11/2010
Russian (alt) Русский язык AVV_UA 10/12/2008
Russian (old) Русский язык Polarbond 02/22/2007
Serbian* Srpski Ivan Stambolić 05/11/2010
Slovak* Slovenčina Peter Žilák 02/22/2007
Spanish* Español Mario Ángel / Leonardo Mauro 02/22/2007
Spanish (alt) Español Arturo Vergara 05/13/2010
Swedish* Svenska Stefan Weber 05/11/2010
Taiwanese* 臺灣話 YoYo 10/12/2008
Thai* ภาษาไทย Pruthisith (Terry) Prateepavanich 11/28/2006
Turkish* Türkçe Onur AYDIN 03/01/2007
Ukrainian* украї́нська мо́ва, Warrior 10/28/2008
Valencian (Catalan)* Valencià (Català) Rafel Hidalgo i Rangel 03/25/2007
Vietnamese* Tiếng Việt Nguyen Nhat Quang 02/22/2007

* = Included in current release

Installation and Usage

To install UniExtract, download the installer and run it on your system. You will have a few options during installation:

Select Components — These options specify which program components are installed to disk. These options are only really useful if you need to reduce the installation size.

  • Documentation and licensing information — This includes all files in the docs\ subdirectory
  • Language files for internationalization support — This includes all files in the lang\ subdirectory
  • Support for ACE files — Binaries and/or libraries required for ACE archives
  • Support for KGB files — Binaries and/or libraries required for KGB archives
  • Support for Pea files — Binaries and/or libraries required for Pea archives
  • Support for StuffIt files — Binaries and/or libraries required for StuffIt (.sit) archives

Set Program Options — These options adjust the default Universal Extractor behavior. They can be changed after installation through the Preferences menu.

  • Default Language — specifies the language used by UniExtract
  • Debug File Location — specifies the directory to which UniExtract should write its debug file
  • Append missing file extensions — attempt to determine and append the correct extension for improperly named files using TrID
  • Maintain archive history — maintain a list of the ten most recent files that were extracted, as well as the destination directories
  • Remove duplicate files — attempt to detect and remove duplicate that may have been created during extraction
  • Remove temporary files — automatically remove temporary files that may be created during extraction
  • Warn before executing files — some .exe archives must actually be executed in order to perform the extraction. Since this can be a security risk (executing unknown/untrusted code is always a bad idea), UniExtract will display a warning before extracting these types of files.

Select Additional Tasks — These options specify additional actions that can be performed by the installer. They only affects installation of Universal Extractor, and cannot be modified later.

  • Enable Explorer context menu integration — allows you to right click on any archive and directly extract its files
    • Add UniExtract Files. to context menu — adds ability to specify destination directory
    • Add UniExtract Here to context menu — adds ability to quickly extract to current directory
    • Add UniExtract to Subdir to context menu — adds ability to quickly extract to subdirectory
    • Force association with with all supported archive formats — Forces UniExtract to associate itself with all supported file extensions; by default, it will only associate itself with native Windows formats (.exe, .msi, etc.) and other formats not currently associated with another program
  • Add Universal Extractor to your system path — allows you to run UniExtract (and any related binaries) from the command line
  • Create a SendTo icon — add a shortcut for Universal Extractor to your SendTo context menu
  • Create a desktop icon — add a shortcut for Universal Extractor to your desktop
  • Create a Quick Launch icon — add a shortcut for Universal Extractor to your Quick Launch bar

If you wish to automate installation (for custom or unattended installs), please run uniextractXX.exe /? to get a detailed description of available command-line options for the installer. All standard Inno Setup command line parameters apply, but also pay special attention to the Components, Tasks, and Custom Parameters detailed at the bottom of the help window.

For manual installation with the binary archive, simply extract the files to the destination folder you would like. By default, this puts UniExtract in «portable mode». This means that the globalprefs option is enabled (see changelog for details) and the history option is disabled (see Program Options above). The end result is UniExtract can be easily run from portable devices like USB flash drives without leaving any trace of use. Of course, it’ll also work just as well if copied to a real hard drive, and all preferences can be modified at any time by editing UniExtract.ini , or by running UniExtract.exe /prefs .

Once UniExtract is installed, usage is simple. The easiest way, if you used the installer and enabled context menu integration, is to right-click on any archive and select click one of the UniExtract options. UniExtract Here will extract files to the current directory, UniExtract to Subdir will extract files to a subdirectory named after the file, and UniExtract Files will prompt you for the destination directory.

If you did not enable context menu integration, you may run the Universal Extractor start menu shortcut, or double-click directly on UniExtract.exe. This will launch the UniExtract GUI. Enter (or use the file browser to select) the file you wish to extract and the destination directory, then click OK. It is also possible to drag-and-drop the file you wish to extract onto the icon or main application window to easily extract the dropped file.

UniExtract can also be run from the command line. Run UniExtract.exe /? for detailed command line parameters.

You can use Add/Remove Programs to uninstall UniExtract, or just delete the directory if you used the binary archive.

Technical Details

When a file is passed to UniExtract, it begins by scanning the file with TrID. If the file format matches one of the supported non-executable formats listed below, it immediately begins extraction from the archive. If it’s an executable file, it calls PEiD to analyze the file signature. If the signature indicates that it’s a supported format, then it attempts to begin extraction. If it is not a recognized signature, it will try running it through 7-Zip and UnZip as default cases. If 7-Zip or UnZip recognizes it, it will be extracted; otherwise, UniExtract displays an error message and exits.

Note: Filetype scanning with TrID is new as of v1.5. Older versions relied on the file extension to identify the filetype. This behavior is still used if the TrID scan cannot determine the filetype.

If the filetype is supported, UniExtract begins by checking for a valid destination directory and recording the directory size. If necessary, a new directory will be created (with a directory size of zero). UniExtract then spawns a shell and calls the supporting binary to begin extracting files from the selected archive to the destination directory. After completion, UniExtract checks the size and timestamp of the subdirectory to determine if extraction was successful; if the size or timestamp is greater than the initial values, UniExtract assumes success and exits. If extraction fails, UniExtract notifies the user and leaves a log file ( uniextract.log ) that (should) contain any error messages.

The uniextract.log file is created during the extraction process by the tee program. Essentially, all output from the running binary is redirected to tee, which in turn writes the output to the log file as well as echo it to the screen to give the user current progress. Upon successful execution this file is deleted, but if an error is detected it is left alone for the user to review. Note: As of v1.4, the location of uniextract.log can be changed to any user-specified directory.

Supported Formats

As of v1.5, UniExtract uses TrID to determine the filetype of any given file. If this detection fails, file extensions are used as a backup identifier. The table below is a reference of known-supported filetypes and common extensions; any supported archive types should work regardless of actual extension.

Archive Type Common File Extension(s)
7-zip archive .7z, .exe
ACE archive .ace, .exe
ARC archive .arc
ARJ archive .arj, .exe
ASpack compressed file .exe
BIN/CUE CD-ROM image .bin, .cue
bzip2 archive .bz2, .tbz2, .tar.bz2
CPIO compressed file .cpio
Debian package .deb
DiscJuggler CD-ROM image .cdi
Encoded files .b64, .uu, .uue, .xx,
.xxe, .yenc, .ntx
Gentee package .exe
gzip archive .gz, .tgz, .tar.gz
IMG floppy disk image .img
Inno Setup package .exe
Installer VISE package .exe
InstallShield Cabinet archive .cab, .1, .lib
InstallShield package .exe
ISO 9660 CD-ROM image .iso
KGB archive .kgb, kge, .exe
LZH compressed file .lzh, .lha
LZMA compressed file .lzma
LZO compressed file .lzo
LZW compressed file .Z, .tz, .tar.Z
LZX compressed file .lzx
MHTML file .mht
Microsoft Cabinet archive .cab, .exe, .imf
Microsoft Compiled Help file .chm
Microsoft compressed file . _
Microsoft LIT e-book .lit
Microsoft Windows Help file .hlp
HTC NBH ROM image .nbh
Nero CD-ROM images .nrg
NSIS package .exe
Oasis Document Format (ODF) document .odt, .odp, .odg, .ods
Office Open XML (OOXML) document .docx, .pptx, .xlsx
Outlook Express mail archive .dbx
PEA archive .pea
RAR archive .rar, .001, .exe
Reflexive Arcade package .exe
RoboForm package .exe
RPM package .rpm
SetupFactory package .exe
SIS (SymbianOS) packages .sis
StuffIt packages .sit
TAR archive .tar, .tbz2, .tgz, .txz, .tz,
.tar.bz2, .tar.gz, .tar.xz, .tar.Z
UHARC archive .uha
UPX compressed file .exe, .dll
Windows Imaging Format image .wim
Windows Installer merge module .msm
Windows Installer package .msi
Windows Installer patch .msp
Windows Update Standalone patch .msu
Wise Installer package .exe
XZ compressed file .xz, .txz, .tar.xz
ZIP archive .zip, .jar, .xpi, .wz, .exe
Zoo archive .zoo

Credits

Universal Extractor relies heavily on other programs, and would not be possible without the incredible generosity of the Free Software community. This is a list of all of the applications that are used by, or in the creation of, Universal Extractor:

Читайте также:  Onenote для windows 10 что это
Оцените статью