Using ConfigMgr 2012 Console Builder - Create Custom Console Nodes
Hello all,
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.
Step 1:
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
Step 2:
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
Step 3:
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
Step 4:
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.
Step 5:
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.
Step 6:
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.
Step 7:
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
Step 8:
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
Step 9:
You will be returned to the ViewDescriptionItem window where the Type field has been pre-populated for you. Click the Configure button
Step 10:
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.
Step 11:
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!
Step 12:
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
Step 13:
You'll be returned to the ViewDescriptionItem window. Click OK to close it
Step 14:
Back in Console Builder, select the Images tab. In the Images Assembly field, click the Browse button
Step 15:
Windows Explorer will open to the %ConfigMgrInstallPath%\AdminConsole\Bin location where all of the ConfigMgr assemblies are located. Select the "AdminUI.UIResources.dll" assembly and click Open
Step 16:
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"
Step 17:
In the Resources Name field, click the Browse button
Step 18:
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
Step 19:
Almost there, hang in there. In Console Builder, click the Queries tab. Right click Root and choose New from the context menu
Step 20:
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.
Step 21:
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.
Step 22:
In Console Builder, select the Security tab and click Add
Step 23:
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"
Step 24:
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.
Step 25:
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.
Step 26:
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!
-Matt
Comments
- Anonymous
January 01, 2003
Hi Daniel, I wrote this example for SCCM 2012 SP1, not RTM. I loaded up the RTM Console Builder in my lab and also did not have the Search Folder ID field. Have you tried to complete the steps ignoring the Search Folder ID field part? It could be that the Search bar is implied in RTM, but I have not specifically tested it.-Matt - Anonymous
January 01, 2003
Hey Matt this is incredible. I have just added a Tab to Devices-->Detail Views & Device Collection-->Devices-->Details views which enables users to view other Collection Memberships for that Resource. Here is the core Query for anyone interested. I'll try and get a walkthrough up in the near future. SELECT * FROM SMS_Collection JOIN SMS_FullcollectionMembership ON SMS_FullcollectionMembership.CollectionID=SMS_Collection.CollectionID WHERE SMS_FullcollectionMembership.ResourceID = ##SUB:ResourceID## - Anonymous
January 01, 2003
BTW: Some nodes store their information in the other .XML files. If you are going to start digging around with this tool you should backup all the .XML files in %ConfigMgrInstallPath%AdminConsoleXmlStorageConsoleRoot Not just the "ConnectedConsole.xml" - Anonymous
January 01, 2003
Hi "Anonymous",Glad you liked the blog post and that it got your creative juices flowing. I can see where the view you created would be beneficial for some SCCM Admins as that is a common question we PFEs get from customers regarding devices and other collection memberships. And, you are correct, all of the files/folder should be backed up as a precaution. I will update that.-Matt - Anonymous
January 01, 2003
The comment has been removed - Anonymous
December 18, 2013
The comment has been removed - Anonymous
March 10, 2014
Hi Matt, great article!
Is there anyway you can use this tool to remove buttons from right click options ie "Add selected items" etc? - Anonymous
March 11, 2014
Hey Matt,
Thanks for the reply.
I've tried combinations of RBA but seem to be falling short of what I'm trying to achieve.
Basically I need our Service Desk to be able to an individual resource to a collection with and associated deployment. (ie Workstation1 to Photoshop CS5) but NOT able to add one collection to another collection (ie All Systems to Photoshop CS5 :) )
When I tried to use RBA and scopes I either ended up making the resources unsearchable or removed the ability to add anything to another collection.
I'll take another look! - Anonymous
March 12, 2014
Hey!
I took another run at this and no joy.
I've got two roles:
SDREADER which had NO "modify" permission.
SDMODIFY : which has "modify" permissions.
I assigned them both to "MYDOMAINsdgroup" administrative user.
Then in security scopes I have:
Associate assigned security roles with specific security scopes and collections.
There I modify the security roles so that:
SDReader : Assigned to "All Systems" Collection and Default scope.
SDModify: Assigned to "Photoshop" Collection and Default scope.
I would expect that this would allow "MYDOMAINsdgroup" to navigate collections as normal but not allow "add selected items" or "add resource" anywhere other than the "Photoshop" collection where the permissions would be available.
Am I on the right track here or have I totally missed something? - Anonymous
August 07, 2014
Is there a way to get a similar result without modifying the original XML files? I didn't find a way to add a NodeNavigationAlias as an Extension... - Anonymous
July 01, 2015
Hi Matt! Thanks for your great Explanation.
This post seems pretty old, but Ill give it a try. I was just playing around with the console builder and added a new node. When it Comes to selecting an Image in the Images tab, adding assembly reference (adminui.uiressources.dll) and choosing a type (ms.cm.adminconsole.uiresources.properties.resources.resources) I am not able to even see an Icon to Chose when I click on browse. Console Builder is started as Administrator. I looked in other nodes to configure my own node similiar to them.
Searched the web for similiar Problems, but it seems not to be documented so well.
Do you or anybody else might have an idea for this issue? - Anonymous
July 24, 2015
Hello Matt;
Can you or anyone tell me if it's possible to add the device "desciption" to a column in the SCCM console? I followed the steps here to create a custom console, however I don't see where I can add a "AD Computer Description" column. We currently have a description for all our computer objects and it would be very help full to have a column to show that. Any thoughts? Thanks - Anonymous
July 24, 2015
Hi Zagrosman,
This is one of those situations where a custom DLL may be necessary. The default AdminUI.ConsoleView.dll contains a _CollectionMembershipDevice class. The only AD properties listed for selection are ADLastLogonTime and ADSiteName. Unfortunately, the provided DLL only exposes those options to be selected to be added to the console. However, if you would like to have this data, you can add description as a custom attribute to your AD System Discovery and on the next discovery cycle, that data will be part of the client's DDR properties in the console (right-click the object > Properties and you'll see description is populated for AD objects that have a description value in AD)
-Matt - Anonymous
July 28, 2015
Thanks for your suggestions. I have already added custom attribute to AD System Discovery and I am able get that info by right-click. But, we need description as a column. I wonder if there is a way to edit SMS_R_System and add a class property for AD description. in my custom view I am using the class SMS_R_System which has the attributes that I need to see in my view/columns. Columns like Nam. IPAddress, LastLogonUserName, etc. The only thing missing is AD Computer description. Just thinking... I may be way off.. - Anonymous
August 01, 2015
The comment has been removed - Anonymous
August 01, 2015
Hi JoeVice,
What version of SCCM are you using? I just ran through this on SP1 and R2 and I don't have the issue you are experiencing. I am able to select icons on new nodes that are created.
-Matt - Anonymous
August 04, 2015
Hi Matt,
Is there any way to add security group membership as a column (not as a node) ? Using the steps above, i created a node but what i actually want is a column options in collection members view.
Any thoughts? - Anonymous
September 02, 2015
Excellent article. I followed each and every step carefully (thanks for that!). However, I found that there is mistake:
SELECT * FROM SMS_AdvertismentInfo ('E' missing after "Advertis").
I strictly followed you, and found that it resulted nothing. Changed the class name to SMS_AdvertisementInfo, and it worked! - Anonymous
November 04, 2015
Great Article Matt, appreciate the advice.
Do you know if you can add a Device Model column to the Devices view?
Also, can you modify the tabs on the bottom of the console? - Anonymous
November 04, 2015
Hey Tim,
Thanks for the feedback. In my opinion, it'd be much easier to create another node. I've tried putting different info in different views before and it either didn't work or it wasn't real pretty to look at. When you say Device Model, do you mean PCs, laptops, mobile devices, or a combo of each? I've actually created a node before that lists out all the mobile devices and their OS, manufacturer, and model. I'm sure you can do the same for the others. And yes, you can modify the tabs at the bottom of the console. You do that by choosing the query you want to alter and then clicking on the Detail Panel tab.
-Matt - Anonymous
August 02, 2016
Hi great tutorial, are you aware of any way that columns from multiple 'views' are able to be added to one console node.I'm wanting to create a single pane of glass that uses multiple elements like status, name, serial..etc I've tried creating a custom SQL view with the desired elements but since console builder uses WQL to map these it won't work.- Anonymous
February 17, 2017
The comment has been removed
- Anonymous
- Anonymous
January 04, 2017
I would like to do this for Devices Serial Number being pulled from PC Bios Serial Number. What would that query be?- Anonymous
February 17, 2017
Hi Kyle,Apologies for not seeing this sooner. We recently migrated to a new blog platform and I was not getting comment notifications.You may have already figured it out, but the query for what you're looking for would be:SELECT SerialNumber FROM Win32_BIOS
- Anonymous
- Anonymous
April 06, 2017
Great article.I have customised the default DEVICE view and found it to be more convenient having it there at start, making it like KACE1000 or Spiceworks.(Really should be the default view of a clean SCCM install)Would love to include Screenshots but can't in this format.Basically re-point the "Device" \ View \ Edit\ configure ( adminUI.ConsoleView.dll)\ to "Class Name" "SMS_R_SYSTEM" select any one " CLass Property" ok ok THen go to the "QUerie" Tab and delete all entries and create a New one ( SELECT * FROM SMS_R_SYSTEM)and BINGO you now have access to a lot more useful info about your PC's all in default view. ( one prob , have not figured out how to use the default search field above? but stocked at the result anyway....) - Anonymous
December 12, 2017
Hi Matt - Great Post, this has opened out a whole set things with SCCM. Question, I am trying to launch a command bat script from Console Manager on the console manager and I believe I need to set action in the Console Builder. Do you know which Assembly, I need to look at? I just purchase 2016 license or is there support that can help with this?- Anonymous
January 18, 2018
The comment has been removed
- Anonymous