Creating Service Manager Lists with the Service Manager List Maker tool

Lists in Service Manager are those drop-down lists which you see on forms. For example, the Incident Category list which you'll see when you open an Incident. It's pretty easy to go and edit existing lists from the Service Manager console, from the Library section – this allows you to add to, or alter those lists which come out-of-the-box.

When you want to go ahead and create your own list, things get a little tricky. The Service Manager Authoring tool allow you to create a list, but you'll only ever to be able use it on stuff in that Management Pack.

For example, I open up the Authoring Tool and extend the Incident Class with a new List called "Locations". This will allow me to have a drop-down list of the incident form which has the locations of my offices.

This works well, but if I wanted to have the same functionality on my SR, CR, PR forms, then I'm faced with two options:

  • Create and maintain 4 separate location lists. (Incident Location, Service Request Location, etc.). This is obviously an overhead I don't want to have.
  • Create a single Management Pack which has all of the SR, CR, PR and IR customizations in. Yes it will work, but it would be a real pain to maintain later.

What we want to be able to do is create a list called "Locations" and re-use that single list across all my Management Packs. I'd only have to maintain that single list, and I could use it everywhere. This is where the SCSMListMaker utility comes in. Up until now, this has only been possible by writing the raw XML yourself. This tool aims to make that task a little easier!

The tool will generate the XML MP to define a custom list. This should run on any Windows machine with .net 4.

Step 1 – Download SCSM List Maker

Attached to this blog is a zip file, which contains the tool. Download & extract this.

Step 2- Build your List

Open up the Service Manager List Maker Tool. First off, click the "…" button to select where your output .xml file will be saved to.

Next, in the "List Internal Name" type in the name of your list. This has to contain only letters, numbers or full-stops (don't worry, it will stop you if it's wrong!).

To keep your list name unique, it's a good idea to name it ManagementPackName.ListName. In this example, I've called it MyLocationsMP.LocationList

As you type it in, it will populate the "List Display Name". This is the friendly-name of the list, which you'll see in the console from the Library area. Here, I've renamed mine to "My Locations":

Next up, click the "Add List" button. You'll see that the internal name is placed in the left list, and the display name on the right. You can add as many lists as you'd like to this MP, for example "My Locations" and "My Custom Status List".

Finally, you can edit the Version Number. Leave this as, unless you're replacing an old version of this MP. Once you're ready to go, click the "Make Management Pack!" button:

Step 3 – Seal it up!

Now, this has created your unsealed Management Pack (.xml) which contains your new list. As we want this list to be referenced from other Management Packs, we need to seal it. There are several ways to do this, but most of my customers like to use the friendly Service Manager Authoring Tool. There's PowerShell or command line alternatives out there if you prefer.

Install the Service Manager Authoring Tools if you haven't already done so, and open it up. The 2012 SP1 version is downloadable from

In the Authoring Tool, open up the Management Pack you created with the Service Manager List Maker. Right click the MP > Seal Management Pack. Follow the wizard to seal the MP with your key.


Step 4 – Import & populate your list

All you have to do now is open up the Service Manager console > Administration > Management Packs > Import Management Pack. Import your MP. Remember to import the sealed (.mp) file, not the unsealed (.xml) file!

Once imported, you'll be able to see your list from Library > Lists. At the moment, it's just an empty list, we'll have to populate it with data now. To do this, go to Library > Lists > Find your list & click Properties.

When you click 'Add Item' the first time, it will ask you where you want to store you values. This is because our list is stored in a Sealed MP which can't be changed. This will now create an unsealed MP to store the values of the list in. Here, I followed the wizard to create a new unsealed MP called "My Locations Value MP". This means if I want to move the MP, or back it up, the sealed MP will contain the list definition, and the unsealed one will have the values.

I just finish the list by adding more items to the list:


Step 5 – Author with it!

So your list is imported into Service Manager and working a treat. At this point, you may want to use the list to add it into the Incident class, or a Configuration Item. To do this, we'll have to copy your sealed Management Pack to the Authoring Tool Library.

Find where your Service Manager Authoring Tool is installed to, by default it's at: C:\Program Files (x86)\Microsoft System Center 2012\Service Manager Authoring\Library. Copy your sealed MP into this folder.

Now, open up the Authoring Tool & Create a new MP. In this example, I'll extend the Incident Class with my location list, and add it to the form.

In the class browser part of the Authoring tool, find the Incident Class. Right Click > View:

Now, right click the Incident Class & select "Extend Class". A warning will pop up, saying you can't edit a sealed MP. Click OK, to save the customisation in your MP.

Next, click the "Create Property" button. Give it a name, like "LocationList" and click Create. In the "Details" window of the LocationList, change this from Data Type string, to List.

In the pop-up window, you can now select your list! Click OK. At this point, the Incident class is extended with your list. It will match up with whatever contents you've added in.

Finally, you'll probably want to extend the incident form. There's examples of how to do this in the Authoring tool at

Please use the comments to report any bugs, and I'll take a look!

Comments (12)
  1. Anonymous says:

    In this case, i can’t use the list that i been create into the portal. So, how can i use to it

  2. Anonymous says:

    Does this only apply to Service manager 2012 SP1?

  3. Hi Jeff,

    By any chance, is your MP also called 'FlowRegions'?  Anything in the XML with an ID="x" tag needs to be unique, so this may happen if you've got two things called FlowRegions.

    Try calling the list ID="FlowRegionsList" for example, and see if it helps.


  4. Anonymous says:

    Will this only apply for SP1?

  5. Jeff Zuniga says:

    This is exactly the solution we have been looking for… I need to use some common lists from within the incident request module and service request module.  I have run into an issue trying to open the management packs that are generated from the list maker tool.  I am able to create a management pack using your tool.  But when I go to open the management pack using the 2012 SP1 Authoring tool, it will not open the file.  If I go directly to the management pack and do an "open with" the Authoring tool, I get this error message:  Error 1:

    Found error in 2|UnknowMP||UnknowMP|| with message:

    XSD verification failed for the management pack. [Line: 0, Position: 0]

    System.Xml.Schema.XmlSchemaValidationException: 'FlowRegions' is already used as an ID.

      at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(XmlSchemaValidationException e, XmlSeverityType severity)

      at System.Xml.Schema.XmlSchemaValidator.SendValidationEvent(String code, String arg)

      at System.Xml.Schema.XmlSchemaValidator.ValidateAttribute(String lName, String ns, XmlValueGetter attributeValueGetter, String attributeStringValue, XmlSchemaInfo schemaInfo)

      at System.Xml.XsdValidatingReader.ValidateAttributes()

      at System.Xml.XsdValidatingReader.ProcessElementEvent()

      at System.Xml.XsdValidatingReader.Read()

      at Microsoft.EnterpriseManagement.Configuration.XSDVerification.ValidateManagementPack(TextReader mpcontents, ManagementPack mp, Boolean throwError)

    All I am trying to do is seal the management pack using the Authoring tool.  I tried using fastseal.  However, when I go to import the now sealed management pack into Service Manager, I get the same exact error message.  I seem to have exceed some threshold… I have 2 other systems with the authoring tool installed and I get the same error message on those environments as well.  I have been able to narrow it down to this section in the management pack:




               <EnumerationValue ID="FlowRegions" Accessibility="Public" />



    If I remove this section, the management pack will open just fine in the Authoring tool. Any suggestions?

  6. Shaun Laughton says:

    Great addition, and certainly beats coding yourself, or creating using the Authoring Tool.  One suggestion though.  It would be useful to, lets say open an existing List MP and add to the MP rather than having to create them all up front

    Good work though!



  7. David Watt says:

    Excellent post thanks Rob. I used the tool to create multiple lists worked like a charm. When I saved the sealed MP when I tried to open it I got the same message as above, with a red X on the import. When I looked at the file name it showed as mylist.x instead of XML. When I tried importing into the authoring tool it also failed saying there was a mismatch in the name. I edited the xml file and searched on list and replaced all the references of list to “mylistname” and then tried the import again worked like a charm. Thanks again mate for a nice easy tool to create lists.

  8. Jeff P. says:

    I created a list with the tool, sealed that MP, and imported it into SCSM. It worked great. Then I want to extend the incident class to take advantage of it; however, that works not so great. After extending the class, creating an MP with the customization,
    and sealing the MP, if I import it the Incident class is messed up. If I open an existing Request offering, I get a vague dialogue. Then if I try to map prompts, there is no way to select the Incident class.

    Any thoughts on what I am missing?



  9. Anonymous says:

    I’ll be posting on this blog again. For completeness, below are links to my posts from the Manageability

  10. I followed this article but i’m not able to see the list in the Authoring Tool, i can drill to the MP i created, but there is no list shown inside that MP, Did i do something wrong? i’m in 2012 R2 UR3

  11. Brian Corcoran says:

    Hi Rob,
    Great post and tool, however, on creating a new MP I get this:

    Problem signature:
    Problem Event Name: CLR20r3
    Problem Signature 01: scsmmakeenum.exe
    Problem Signature 02:
    Problem Signature 03: 51842a79
    Problem Signature 04: SCSMMakeEnum
    Problem Signature 05:
    Problem Signature 06: 51842a79
    Problem Signature 07: 1
    Problem Signature 08: 0
    Problem Signature 09: System.IndexOutOfRangeException
    OS Version: 6.2.9200.
    Locale ID: 2057
    Additional Information 1: 5861
    Additional Information 2: 5861822e1919d7c014bbb064c64908b2
    Additional Information 3: 1a2a
    Additional Information 4: 1a2aa8e38ac8adbb6fe1e594fa623c2e

    Any thoughts?

  12. Mikemaggio says:

    The app you posted keeps crashing on a 2012 r2 server. Any way to fix this?

Comments are closed.

Skip to main content