I was googling for some information which was only available in a .msi archive format which I could not extract directly on ubuntu. Since I didnt have windows on the machine, I could not extract it there and just copy the files over to linux.

On ubuntu, installing WINE (and trying to extract with msiexec) didnt work -- wine kept whining about it not being an executable (on linux? *g*), the source being from an untrusted source, etc...

Next, I tried p7zip -- install it with

sudo apt-get install p7zip-full

Then, change directories, and type:

7z x filename.msi

While this extracts all the files, it will still not be easily viewable nor is it usable -- windows executable dlls, bitmaps, windows installer package, microsoft cabinet archive, some icons, and other useless cruft compressed in the folder. Other than manually digging out text files for the information, there was no easy option.

The data was locked inside the database (hint, extract the cabinet archive) in the .mbd (MS Access) format. Google threw some perl modules to convert a .mbd file to .txt. BUT there was a gnome mbd-reader tool which you can easily install with

sudo apt-get install mdbtools

sudo apt-get install mdbtools-gmdb

Then, click on Applications>Office>MDB Viewer.

In Ubuntu, mdbtools includes command line tools such as mdb-export and mdb-schema and to export data from the MS Access .mdb files, extract contents from each table from each .mdb file through the shell --for which one needs to determine table names before using:

mdbtools <filename.mdb> <table name> <output_filename.txt>

mdb-export filename.mdb tblfoo

The compressed archice included among other things, files with .ocx and .tlb extensions. More googling (yay!)

TLB, a Visual Basic OLE Type Library, is a binary file containing all the type information for using procedures or classes in DLLs.


o. mdb-tools and postgresql script