I have been developing wimlib, which is WIM library similar to Microsoft's WIMGAPI. It comes with an ImageX tool similar to Microsoft's imagex.exe. Previously, wimlib has only been available on UNIX (mainly Linux). However, I have just released version 1.3.0, which comes with support for Windows.
wimlib is free and open source software (GPLv3+) and does not depend on Microsoft's wimgapi.dll, unlike some other tools that have been released. You can simply download my ZIP file, which is under 2 MB, and have an ImageX implementation ready to use on Windows Vista, 7, or 8.
wimlib for Windows comes with an ImageX implementation that supports the following subcommands, which are similar to but not always exactly the same as the subcommands to Microsoft's ImageX:
imagex append - Append a directory tree to a WIM file as a new image
imagex apply - Apply a WIM image to a directory or drive
imagex capture - Create a new WIM file from a directory
imagex delete - Delete an image from a WIM image
imagex dir - List files contained in a WIM image
imagex export - Export an image from one WIM file to another
imagex info - Display information about a WIM image, or change image names/descriptions
imagex join - Join the parts of a split WIM into the original standalone WIM
imagex optimize - Remove wasted space in a WIM
imagex split - Split a WIM into parts
- XPRESS and LZX compression are fully supported. The XPRESS compressor is better than Microsoft's, while the LZX compressor is almost as good as Microsoft's. Compression is done with multiple threads by default, so this should make it much faster to create WIM files.
- Capturing and restoring alternate data streams, security descriptors, reparse points, and file attributes is supported and on Windows is done by default. In principle you should be able to back up and restore an entire Windows operating system, although I have not yet tried this with the Windows version. Creating Windows PE images should work even if this doesn't, though.
- Mounting WIM images is supported on UNIX but not on Windows. This is also the only way to modify the files contained in a WIM image, so this means that you cannot add or remove files from a WIM image with the Windows version. (I realize this may be a significant limitation.)
- I think you have to run wimlib's imagex.exe as an Administrator because it requests permission to read files' SACLs (System Access Control List), which requires the SE_SECURITY_NAME privilege, which only the administrator account has. I may be able to remove this restriction if there is interest.
- The ZIP file containing the Windows binaries comes with the UNIX man pages for imagex in the 'doc' subdirectory, converted to plain text.
- wimlib's 'imagex.exe' currently cannot be used as a "drop-in" replacement for Microsoft's 'imagex.exe' because the command-line syntax is different and in some cases the supported options and subcommands differ. It should be apparent that they are quite similar, though.
WARNING: The Windows version of wimlib and imagex (and even the UNIX version, to some extent) is experimental. You use it at your own risk. If you find bugs or have any suggestions, please let me know, but I am NOT responsible if something goes wrong.
The download link for the Windows binaries, which should work on both 32 and 64-bit versions of Windows Vista, 7, and 8, is:
Note: The ZIP file also contains precompiled DLLs for libiconv, libxml2, and winpthreads. These are also free and open source libraries, and you can easily obtain their source code if desired.
Note: I have not released 64-bit binaries yet, although I can do this if there is interest.
The main SourceForge page for wimlib is http://sourceforge.net/projects/wimlib (go there if you want the source code).
In the (perhaps unlikely) event that you would like to write your own program that uses my API, the documentation for wimlib's API is at http://wimlib.sourceforge.net.
Edited by synchronicity, 21 March 2013 - 06:21 PM.