Install MSI with log from shell context menu

When authoring MSI packages, you frequently need the installation to be logged. Instead of repeatedly opening a console to type in msiexec /l* install.log /i foobar.msi, these shell context menu items may speed this process up a little. They do the same as ‘Install’ and ‘Uninstall’ but log everything (/l*) to PackageName.msi-install.log or PackageName.msi-uninstall.log, respectively.

Here are the registry entries:

Windows Registry Editor Version 5.00
@="&Logged Install"
@="msiexec.exe /l* \"%1-install.log\" /i \"%1\" %*"
@="L&ogged Uninstall"
@="msiexec.exe /l* \"%1-uninstall.log\" /x \"%1\" %*"

And in case you have not yet configured ‘Run as’ for MSI files, you may want to add these as well:

@="msiexec.exe /l* \"%1.log\" /i \"%1\" %*"

MSI shell context menu (Save as and rename to .reg)


4 Responses to “Install MSI with log from shell context menu”

  1. 1 nettellect February 4, 2008 at 3:05 pm

    very informative post. this will really help everyone who is trying to log issues on install and uninstall operations.
    thanks for sharing such a nice piece of information

  2. 2 Farrukh December 4, 2009 at 12:36 pm

    Awesomley informative and useful :).
    I work with MSI based installations and it is a very handy tip to work with.

    Thanks a lot Johannes

  3. 3 sintaur February 2, 2012 at 10:49 pm

    Msi.Packageshell\\LoggedInstall should be Msi.Package\\shell\\LoggedInstall.

    Also the commands have to be REG_EXPANDSZ, for example, use this:


    Then run regedit to put in the actual strings. If the reg entries are regular REG_SZ, the menu commands appear, but don’t work when you invoke them, at least not on Win2008.

  1. 1 More Context Menu Handlers for Everyday Use « JP’s Blog Trackback on August 5, 2009 at 5:21 pm
Comments are currently closed.


About me

Johannes Passing lives in Berlin, Germany and works as a Solutions Architect at Google Cloud.

While mostly focusing on Cloud-related stuff these days, Johannes still enjoys the occasional dose of Win32, COM, and NT kernel mode development.

He also is the author of cfix, a C/C++ unit testing framework for Win32 and NT kernel mode, Visual Assert, a Visual Studio Unit Testing-AddIn, and NTrace, a dynamic function boundary tracing toolkit for Windows NT/x86 kernel/user mode code.

Contact Johannes: jpassing (at) hotmail com

LinkedIn Profile
Xing Profile
Github Profile

%d bloggers like this: