I have the adminpak.msi installed so that I can use the Remote Desktop MMC to connect to all of my servers. As I add a server, it goes to the bottom of the list of available servers. I can't find out how to re-order them into more logical groupings, or at least alphabetical. Any ideas?

link|improve this question
feedback

6 Answers

Royal TS can help you manage/organize your Remote Desktop connections. Also Terminals may do something similar. An alternative would be to create Remote Desktop shortcuts for each connection and store them in a folder where they can be sorted by name.

link|improve this answer
+1 for Terminals. Not exactly perfect deployment (probably just a ZIP of the developer's BIN folder ;)) but IMO so much better in daily use than MMC – markus Aug 28 '09 at 12:43
1  
A couple years ago I used Royal TS. Then I found mRemote and have been using it ever since. Either are definitely better than MMC :-) – Chris_K Aug 28 '09 at 13:27
problem is that RoyalTS and all implementations like it dont have very good support for "Network Level Authentication" although it claims that it does. That bit me many times and Ive tried all the competing programs as well. – djangofan Jun 4 '10 at 16:36
feedback

I would highly recommend a free application that I've been using for the last few weeks (and I am in no other way affiliated with), called RD Tabs (by Avian Waves). The tool is very flexible, allowing you to create multiple panes, each containing multiple tabs, with quick thumbnail preview access, keyboard shortcuts to just about every feature (great for people that don't like to be forced to use a mouse), and even command line / script automation of the tool. Sorting and grouping involves nothing more than drag and drop, and you can import your existing Remote Desktop configuration file(s) with ease.

link|improve this answer
1  
+1 I recently started using this also and now canNOT live without it! – cop1152 Aug 28 '09 at 15:24
feedback

I found a solution. Looks like the msc file has an encrypted area that is just not accessible. So I found a script from Brett Clarke at http://twistingthewick.org. I've modified it a bit to add structure and login information. It uses our old friend SendKeys.

You need to create a CSV with:

server-name-or-ip,description,userid,domain

one per line for each server. You'll have to sort this the way you want it.

You can also add a line to break things up into separate ad-ins using the syntax:

---,some-name,,

some-name is not used; each section is named Remote Desktops. If someone can figure out how to change the name, please let me know.

For now, this seems to work, and allows re-building any time you need to add a server. You might need to tweak the delays on your system.

Oh, and this probably won't work on Vista or Windows 7 as the SendKeys method has been disabled for security purposes.

I like to share drives, so this script checks that box. You can modify it to do pretty much anything you need.

First, though, you need to start out with a blank tsmmc.msc file. Open MMC and add a Remote Desktops snap-in. The script wants it called blanktsmmc.msc in c:\Projects\SortMmc. Of course, you'll need to have the Windows Admin Pak loaded.

Script is utilitarian, designed for speed of coding, not elegance. If you make improvements, please share.

And I'm new here. If you like this, I could use some Karma!

' CreateTSMMC.vbs
' Script to re-create tsmmc entries in order
' Author: Brett Clarke http://twistingthewick.org
' Version: 0.1 – 21/06/2007
'
' Updated by Brian Travis, adding login and drive info
' Version: 0.2 - 2009-08-26
'———————————————————————

'Declare some variables
Option Explicit
Const ForReading = 1
Dim objShell, objFSO, objFileCopy, objDictionary, objTextFile
Dim strBlankMMC, strWorkingMMC, strTemplate, strNextLine
Dim arrRDPList
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDictionary = CreateObject("Scripting.Dictionary")
strBlankMMC = "c:\Projects\SortTsmmc\blanktsmmc.msc"
strWorkingMMC = "c:\windows\system32\tsmmc.msc"
strTemplate = "c:\Projects\SortTsmmc\tsmmc.csv"
Set objFileCopy = objFSO.GetFile(strBlankMMC)
Set objTextFile = objFSO.OpenTextFile (strTemplate, ForReading)

' copy the blank template file over the working file
objFileCopy.Copy (strWorkingMMC)

' start up MMC
objShell.Run "c:\windows\system32\tsmmc.msc"

' wait for the app to start
Wscript.Sleep 1500

' get to the plugin
objShell.SendKeys "{DOWN}"

' read the CSV file, and parse the entries into the MMC session
Do Until objTextFile.AtEndOfStream
	strNextLine = objTextFile.ReadLine
	arrRDPList = Split(strNextLine , ",")

	if arrRDPList(0) = "---" then
		' create a new group
		objShell.SendKeys "%f"
		objShell.SendKeys "m"
		objShell.SendKeys "%d"
		objShell.SendKeys "rem"
		objShell.SendKeys "%a"
		objShell.SendKeys "%c"
		objShell.SendKeys "{ENTER}"
		objShell.SendKeys "{END}"
	else
		objShell.SendKeys "+{F10}"
		objShell.SendKeys "A"
		objShell.SendKeys arrRDPList(0)
		objShell.SendKeys "{TAB}"
		Wscript.Sleep 100
		objShell.SendKeys "{TAB}"
		Wscript.Sleep 100
		objShell.SendKeys arrRDPList(1)

		Wscript.Sleep 100
		objShell.SendKeys "{TAB}"
		Wscript.Sleep 100
		objShell.SendKeys "{TAB}"
		objShell.SendKeys arrRDPList(2)

		Wscript.Sleep 100
		objShell.SendKeys "{TAB}"

		objShell.SendKeys "{TAB}"
		objShell.SendKeys arrRDPList(3)

		objShell.SendKeys "{TAB}"
		objShell.SendKeys " "

		objShell.SendKeys "{ENTER}"
		Wscript.Sleep 100

		' turn on drive sharing
		Wscript.Sleep 100
		objShell.SendKeys "{TAB}"
		objShell.SendKeys "{END}"
		objShell.SendKeys "+{F10}"
		objShell.SendKeys "r"
		objShell.SendKeys "+{TAB}"
		objShell.SendKeys "{RIGHT}"
		objShell.SendKeys "{RIGHT}"
		objShell.SendKeys "{TAB}"
		objShell.SendKeys "{TAB}"
		objShell.SendKeys " "
		objShell.SendKeys "{ENTER}"

		' get back to left column
		objShell.SendKeys "+{TAB}"	
	end if	 
Loop

objShell.SendKeys "^s"

WScript.Quit
link|improve this answer
feedback

{I copied this from my answer on StackOverflow, where it was tagged belongs-on-serverfault}

I found a solution. Looks like the msc file has an encrypted area that is just not accessible. So I found a script from Brett Clarke at http://twistingthewick.org. I've modified it a bit to add structure and login information. It uses our old friend SendKeys.

You need to create a CSV with:

server-name-or-ip,description,userid,domain

one per line for each server. You'll have to sort this the way you want it.

You can also add a line to break things up into separate ad-ins using the syntax:

---,some-name,,

some-name is not used; each section is named Remote Desktops. If someone can figure out how to change the name, please let me know.

For now, this seems to work, and allows re-building any time you need to add a server. You might need to tweak the delays on your system.

Oh, and this probably won't work on Vista or Windows 7 as the SendKeys method has been disabled for security purposes.

I like to share drives, so this script checks that box. You can modify it to do pretty much anything you need.

First, though, you need to start out with a blank tsmmc.msc file. Open MMC and add a Remote Desktops snap-in. The script wants it called blanktsmmc.msc in c:\Projects\SortMmc. Of course, you'll need to have the Windows Admin Pak loaded.

Script is utilitarian, designed for speed of coding, not elegance. If you make improvements, please share.

' CreateTSMMC.vbs
' Script to re-create tsmmc entries in order
' Author: Brett Clarke http://twistingthewick.org
' Version: 0.1 – 21/06/2007
'
' Updated by Brian Travis, adding login and drive info
' Version: 0.2 - 2009-08-26
'———————————————————————

'Declare some variables
Option Explicit
Const ForReading = 1
Dim objShell, objFSO, objFileCopy, objDictionary, objTextFile
Dim strBlankMMC, strWorkingMMC, strTemplate, strNextLine
Dim arrRDPList
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDictionary = CreateObject("Scripting.Dictionary")
strBlankMMC = "c:\Projects\SortTsmmc\blanktsmmc.msc"
strWorkingMMC = "c:\windows\system32\tsmmc.msc"
strTemplate = "c:\Projects\SortTsmmc\tsmmc.csv"
Set objFileCopy = objFSO.GetFile(strBlankMMC)
Set objTextFile = objFSO.OpenTextFile (strTemplate, ForReading)

' copy the blank template file over the working file
objFileCopy.Copy (strWorkingMMC)

' start up MMC
objShell.Run "c:\windows\system32\tsmmc.msc"

' wait for the app to start
Wscript.Sleep 1500

' get to the plugin
objShell.SendKeys "{DOWN}"

' read the CSV file, and parse the entries into the MMC session
Do Until objTextFile.AtEndOfStream
		strNextLine = objTextFile.ReadLine
		arrRDPList = Split(strNextLine , ",")

		if arrRDPList(0) = "---" then
				' create a new group
				objShell.SendKeys "%f"
				objShell.SendKeys "m"
				objShell.SendKeys "%d"
				objShell.SendKeys "rem"
				objShell.SendKeys "%a"
				objShell.SendKeys "%c"
				objShell.SendKeys "{ENTER}"
				objShell.SendKeys "{END}"
		else
				objShell.SendKeys "+{F10}"
				objShell.SendKeys "A"
				objShell.SendKeys arrRDPList(0)
				objShell.SendKeys "{TAB}"
				Wscript.Sleep 100
				objShell.SendKeys "{TAB}"
				Wscript.Sleep 100
				objShell.SendKeys arrRDPList(1)

				Wscript.Sleep 100
				objShell.SendKeys "{TAB}"
				Wscript.Sleep 100
				objShell.SendKeys "{TAB}"
				objShell.SendKeys arrRDPList(2)

				Wscript.Sleep 100
				objShell.SendKeys "{TAB}"

				objShell.SendKeys "{TAB}"
				objShell.SendKeys arrRDPList(3)

				objShell.SendKeys "{TAB}"
				objShell.SendKeys " "

				objShell.SendKeys "{ENTER}"
				Wscript.Sleep 100

				' turn on drive sharing
				Wscript.Sleep 100
				objShell.SendKeys "{TAB}"
				objShell.SendKeys "{END}"
				objShell.SendKeys "+{F10}"
				objShell.SendKeys "r"
				objShell.SendKeys "+{TAB}"
				objShell.SendKeys "{RIGHT}"
				objShell.SendKeys "{RIGHT}"
				objShell.SendKeys "{TAB}"
				objShell.SendKeys "{TAB}"
				objShell.SendKeys " "
				objShell.SendKeys "{ENTER}"

				' get back to left column
				objShell.SendKeys "+{TAB}"      
		end if   
Loop

objShell.SendKeys "^s"

WScript.Quit
link|improve this answer
feedback

Nice update, Brian. I was looking in to having seperate sections with different names as well (AD, Exchange, etc...), but I don't think there is any way to do it via scripting. As far as I can tell, the way to do it is to create a new MMC snap-in (using some SDK) based on the existing Remote Desktops snap-in, named whatever you want the section to be called. Some good googling should get you headed in the right direction.

Cheers Brett

link|improve this answer
feedback

In the tsmmc.msc there is a section that can be modified. If you add another String ID="#" then you can associate that ID with any String Name="Name" ID=#

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.