Anyone happen to have any scripts to extract information from an MSI or MST?

I am definitely not a programmer/coder type. I just use simple VBscript, Winbatch and/or Wisescript for most of the MSI custom actions I need, which is usually enough. However, I currently have a need for something more advanced that can extract and parse MSI/MST table data (such as shortcut names/locations and application name/version) and then pass this data as parameters to another script --or, alternatively-- pipe it into a text file, which can be parsed.

Any donated code, or ideas/leads for further research would be greatly appreciated, thanks.
0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


I always had this one as a reference for just in case but I have never had to code anything like this.

Export File List to Excel From MSI Using VBScript
Answered 05/05/2006 by: kkaminsk
Ninth Degree Black Belt

Please log in to comment
Thanks, kkaminsk --this is pretty close to what I'm looking for. I'll definitely give it a try!
Answered 05/05/2006 by: norexx
Orange Belt

Please log in to comment

The script your referenced definitely worked, but unfortunately just exports the entire contents of whatever table you specify, including column headers. What I'm looking for is something that allows a lot more precision, specifically the ability to export just the data for a specific column from a table. Also having some ability to parse the data would be helpful too.

For example, I want to know the following:
1. How many shortcuts are in an MSI's shortcut table?
2. What are the long filenames for these shortcuts? ("Name" column value --minus the "SHORTC~1|" part)
3. Where are they being delivered? (what "Directory_" column value resolves to)

Perhaps there is no simple canned vbscript solution for this --I've searched and have yet to find one.
Answered 05/09/2006 by: norexx
Orange Belt

Please log in to comment
Answer this question or Comment on this question for clarity