MSMQ in Server Manager - "Now you see me, now you don't"

Here's an oddity that one of my Japanese colleagues spotted.

If you have installed MSMQ in Windows 2008 then you can open up Server Manager and see Message Queuing under Features:

Next you add the Application Server role by installing something like the "Application Server Foundation" (which is selected by default).

As it states, you will need to restart.

Now if you open Application Server under the Roles branch then Message Queuing displays there but no longer under Features.

But if you instead open up the Features branch BEFORE the Roles branch then you will get Message Queuing displayed under Features again.

Confused? You should be.

If you are producing any documentation that relies on the location of the Message Queuing branch then you may need to go back and add some footnotes.

[[Thanks to Takuya Hirai for doing the research]]

[[Updated February 25th, 2010]] 

The cause of the difference is down to which branch in Server Manager loads MQSNAP.DLL first. As the name implies, this code is for displaying MSMQ information in the MMC snap-in. Looking in the registry of a machine with MSMQ installed, the GUID of the MSMQ snap-in {74e5637a-b98c-11d1-9b9b-00e02c064c39} is associated with

  • Features
    • under HKLM\SOFTWARE\Microsoft\MMC\NodeTypes\{1E5F3C57-CA68-4194-AE4B-45B4EA171E37}\Extensions\NameSpace, and
  • Application Server
    • under HKLM\SOFTWARE\Microsoft\MMC\NodeTypes\{301B82BA-7AC3-4f32-B77F-BD8EF3D44934}\Extensions\NameSpace

MQSNAP.DLL is loaded by whichever branch is opened first, Features or Application Server. The snap-in can only be loaded once so will not appear for the branch opened second.