CM 21511 GA .It is official System Center Configuration Manager and Endpoint Protection (version 1511) is now generally available

It is official
Over the past few months we have been working to finalize the latest version of System Center Configuration Manager (ConfigMgr). We are excited to announce that this new current branch of System Center Configuration Manager and Endpoint Protection (version 1511) is now generally available, and can be downloaded from the Microsoft Evaluation Center, MSDN, and Volume Licensing Service Center.

Removed and Deprecated Features for Configuration Manager

If you are wondering what features are deprecated in the current version and not supported in the next  CONFIGMGR, or what products and OS please take a look in the next link:

Deprecated features, products, and operating systems

Deprecated features, products, and operating systems

  • Configuration Manager has deprecated Out of Band Management. Support for new Intel AMT firmware versions is not planned.
  • Configuration Manager has deprecated Network Access Protection. The feature has been deprecated in Windows Server 2012 R2 and is removed from Windows 10.


System Center 2012 Configuration Manager SP2

System Center 2012 R2 Configuration Manager SP1

Configuration Manager vNext
Configuration Manager features Deprecation announced Support removed
Network Access Protection (NAP) 7/10/2015 X
Out of Band Management 10/16/2015 X
Site server supported products
SQL Server 2008 7/10/2015 X
SQL Server 2008 R2 7/10/2015
Windows Server 2008 7/10/2015 Support removed RTM + 12 months
Windows Server 2008 R2 7/10/2015 Support removed RTM + 12 months
Client operating systems
Windows Server 2008 7/10/2015
Windows Server 2008 R2 7/10/2015
Windows XP 7/10/2015 X
Windows XP Embedded 7/10/2015 Support removed RTM + 12 months
Windows Server 2003 7/10/2015 X
Windows Server 2003 R2 7/10/2015 X
Windows Vista 7/10/2015 X
Mac OS X 10.6 – 10.8 7/10/2015 X
Windows Mobile 6.0 – 6.5 7/10/2015 X
Nokia Symbian Belle 7/10/2015 X
Windows CE 5.0 – 6.0 7/10/2015 X

How to build custom Right Click Tools

This article has been written by Neil Peterson



Neil discusses the following:


  • The 2012 Configuration Manager Console Extension Internals.
  • How to create a custom extension that will ping all machines in a selected collection, and write the result to and Excel spread sheet.

Video Demo

When considering console extensions for Configuration Manager (2007 or 2012) there are several components to consider

  • Console Extension Type – many different types of extensions are documented (or will be documented) in the Configuration Manager SDK. These types include Actions, Forms, Views, Nodes, and Management Classes. In this Blog post we will be focusing only on the Actions type.
  • Console Component GUID – this GUID corresponds to the console component on which you would like to add the custom Action.
  • Extension Folder – Each custom extension will be created and placed in a specific location for console consumption. This location will vary depending on why type of console extension is being created and what platform it is being created for (2007 or 2012).
  • XML File – each console extension is made up of a custom XML file.
  • Action Executable – typically each Console Action extension will have an executable (script or otherwise) that will be called from the XML file.

With each of these components defined, let’s take a closer look at how to work with each specific component.


Console Component GUID :

Before we can determine the location in which to place our custom extension XML file, we will need to find the GUID corresponding to the console component on which we would like our custom action to be added. In other words if we want to add our action (right click tool)  to the Software Library / Software Update section of the console, we need to determine the specific GUID  for the this location. Likewise if we would like our action (right click tool) to surface on a collection under the Assets and Compliance node of the 2012 Configuration Manager console we would need to know the corresponding GUID. In order to identify these GUID’s we must traverse existing root console XML files and manually (or using a script) locate these GUIDS.

If you have done this with 2007 you will recall the root console file as AdminConsole.XML. With 2012 there are multiple files corresponding to the multiple Configuration Manager nodes. For instance if you have an action that is to be placed on the Overview node under Administration, you would be searching SiteConfigurationNode.XML. For the exercise detailed in this blog (ping all machines in a collection) we will be adding an extension to device collections underneath the Assets and compliance node. For this we will be searching the AssetManagementNode.xml file.

When examining the root console XML files for specific GUIDS, search for NamespaceGuid=<GUID> followed by Id=<Node Description>. The Id will give you a good idea of which console component the GUID belongs too. Note that most console components will have child components; these will not have an ID, rather a Type=’WQL’. I have found that is pretty easy to walk the XML matching up GUIDs to console components as I go. A little bit of trial and error helps as well. So for example if we open up AssettManagementNode.XML and search for ‘NamespaceGuid=’, the second item (after the root) we will come to is ‘NamespaceGuid=”f10d0965-4b26-4e37-aab5-5400fbbc8eaa” Id=”AssetManagementNodeOverview”’. This is the GUID associated with the root of Assets and Compliance or ‘Overview’ as it is displayed in the 2012 Configuration Manager Release Candidate console. Walking to the next ‘NamespaceGuid=’ we come up with ‘NamespaceGuid=”80ea5cfa-5d28-47aa-a134-f455e2df2cd1″ Id=”Users”’. One more and we come up with ‘NamespaceGuid=”baaa6910-892f-4d20-9082-b392e5a28a53″ Type=”WQL”’. We can assume that this is the GUID associated with the user objects.

For this exercise we want to right click on a device collection and ping all machines found in that collection. For this purpose we will use GUID a92615d6-9df3-49ba-a8c9-6ecb0e8b956b.


XML File Location

With the console component GUID determined, we can create our XML landing spot or destination folder. With 2012 Configuration Manager the XML file location will be %Program Files%\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions\<GUID>”. Replace <GUID> with the appropriate GUID. This folder will need to be created. In some cases you may need to create the “\Extensions\Actions\<GUID>” folders as well.

XML File:

Here is sample XML for both 2007 and 2012. Notice that the 2012 XML has slightly changed due to the introduction of the ribbon. The new addition of the ‘ShowOn’ tag allows us to control wither or not the extensions is show on the ribbon, right click menu, or both.  During this blog I will only be discussing right click menus and will not address adding actions to the ribbon. These two sample XML have been taken from the 2007 SDK and the 2012 beta SDK.

System Center Configuration Manager 2007 –

System Center Configuration Manager 2007

  1. <ActionDescription Class=”Executable” DisplayName=”Make a Note” MnemonicDisplayName=”Note” Description = “Make a note about software updates”>
  2.   <Executable>
  3.     <FilePath>Notepad.exe</FilePath>
  4.     <Parameters>C:\MyConfigurationManagerNote.txt</Parameters>
  5.   </Executable>
  6. </ActionDescription>

System Center 2012 Configuration Manager –

System Center 2012 Configuration Manager

  1. <ActionDescription Class=”Executable” DisplayName=”Make a Note” MnemonicDisplayName=”Note” Description = “Make a note about software updates”>
  2.   <ShowOn>
  3.     <string>DefaultContextualTab</string>
  4.     <!—RIBBON –>
  5.     <string>ContextMenu</string>
  6.     <!—Context Menu –>
  7.   </ShowOn>
  8.   <Executable>
  9.     <FilePath>Notepad.exe</FilePath>
  10.     <Parameters>C:\MyConfigurationManagerNote.txt</Parameters>
  11.   </Executable>
  12. </ActionDescription>


PFE Ping Demo Extension XML

Here is the XML that will make up the ping console extension. Notice here that unlike the previous SDK samples, the ShowOn tag only includes <string>ContextMenu</string>. This is because for this example I only want the extension to be accessible from the context menu and not the ribbon.Take note of the FilePath tag, this will specify the location of the ping script. Also note the parameter tag. The ##SUB:CollectionID## will make the collection ID accessible as an argument for our ping script.


  1. <ActionDescription Class=”Group” DisplayName=”PFE Ping Demo” MnemonicDisplayName=”PFE Ping Demo” Description=”PFE Ping Demo” SqmDataPoint=”53″>
  2.   <ShowOn>
  3.     <string>ContextMenu</string>
  4.   </ShowOn>
  5.   <ActionGroups>
  6.     <ActionDescription Class=”Executable” DisplayName=”Ping Computers” MnemonicDisplayName=”Ping Computers” Description=”Ping Computers”>
  7.       <ShowOn>
  8.         <string>ContextMenu</string>
  9.       </ShowOn>
  10.       <Executable>
  11.         <FilePath>”C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions\a92615d6-9df3-49ba-a8c9-6ecb0e8b956b\PFEPing.vbs”</FilePath>
  12.         <Parameters>##SUB:CollectionID##</Parameters>
  13.       </Executable>
  14.     </ActionDescription>
  15.   </ActionGroups>
  16. </ActionDescription>


Action Executable:

Here is the VBScript that the console extension will execute. Using this script as is, you will need to specify your site server and site code around line 22 of this script.


  1. Set WshShell = WScript.CreateObject(“WScript.Shell”)
  2. Set objExcel = CreateObject(“Excel.Application”)
  3. objExcel.Visible = True
  4. objExcel.Workbooks.Add
  5. intRow = 2
  6. objExcel.Cells(1, 1).Value = “Machine Name”
  7. objExcel.Cells(1, 2).Value = “Results”
  8. Set objArgs = WScript.Arguments
  9. IF (objArgs.count > 0) then
  10.       MyPos = InStr(objArgs(0), “:”)
  11.     COLLID = wscript.arguments.item(0)
  12. END IF
  13. Set SWbemLocator=CreateObject(“WbemScripting.SWbemLocator”)
  14. set SWbemServices = SWbemLocator.ConnectServer(“<Site Server>“,”root\SMS\site_<Site Code>“)
  15. strQuery = “select * from SMS_CM_RES_COLL_” & COLLID
  16. Set Computers= SWbemServices.ExecQuery(strQuery)
  17. for each Computer in Computers
  18.     Ping = WshShell.Run(“ping -n 1 ” & Computer.Name, 0, True)
  19.     objExcel.Cells(intRow, 1).Value = UCase(Computer.Name)
  20.     Select Case Ping
  21.     Case 0 objExcel.Cells(intRow, 2).Value = “On Line”
  22.     Case 1 objExcel.Cells(intRow, 2).Value = “Off Line”
  23.     End Select
  24.     If objExcel.Cells(intRow, 2).Value = “Off Line” Then
  25.     objExcel.Cells(intRow, 2).Interior.ColorIndex = 3
  26.     Else
  27.     objExcel.Cells(intRow, 2).Interior.ColorIndex = 4
  28.     End If
  29. intRow = intRow + 1
  30. Next
  31. objExcel.Range(“A1:B1”).Select
  32. objExcel.Selection.Interior.ColorIndex = 19
  33. objExcel.Selection.Font.ColorIndex = 11
  34. objExcel.Selection.Font.Bold = True
  35. objExcel.Cells.EntireColumn.AutoFit


Putting it all Together:

To create the console extension follows these steps.

  1. Create the following folder – %Program Files%\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions\a92615d6-9df3-49ba-a8c9-6ecb0e8b956b .
  2. Create an XML file (of any name) containing the XML from the above PFEPing.XML. Place this in the newly created folder. You may want to change the Display Name, Mnemonic Display Name and Description to something more appropriate for your environment.
  3. Create a .VBS file using the PFEPing.vbs code from above. Replace <Site Server> with the FQDN of your site server and <Site Code> with your three character site code. Place the script inside of the folder created in step 1.
  4. If your console is open, close it out and open it back up.
  5. Right click on any collection and execute the extension.


Troubleshooting and Caution:

To trouble shoot console extension issues see the SMSAdminUI.log.

I would discourage the creation of any extensions directly on a site server, rather install the Configuration Manager console on another machine and create them there.