Figuring out Management Pack Dependencies

I hope none of you ever have to do this but it does come up occasionally and it’s good to know how to do this just in case….

Sometimes when you go to remove a management pack in the console you will discover that you can’t because there are some other management packs that depend on it.  You’ll see an error message like this:

image

You can look up which management packs depend on that management pack by opening the Properties dialog for that management pack:

image

If you really don’t care about what is in those management packs you can just delete them but chances are there are things in there that you care about but there are also potentially a few things in there which have a dependency on the MP you are trying to delete.  It would be really nice if we had a button right here that you could click on that said “Show me all the templates, notification templates, queues, groups, etc. in this MP that depend on the MP I am trying to delete”.    First of all that is way too long of a name for a button! Smile  It’s also not something that is easy to figure out in the database in some cases. 

It’s actually not too bad to figure it out with a little exploring in the Service Manager database if you know what you are doing though.

First, start by finding the GUID of the MP that you are trying to delete using a query like this:

SELECT MPName, ManagementPackID FROM ManagementPack WHERE MPName like ‘%<something…>%’

image

Now take the GUID of the MP that you are trying to delete and run a query like this:

SELECT ManagementPackIdReffedBy FROM ManagementPackReferences WHERE ManagementPackIdSource = ‘<the GUID you got from the first query>’

image

Then for each of the GUIDs that you get back run this query:

SELECT CONVERT (XML, MPXML) FROM ManagementPack WHERE ManagementPackId = ‘<the GUID from the previous query>’

image

Then click the hyperlink that results:

image

Then you can look for the alias that is used to reference the management pack you are trying to delete:

image

Then look for the alias throughout the management pack using CTRL + F (find).  Search for the Alias + ! like this:

image

You’ll find cases like this one:

image

Now search for the ID until you find the DisplayString element like this:

image

image

Now you know to look for ‘Company Web Application event workflow’ and you can delete that item from the UI so there is no longer a dependency between the MPs!