Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Is there such a utility or capability an MSI? Perhaps msiexec?

rpm -ql provides the list of all the files installed by a given package. I'd like to get the same info from a Windows system.

share|improve this question
    
Why do you really need the list of files installed by an MSI package? What do you want to achieve? –  Alexey Ivanov May 18 '12 at 6:35
    
I want to understand all files completely that the MSI package deposited onto my system when it was initially installed. –  Joe Baltimore May 22 '12 at 0:34
    
To examine the files MSI contains, perform administrative install. If you want to know, what files are installed and where they're installed, then you have to enumerate the components of the package, check whether a component is installed, and enumerate the files and the registry keys/values in a component. I'm not sure there are tools which do what you want. –  Alexey Ivanov May 22 '12 at 7:02
    
MSI package is an open book that's why IT departments love them. It allows examining its content easily, and additionally it allows for customization to meet company needs. –  Alexey Ivanov May 22 '12 at 7:06
    
@Alexey, I agree that MSI is a book, but is is not an open book. ;) I find myself frequently looking for utilities, or writing my own to better explore and/or work with its contents. With rpm, one simply has to run "rpm ...." to discover everything about a package. I am going to write some basic MSI query tools very soon as a result of the discussions here. –  Joe Baltimore May 23 '12 at 13:51

4 Answers 4

msiexec can do that in admin mode.

msiexec /a something.msi TARGETDIR="c:\windows\temp" /qb

you may need some other switches, though.

share|improve this answer
    
msiexec.exe /a - msiexec help says that installs the product on a network share. That's not what I am looking to do. –  Joe Baltimore May 11 '12 at 21:40
    
yes, the tool is for installing, but you can extract the files without installing with the right switches. i found the right switches through google :-) but if you want to be really safe, do it in a disposable vm. do it on a very small and harmless msi that even if installed it will not hurt you. there are some other msi extraction tools on the net but i cannot recommend any because i have not used them and anything unknown could cause problems presumably. this is the official MS tool. –  johnshen64 May 11 '12 at 21:41
    
I apologize for the lack of detail in my question. I just want a list of the files and their location on disk (full paths) after the msi package has been installed. I need to query the system on which the msi was installed for this list. –  Joe Baltimore May 12 '12 at 16:20
    
Sorry, I do not know if that file list in the original msi database is always kept properly and in a fixed place, other than by examining the original msi file. The uninstaller script, if there is one, should have that but I don't know how to extract that. –  johnshen64 May 13 '12 at 13:13
    
MSI does not provide such kind of functionality. It is possible to change the location of files during installation (by passing properties on the command line for example) so the paths can be different on each machine. –  Alexey Ivanov May 18 '12 at 6:34

lessmsi

This is a utility with a GUI & CLI that can be used to view and extract the contents of an MSI file.

I just tried it out, works great.

share|improve this answer

The Windows SDK contains a graphical utility called Orca for viewing and editing .msi databases. At a minimum, select Windows Native Code Development => Tools in the SDK installer, then install Orca from %ProgramFiles%\Microsoft SDKs\Windows\vX.Y\Bin\Orca.msi. When viewing a database in Orca, the File table contains a row for each file that will be installed.

Windows Installer XML (WiX) contains a tool called Dark that will decompile an .msi database to an XML file:

dark.exe Installer.msi

This will create an Installer.wxs file in the current directory. The <File /> elements correspond to rows in the File table.

share|improve this answer

No, Windows Installer can't do this. There are no options which will tell you which files are installed from a certain package.

As suggested by John, you can look at all the files this package contains. Admin image would have folder structure similar to installed one with default options.


If you really want to get the list of all the files installed by a package, I think you can do it:

  1. Enumerate all the components in the package,
  2. Check with the system if the component is installed,
  3. Enumerate the files in components.

I have never heard of tool that can do this.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.