16

My home network consists of a couple Windows XP machines and a Windows 7 box. One of the Windows XP boxes is like a shared server accessed via Remote Desktop. I have an account on there and my gf has another.
Previously I was able to save RDC shortcuts to this shared server including credentials. So in order to access the server from a computer on the network, I just needed to open the shortcut. I thus would have two shortcuts, one for my account and one for my gf's.

In Windows 7, it seems to store credentials for a box based on machine name. I.e. I can only store one set of credentials per machine name. This seems incredibly stupid so my question is:
In Windows 7, is there some way to have RDC shortcuts that use different credentials to login to the same target box?

2
  • 4
    Just wanted to say that this new behavior (only allowing the possibility of saving one set of credentials per login per target machine) is incredibly obnoxious. Leave it to MS to gimp their OS whenever and wherever possible, and call it 'progress' ;(
    – Mordachai
    Jul 20, 2010 at 20:58
  • 1
    agree, it is quite retarded. i'm sure they thought they had some great reason for this, but in the end it totally ruins perfectly reasonable use cases and workflows.
    – w--
    Jul 26, 2010 at 18:47

10 Answers 10

8

After a bit of digging I have found your problem. The more recent versions of remote desktop don't save the password information in the RDP file. This is a change, probably due to security concerns. I'm not sure where this information is stored, but I do know that it is user specific information. That change has the affect of limiting the number of saved credentials per host machine (the XP media box) to one.

If you want to have different users have different saved credentials, you'll need to create more user accounts on your client machines. When a person sits down at a machine, they will need to specify their user name to log into that machine, and then launch RDP to connect to the remote host. This separation will allow you to have separate saved RDP credential stores.

3
  • Thanks for digging. This sounds like a pretty definitive answer on the topic.
    – w--
    Jul 3, 2010 at 0:00
  • 5
    The limitation is incredibly annoying, but I was able to get around it by adding the remote machine's IP several times to my local hosts file under different fake aliases, which allows the passwords to be saved separately. So in your hosts file, put: 192.168.0.100 bob.local and 192.168.0.100 sally.local and so on, and then connect to bob.local using RDP. This also works if you connect to many different computers behind a NAT with port forwarding. I can save logins to several different machines at work, each one having a different dummy alias and port number.
    – degenerate
    Jun 25, 2016 at 11:12
  • @degenerate It works but don't know why it not storing credentials for any of the user. The whole point is saving the credentials.
    – Saqib
    Jul 20, 2022 at 6:15
17

If haven't tested this but it should work. Create an alias for the Windows XP 'server' either in DNS (cname) or in the Hosts file on the Win7 box. Then you should be able to setup a connection to the alias, and it would be a 'different machine' so RDP should store the credentials separately.

Windows 7 saves one password per alias per client profile. Just add an alias to your hosts file and save the connection to that alias as a separate RDP file. Note that you might not be able to save the password if you are on a domain, because it won't trust the certificate of this "new" machine.

3
  • 1
    thanks for tip. using a DNS alias is the workaround i'm already using to get around the issue. it works, it's just annoying.
    – w--
    Jul 2, 2010 at 23:59
  • 2
    Just a tip: if you only need two logins, then connecting using the FQDN vs. the hostname alone is enough for Windows to store a separate credential. (i.e. rdp://server vs. rdp://server.example.com)
    – NReilingh
    Mar 3, 2014 at 2:50
  • A cname/ dns alias is is too much, if you are the only one who needs sveral shrotcuts with diffrerent credentials, the hosts file would be the best place for this. If you have 5 different accounts, respectively 5 diff connections, you would need 5 aliases... Hosts file rules.
    – Legends
    Jun 6, 2016 at 13:38
9

The following solution works perfectly if you have sufficient privileges on your local machine to edit its host file:

  1. Open the Windows host file ("hosts") from \Windows\System32\drivers\etc in notepad
  2. In Windows 7/8 you might have to grant yourself full control permissions on the file through properties > edit permissions > Add > define 'full control' permissions
  3. Define alternative DNS names for the IP address you wish to connect to with RDP. Example:>

192.168.1.20 Test1.localnetwork

192.168.1.20 Test2.localnetwork

192.168.1.20 Test3.localnetwork

#Note: the ".localnetwork" suffix is not required; you can define any name here

  1. Save the host file
  2. Open the RDP client and enter 1 of your alternative DNS names. Note: port numbers should be entered after the DNS name, for example: Test1.localnetwork:80
  3. Save the RDP settings with different file names.
  4. You can easily define different user names and save their different credentials.
3
  • Awesome instructions and worked perfectly. Thank you for posting this.
    – ciso
    Nov 6, 2014 at 22:29
  • This is a fantastic workaround and works great. It should be marked as the correct answer!
    – degenerate
    Jun 25, 2016 at 11:18
  • This works great, even with tunneling. Create different localhost names (127.0.0.1) for port forwarding. Working with PuTTY + mstsc.exe and Windows 10.
    – LincolnP
    Sep 14, 2022 at 12:32
5

A cheap solution if you only want two connections from your machine to a remote machine is two setup one connection using the target machines name and the second one using the target machines IP address.

This fools Windows-7 ( and others ) into believing that the connection is to two different machines and it then doesn't confuse the credentials.

3
  • +1 Super simple, as long as it's a static address. Thank you!
    – user49214
    Jul 20, 2012 at 14:39
  • Thx for answering. I'm using this solution also.
    – w--
    Sep 13, 2012 at 18:35
  • Nice! Can be extended to any number of credentials if you add bogus entries to the hosts file, such as "user4.myserver.example.com", or to the server's DNS records directly.
    – RomanSt
    May 13, 2013 at 8:40
3

The problem can be solved by using the product Royal TS, an RDP client program that offers more features than the standard Windows Remote Desktop Client. (version 1.5 is still freeware).

This product does use the Windows Remote Desktop ActiveX, same as RDP, but embedded in its own windows. These windows can be organized in tabs, so you can enjoy multi-tab remote desktop.

Most important for you, you can define multiple logins, each with its own user name and password (unlike Microsoft's RDP which only remembers the last login). You can even access the same site concurrently through multiple windows with different/same logins for each window. The logins can be organized in a 2-level hierarchical tree.

image

1
  • A couple of things to watch out for. The version 1.5 on-line help is no longer available, but you can manage without. Also, it seems to not work with NLA so you have to uncheck "Allow connections only from computers running Remote Desktop with Network Level Authentication" on the target host. If you don't do this you will get a 2825 error. Jul 25, 2014 at 4:10
2

Go to %SystemRoot%\system32\ folder on your current PC, copy mstsc.exe and mstscax.dll. Save these files in a folder where you know you can find them later.

Then get a Windows XP CD or go to %SystemRoot%\system32\ on an XP machine. Copy mstsc.exe and mstscax.dll from it; paste it into %SystemRoot%\system32\ folder on your current PC. Answer "Yes" to overwrite the current files. You now have the old version of RDP client and can save each users logon credentials.

After you paste in the old RDP client files above; Right click each RDP connection you have, Left click “Edit”, make the user/password changes, select the “Save my password” checkbox, click “Save as”, Name the RDP and save each one. This will embed each username and password into each RDP file itself.

If you like the functionality of the newer RDP client, once you have saved the credentials as above, copy and paste the newer version of the mstsc.exe and mstscax.dll files back into your %SystemRoot%\system32\ folder and your RDP client credentials will still be saved in their files.

However, if you want to add another new RDP connection to the same remote computer, with different credentials, you will have to do the above all over.

This works for people with XP SP3 as well.
Me personally, I just kept the old client.

1
  • nice. creative. never thought of doing it this way.
    – w--
    Apr 11, 2012 at 1:58
1

A possible workaround is to save the rdp connection for the second user on some other machine to which I connect via rdp. Not nice, but it saves me retyping the password again and again.

1

Open the .rdp files in Notepad and add this line at the end:

username:s:domain\username

Save the .RDP files as different filenames. This works since saving the user from the GUI doesn't add the user to the .RDP file.

1
  • It seems that you have to select "Always ask for credentials" for this to work, which means you have to enter the password each time. Jul 25, 2014 at 3:53
0

Actually, windows saves the RDP connection in a file that is stored on your user profile. The last connection made from a machine is saved as "default.rdp". All you need to do is setup the connection, go to the general tab, and hit the "Save As..." button. This will give you the option to create a file that will store your session information. Make a shortcut on your desktop and you are good to go.

This behavior should only happen if you share a user account on the client machine. If you want different experiences, setup a second user on the win 7 machine and you won't see each others' last session.

2
  • hi, thanks for the reply. yes the point is i have one account on the client win 7 machine. i find it stupid that i can't have two seperate connection shortcuts that connect using different credentials. In case it wasn't clear, i've already attempted what you describe but the result is that it will only save the connection info, not the credentials. As you mention, it only remembers the "last" credentials used to connect to that machine. is there no way to accomplish my original goal?
    – w--
    Jun 15, 2010 at 7:35
  • You are correct, older versions of RDP did save this information to files, but not anymore. See my other answer, you'll need to have two accounts on your RDP client machines. Jun 15, 2010 at 18:15
0

@Patrick, thanks for your answer on how to use different credentials to logon to the same server. This is still a relevant issue in Win 10. I took your ../etc/hosts file suggestion and added names to the same line, one hostname for each credential. Then I set up an .rdp file for each hostname with their own credential (hostname-user1.rdp, hostname-user2.rdp). Works like a charm.

C:\Windows\System32\drivers\etc\hosts file example:

"IP address" "hostname" "hostname-user1" "hostname-user2"

enter image description here

1
  • 1
    As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
    – Community Bot
    Aug 29, 2023 at 18:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .