This scenario is probably not the most common, but I experienced it at a customer recently where they had the ConfigMgr console installed on a number of Terminal Servers. Unfortunately, DNS was not used broadly and instead on many of their systems they relied heavily on hosts files and by IP addresses. In this case, most of the right-click tools that I’ve seen up until today use the NetBIOS or DNS name when they initiate their functions, but that’s not an option here. The customer wanted to be able to right-click on a device in the console and start a Remote Desktop Connection session, so I thought that I’d rely on what the ConfigMgr clients had inventoried. If you’d right click on a device in the console and select Properties, you’ll see that there’s a bunch of IP addresses available (assuming the everything is working properly).

How can we then use this information that is available to start a Remote Desktop Connection session? We can create a small Windows Forms PowerShell script that contains the logic necessary to get the IP address information from a specific device to start mstsc.exe.

Download the script

I’ve uploaded the script to the TechNet Gallery, and it’s available here. Download this script and put it on the site server or stand-alone server where you’re launching the ConfigMgr console from. I’ve chosen to store it in:

C:\Scripts

Extend the ConfigMgr console

Since this tool purpose is for admins right-clicking on a device, we’d need to extend the ConfigMgr console in the Devices and Device Collections nodes. This can easily be done by creating the following two folders named:

ed9dee86-eadd-4ac8-82a1-7234a4646e62
3fd01cd1-9e01-461e-92cd-94866b8d1f39

in the following location:

<ConfigMgr Admin Console installation path>\AdminConsole\XmlStorage\Extensions\Actions

In both of these folders, create a new XML file called StartRDP.xml. The XML file should contain the following:

<ActionDescription Class="Executable" DisplayName="Start Remote Desktop" MnemonicDisplayName="Start Remote Desktop" Description="v" SqmDataPoint="53">
	<ShowOn>
		<string>ContextMenu</string>
	</ShowOn>
    <ResourceAssembly>
		<Assembly>AdminUI.CollectionProperty.dll</Assembly>
			<Type>Microsoft.ConfigurationManagement.AdminConsole.CollectionProperty.Properties.Resources.resources</Type>
	</ResourceAssembly>
		<ImagesDescription>
			<ResourceAssembly>
				<Assembly>AdminUI.UIResources.dll</Assembly>
				<Type>Microsoft.ConfigurationManagement.AdminConsole.UIResources.Properties.Resources.resources</Type>
			</ResourceAssembly>
		<ImageResourceName>RemoteDesktopClient</ImageResourceName>
	</ImagesDescription>
	<Executable>
		<FilePath>"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"</FilePath>
		<Parameters>-windowstyle hidden -executionpolicy bypass -file "C:\Scripts\Start-RDPFromIP.ps1" -SiteServer "##SUB:__Server##" -ResourceID "##SUB:ResourceID##"</Parameters>
	</Executable>
</ActionDescription>

At the 3rd row from the bottom of the XML file, notice that there’s a <Parameters> section where a path to the script file is specified. This needs to be amended so that it reflects to location of where you’ve downloaded the script.

Using the tool

Close the ConfigMgr console if you have it open, and start it again. If you now go into one of the Devices or Device Collections nodes, right-clicking on one of the devices, you’ll see that there’s a new option at the bottom called Start Remote Desktop.

94_1

If you select that option, a small Windows Forms window will launch and based on what IP addresses are stored for the selected device in WMI, the results will be shown in the drop down list menu.

94_2

Once you select any of the IP addresses, the Select button will be enabled.

94_3

When you click the Select button, mstsc.exe will launch trying to initiate a Remote Desktop Connection session to the chosen IP address.

94_4

Pretty cool huh? I realize that this is probably not a tool that will be used widely, but in some environment it may be suitable for various reasons.

Nickolaj Andersen
Principal Consultant and Enterprise Mobility MVP. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows deployments and Automation. In 2015 Nickolaj was awarded as PowerShell Hero by the community for his script and tools contributions. Author of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService and a frequent speaker at user groups.

(61)

comments
  • Ram
    Posted at 15:27 July 17, 2014
    Ram
    Reply
    Author

    Thanks my friend. Worked out fine. This will be helpful for me in the next project on Win 7 migration. I can share this to my Tech support and make their life a lot easier to connect and fix user support ticket.

    Ram

    • Nickolaj
      Posted at 23:40 July 17, 2014
      Nickolaj
      Reply
      Author

      Hi Ram,

      Thanks for the kind words, I’m happy that someone other than me have any use for this tool!

      Regards,
      Nickolaj

  • Andrea
    Posted at 16:47 July 26, 2014
    Andrea
    Reply
    Author

    Hi, thanks for the grat tip. Just one question, is it possible to apply to MDT? I would like to map the RDP button in monitoring section to IP address instead of hostname and add a VNC button (WinPe phase). Thanks again to share.

    Andrea

  • Leave a Reply