Using ConfigMgr 2012 Console Builder - Create Custom Console Nodes
I was working with a customer who is in the process of migrating from ConfigMgr 2007 to ConfigMgr 2012 the other day when it was brought to my attention that certain columns were not available to be added to the console view for the Monitoring Workspace > Deployments node that are available in the Software Library Workspace > Packages node. I had the customer show me what they meant and sure enough, in the Software Library Workspace > Packages node, you can add Manufacturer, Version columns for additional detail about packages. However, in the Monitoring Workspace > Deployments node, for deployments of these packages, the aforementioned columns are not available to be added to the ConfigMgr console view. There is a “Software” column that appears to concatenate the package name and the program name that has been deployed, but there is no manufacturer or version information displayed in the “Software” column. Oddly enough, these columns were available in ConfigMgr 2007 to be added in the Software Distribution > Advertisements node. And, in addition, the “Package” column in ConfigMgr 2007 Advertisements node concatenates the package name, program name, manufacturer, and version.
You may be asking, what’s the big deal? This actually poses a significant problem for customers who have multiple types of multiple deployments of multiple packages deployed across multiple business units in an environment. The reason being is because in the default Deployments view, there is really no means of identifying separate deployments without creating and naming collections with specific manufacturer and version information to identify the deployment. This creates an overhead nightmare. Essentially, this was much easier to tell in ConfigMgr 2007. So, in ConfigMgr 2012, we can’t add the columns we need to the view because it’s not given to us by default. The really frustrating part is that we know the data is there, but we have no discernable way, by default, to view it! So what can you do?
Well, I decided to go dig through the ole’ AdminConsole folder to get a look at the assemblies that were available. As I scrolled down through the list, I stumbled upon something called AdminUI.ConsoleBuilder.exe. I thought, this is something new – what the heck is it? After a quick Bing search, I got a view hits, but nothing of warrant. So, I figured I’d give it a whirl and see what it was all about. At first, I thought it was a tool like in ConfigMgr 2007 where you could add/remove certain nodes for a custom console view. It actually is that, but after playing around with it, you can do so much more! Well, it turns out that Console Builder is/was the answer to our problems. After a bit of trial and error playing with the tool and checking what my results were in the ConfigMgr console, I was able to create the “view” the customer desired. Below are the steps to walk you through creating such a view. It may or may not be of benefit to you, but at least as you go through the steps, you can get familiar with this awesome tool to potentially get the juices going on creating your own custom data views and console nodes.
Log into any machine that has the ConfigMgr 2012 console installed. Open up Windows Explorer and navigate to %ConfigMgrInstallPath%\AdminConsole\Bin. Locate and open AdminUI.ConsoleBuilder.exe
SCCM Console Builder will open. Click on File > Open > ConnectedConsole NOTE: ConsoleBuilder does not have a Save function. Any changes you make will be committed when they are changed. It is recommended to take a backup of the Console Root folder located at %ConfigMgrInstallPath%\AdminConsole\XmlStorage\ConsoleRoot
The ConnectedConsole view will load. Notice at the bottom left corner, you will see "text" representation of the ConfigMgr 2012 console workspaces. Select the Monitoring "text" and the nodes will show in the upper left pane with a similar layout to the ConfigMgr console. To create a new node, right-click the Overview node and select New from the context menu. NOTE: You can create the node as a child node of another node by right-click the desired parent node and selecting New from the context menu
A Name window will open. In the Name field, give the new node a name and click OK. I'm going to call my new node Deployment Details. A better name may be "Package Deployments" because that is essentially what the view is going to be.
Notice in the bottom left that a new placeholder for your new node has been created. Also notice in the middle pane, you'll see several tabs, and lots of fields. We'll be working with these tabs to create our node. One of the cool things about Console Builder is that it allows you to leverage the ConfigMgr 2012 console assemblies in a GUI. As you'll see in a bit, these assemblies are full of properties that we can leverage in creating our own custom nodes/views. I encourage you to look at some of the other nodes that are already defined to see how the assemblies are leveraged. One of the most common ways you'll see these assemblies leveraged by specifying them to use their properties to define the Display name and description fields of objects in the views. In the screenshot below, you'll see that is case as well. I could leverage an assembly in the "Resources assembly detail" section to pre-populate the Display name and Display description of my new node with properties already defined in the assembly. But, because this is a completely custom node, we will defined them manually.
Let's make a couple changes to our General tab. In the "Instance Name" field, remove the underscore to make it cleaner. In the "Search Folder ID" field, use the same name as the Instance Name field. It is important that you fill in the field if you'd like Search bar capability in your new node. NOTE: You can specify whatever name you want in the Search Folder ID field, but I like keeping things clean.
In the "Display strings" section, in the "Display name (ref)" field, enter the name as you want it to be rendered in the console. This was set in Step 4, but it is prefixed with "New Node". In the "Display description (ref)" field, enter a description that you would like displayed if someone were to hover over the new node. This description will also appear on the new node's homepage. NOTE: If we had a pre-built assembly or a custom assembly you coded with the properties already defined, we could have defined the Display name and description by leveraging the assembly.
Click on the Views tab. And then click Add to the far right
The ViewDescriptionItem Window will appear. In the Assembly field, click the Browse button
Windows Explorer will open to the %ConfigMgrInstallPath%\AdminConsole\Bin location where all of the ConfigMgr assemblies are located. Select the "AdminUI.ConsoleView.dll" assembly and click Open
You will be returned to the ViewDescriptionItem window where the Type field has been pre-populated for you. Click the Configure button
The Configuration Dialog window will appear. The next few steps are very important as selections/configurations on this window will dictate what view and what behaviors will be given to the node by default. In the "Property display items" section, select the "Class Name" drop-down menu.
From the Class Name drop-down menu, select SMS_AdvertismentInfo. NOTE: Go ahead and take a peek at what all is available to you to select and let the juices start flowing on how you can create other custom views!
In the Class Properties section, we finally get to where we select the whole reason for needing Console Builder. The Class Properties represent the column names that will be available in the view. To display the columns by default, simply check the ones you want and then you can move them up or down, depending on what you'd like in the 1st column, 2nd column, etc. For me, I want to see AdvertisementID in the first column, the PackageName in the 2nd column, the PackageManufacturer in the 3rd column, and the PackageVersion in the last column, etc. Lastly, there are some checkboxes that give additional functionality and behaviors. I checked them all. The one I'm most interested in however is the Search capability. When finished, click OK
You'll be returned to the ViewDescriptionItem window. Click OK to close it
Back on the Images tab, in the Images Assembly section, in the Type field, click the drop-down menu and select "Microsoft.ConfigurationManagement.AdminConsole.UIResources.Properties.Resources.resources"
In the Resources Name field, click the Browse button
The Select State Image window will appear. As you can see, there will be quite a few icons to choose from. This is where we will use a built in assembly to specify the icon we want for our custom node. Pick any icon you'd like and click OK. I'm going old-fashioned in my example by selecting the old "Advertisements" icon from SCCM 2007.
Back on the Images tab, you'll see the icon you've selected displayed out to the left of the Browse button of the Resource Name field
Almost there, hang in there. In Console Builder, click the Queries tab. Right click Root and choose New from the context menu
A whole another set of tabs will be available to you once you create a new query. In the next few steps, we will be creating the query to get the data from the database that we want to render to the view we created earlier for our custom node.
In the Query text area, this is where you will input the query that you want to leverage to obtain the data you want to render to the view. We can use either WQL or SRS query language. We will be using WQL for our example.
In the Query text area, type in "SELECT * FROM SMS_AdvertismentInfo". In addition, change the Query Language drop-down menu to "WQL". Lastly, check the "Enable use of COUNT (*)"checkbox. Checking this checkbox will provide an overall count of items that are displayed in the view.
In Console Builder, select the Security tab and click Add
The Select Action Security Dialog window will appear. Click the "Select a class which will be created as a new instance as a result of this action" drop-down and choose "SMS_Collection"
In the "Choose the permissions required to operate the above class" selections box, check the "Read" and "ReadPolicy" checkboxes and click OK
Back on the Security tab of the Console Builder, you'll see the new security class permissions you've just created so that the custom node can be rendered back to the console view.
As far as configuring the options for the custom node and data view, you are done! Now, I want to move my new node just under the Deployments node in the Monitoring workspace. To do that, simple drag and drop the Deployment Details Node to the left of the Deployments node in the Console Builder and it will drop the new node just under the Deployments node. Similarly, you can move it wherever you'd like. When finished, close Console Builder. NOTE: Recall, there is no save option when working with console builder. Any changes you make a committed when you make the change.
So let's see what we've got! Open the ConfigMgr 2012 console and select the Monitoring Workspace
A couple things you should notice off the bat from what we just did. Notice the Deployment Details node is just below the Deployments node and we have our old SCCM 2007 advertisements icon. In the middle pane, on the Monitoring workspace homepage, you'll see a link to the Deployment Details node and the description we entered earlier.
Selecting the Deployment Details node, we see....
We see the columns we selected in the order we put them in and we see the corresponding data from the query we created. Notice now we can see the AdvertisementID and the Manufacturer and Version to further help identify our package deployments. Also notice the Search Bar capability that is included.
Right-click the columns and you'll see we can add or remove columns for additional data if we choose to view it.
This next screen demonstrates the Search Bar and Search Ribbon capability that is included in the node we created
Leveraging Search Bar to find deployments that have Manufacturer of "Microsoft', we see they are returned successfully
In closing, I hope you enjoyed this example on how to use the Console Builder to create a custom node. A couple quick additional notes on this example. This example is limited to only deployments for packages. This view will also pick up task sequences as well. If you click over to the Deployments node, you will notice that everything, package deployments and application deployments are listed, but package deployments are lacking the additional information; which is the reason why we created this view. I did play around with combining the Deployments node views and the view we created here. But, in my opinion, the 'hybrid" view was not "clean" with a lot of white space from deployments not having the same properties as package deployments, which made it hard to read and just wasn't "pretty". Lastly, I didn't include any additional "tools" with this view like right-click options, graph controls, links to reports, etc. But, you can absolutely do that! To get an idea of how to do that, take a look at some of the other nodes that are already pre-defined within Console Builder. From these, you can get an idea on how to create your own set of right-click options and include a details panel with graphs and the like.
In the grand scheme of this tool, this example is relatively simple. The capability of this tool can go as far as your imagination can take you. In essence, whatever views, tools, ribbon items, right-click context menu options, graph controls, etc.... they can be added to a custom node or view for you. It will just take a little practice leveraging the tool to understand how to get the data you want and how to get it rendered to the console in the way you desire. Unfortunately, I haven't found any documentation on this tool and how to use it. So, it'll just take practice along with some trial and error to get really good at it. Happy Creating!