A great tool we found at this site www.remkoweijnen.nl

——

Remco wrote a little commandline tool that starts an RDP connection (with mstsc.exe) because mstsc doesn’t allow you to use the login credentials (username, password) as commandline arguments.

Download: Here is the download of the Launch RDP program

Arguments are:

  1. Servername (string)
  2. Port (integer, usually 3389)
  3. Username (string)
  4. Domain (string)
  5. Password (string)
  6. Console (integer, specify 0 for false and 1 for true)
  7. RedirectDrives (integer, specify 0 for false and 1 for true)
  8. RedirectPrinters (integer, specify 0 for false and 1 for true)

Examples:
LaunchRDP MyServer 3389 User Domain Password 0 0 0

For v6 Terminal Server client it also fixes the annoying “do you trust the computer dialog” (shown below) by adding a registry key for the computer you connect to. So next time you connect you won’t be bothered!

We were running several Windows 2012 R2 servers on a VMware ESX environment. And still, we experience a sluggish performance on the Windows 2012R2 server when connection them with any RDP-client. We tried different connections (wifi, 4G, LAN, etc.) and different clients (Windows 10 RDP, RoyalTS, Mac-RDP, etc.). The hardware could’t be a factor in the issue. So we searched to some finetune-settings in GPO and registry.

The hardware wasn’t an issue.

  • the servers did’t have a high overall load
  • there was no high CPU load
  • there was enough RAM
  • we used 15k HP SAS enterprise disks
  • there was no high IO
  • we had Teamed the NICs in VMware

This is what we did to solve the issue and get very fast RDP-performance.

  • Finetune “Remote Desktop Services” in Group Policy

Just wanted to post this for anyone else experiencing this issue.  Seems the issue does not effect Windows Server 2012 R2, and turns out it might be related to the UDP packets getting fragmenting when creating a RDP session.  Here’s the fix:

Computer Config > Windows Settings > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections > Select RDP transport protocol = Use only TCP

You can also set this on the client side by specifying:

Computer Config > Windows Settings > Admin Templates > Windows Components > Remote Desktop Services > Remote Desktop Connection Client > Turn off UDP on Client = Enabled

 

  • Disabling TCP Offloading in Windows Server 2012

We also add below registry setting to improve performance. A little explanation of TCP Offloading:

“TCP offload engine is a function used in network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. By moving some or all of the processing to dedicated hardware, a TCP offload engine frees the system’s main CPU for other tasks. However, TCP offloading has been known to cause some issues, and disabling it can help avoid these issues.”

 

 

This is what you must do in the Registry

1. Open RegEdit on the Windows Server machine.
2. Navigate to this registry key in the tree on the left:
3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
4. Right-click on the right side, and add a new DWORD (32-bit) Value
5. Set the value name to DisableTaskOffload and the value data to 1
6. Reconnect to the Server via RDP (to a new session) and your performance should be normal.

Often our server and workstation doesn’t have the right time. Best way is to change the NTP time server on the Domain Controller. Here’s how to change your time server from what ever it is now to another NTP server.

 

Below steps must be perform on the domain controller.

  1. Open the command prompt and type: net stop w32time
  2. Configure the external time sources, type: w32tm /config /syncfromflags:manual /manualpeerlist:0.pool.ntp.org
  3. Make your PDC a reliable time source for the clients. Type: w32tm /config /reliable:yes
  4. Start the w32time service: net start w32time
  5. The windows time service should begin synchronizing the time. You can check the external NTP servers in the time configuration by typing: w32tm /query /configuration
  6. Check the Event Viewer for any errors.

 

Another good source and more details  can be found here:
http://www.thirdtier.net/2011/02/how-to-set-an-ntp-time-server-in-windows-2008-sbs-2008-and-sbs-2011/