We have had issues where RDP users haven’t been able to login on a remote desktop terminal server when the “user much change password at next logon” button has been checked in user properties – see screenshot #1 below. Various comments and posts online indicate that changes in the windows authentication process in recent OS versions don’t allow this change if Network Level Authentication or Credential Security Support Provider (CredSSP) is enabled. This is only an issue trying to force users to change their password on a RDP session – it works fine from a console session if you are local to the machine. Here is a workaround as well as alternatives you may consider:
- Don’t use this option to force users to change their password. Instead, have them manually change it upon logon by pressing control-alt-end and following the change password prompts. Another option is to create a complex, strong password for them without having them change it upon first logon (may be safest route in certain situations) or have them select their own password but enter it with the Administrator while on the admin session and not select the change at next logon option.
- NOT RECOMMENDED IN GENERAL – If you still want to use this option to force password change, you could turn off NLA and change RDP security layer to the RDP native security. See screenshot #2 below on turning off NLA. See screenshot #3 below on enabling a group policy to select the RDP security layer instead of negotiate (typically the default) or SSL/TLS. Using NLA and the higher security layers are usually recommended on your server for security reasons.
- Note: if you are having issues logging in to the server from RDP and getting errors about domain validation (when in workgroup mode and there is no domain) and often from the MAC remote desktop client, make sure you are logging in with the full name which is “machinename\username” instead of just username. Machinename is the name given to the server, which you can see under computer properties.
This post is about how to shadow a session if the server is not connected to a domain. If the server is connected to a domain, you can go to server manager, RDS Manager, and right click on current sessions to shadow and connect. When the server is in Workgroup mode (not connected to domain) the Remote Desktop Services Manager page is not accessible in Server Manager. To shadow another user’s sessions in Windows Server 2012 R2 in Workgroup mode, use the following steps:
1) Open command window by clicking start, CMD. You must be using an account with administrative privileges. If you are using an account with administrative privileges that isn’t the named Administrator account, you must run in administrator mode (right click on cmd and click run as administrator)
2) Type quser.exe to determine the session number of the user session you want to shadow.
C:\Users\administrator.computer>quser.exe (note: typing “>qwinsta” without .exe will show similar information)
USERNAME SESSIONNAME ID STATE
administrator rdp-tcp#0 1 Active
user1 rdp-tcp#1 3 Active
3) In this example, the Administrator is going to shadow the user1 session which is session 3. You need to know the session number (“3”) for the next step.
4) Start shadow session by typing “mstsc /shadow:# /control” where # is the session number to shadow and /control allows you to control the session.
C:\Users\administrator.computer>mstsc /shadow:3 /control
5) The other user (user1 in this example) will get a popup called “remote control request” and must press Yes before shadow session will open.
6) The shadow session will open and you’ll be able to view the user1 session desktop screen.
Windows Server 2012 or 2012 R2 reboots after installing Windows Updates during inconvenient times that don’t make sense and you would like to modify settings in a more similar way as with Windows Server 2008 R2. Windows 2012 by default restarts 3 days after the installation of Windows Updates instead of 15 minutes which was used in 2008 R2, BUT the restart counter only begins counting down when a user can see it (see Microsoft Technet link below). In addition, it appears that in some situations the restart counter is temporarily disabled when you logoff/disconnect. According to the MSDN blog post below, if after 3 days it is detected that critical applications are open or running in the background or the PC is locked, etc., Windows Update will wait to automatically restart the next time a user logs on with a warning that the machine will be rebooted within 15 minutes.
Although these changes are meant to minimize data loss by providing additional time and warnings prior to reboots, this change in logic can cause confusing timing of reboots of the server and you may wish to have more control over the timing.
If using Windows 2012, make sure KB2885694 (included in update rollup KB2883201 which is what you will see in installed updates) is installed on your server which should already be there since it was released in year 2013. Windows 2012 R2 already includes these new group policy settings.
Modify the group policy settings located here. Open Local Group Policy Editor by typing Gpedit.msc. Go to: Computer Configuration / Administrative Templates / Windows Components / Windows Update.
1. Enable the “Configure Automatic Updates” group policy. Use value of 4. If you want to select a schedule day & time, do NOT check the automatic maintenance box.
2. Enable the “Always automatically restart at the schedule time” group policy. This will allow reboots/restarts approximately 15 minutes after the updates are installed instead of 3 days later. The restart timer can’t be postponed once started and a restart will occur even if users are signed on.
These changes should make automatic updates act similar to the behavior experienced in Windows Server 2008.
|Force updates and restarts at a specific time. For example:
- Install updates on Friday nights at 11PM
- Force a restart soon after installation
|Use the Configure Automatic Updates policy:
- Enable the policy
- Use option #4 – Auto download and schedule the install
- Deselect “Install during automatic maintenance”
- Set “6 – Every Friday” for the scheduled install day
- Set “23:00” for the scheduled install time
Use the Always automatically restart at the scheduled time policy:
- Enable the policy
- Configure the timer to the desired value (default is 15 minutes)
See links below from Microsoft for information that was used in the above post:
By default, Remote Desktop Services allows users to disconnect from a remote session without logging off the server and ending the session. When a session is in a disconnected state, running programs are kept active even though the user is no longer actively connected. A disconnected session continues to consume server resources and we recommend that you set policies to end disconnected session after a period of time. Sessions are ended/closed out if the user Logs Off from the server (start -> logoff) but are not ended if the user simply clicks the X in the upper corner to close the RDP window.
You can limit the amount of time that active, disconnected, and idle sessions remain on the server. Two methods are described below:
#1 — User Properties to set session time limits per user:
In each user’s properties window, under sessions tab, you can change the default of “end a disconnected session” from NEVER to X hours/days as well as change the other settings.
#2 — Group Policy to set session time limits for all users:
- Cmd prompt, gpedit.msc
- Computer Configuration, Admin Templates, Windows Components, Remote Desktop Services, Remote Desktop Session Host, Session Time Limits
- Enable appropriate group policies and modify as needed
- We recommend setting this one because it will prevent disconnected sessions from consuming server resources — “Set time limit for disconnect sessions”
- After modifying group policies, you can force an update without rebooting by typing “gpupdate /force” at cmd prompt
#3 — If Windows Server 2008R2, you can modify these settings in RD Session Host Configuration too
To configure session settings on a windows 2008R2 server with Remote Desktop Services role installed, go to start -> administrative tools -> remote desktop services -> RD Session Host Configuration. Then right click RDP-Tcp properties, Sessions tab, and enter value to end a disconnect session after a specific period of time, end an idle session, etc. (tsconfig.msc also opens the RD Session Host Configuration window). More details can be found here: http://technet.microsoft.com/en-us/library/cc754272.aspx
There are Remote Desktop Client apps for a variety of devices. The Remote Desktop Connection client is automatically built in to Windows PCs but you can download the client app for MACs, iphones, ipads android devices, etc.
Below is the link (as of September 4, 2015) for the Microsoft Remote Desktop Client for Android:
Automatically launching a program or application upon login to a Remote Desktop Session. See below for methods to use the “start program at login” policy which can be configured per user. Another method to limit specific programs to a user is via RemoteApp. We have several other posts regarding RemoteApp and how to set it up and its limitations (i.e. RemoteApp setup is easier in 2008R2 (works in Workgroup mode) than 2012R2 but RDweb requires ActiveX (so IE only) and it doesn’t work for MAC users, while use of RemoteApp in 2012R2 requires joining to a Domain).
1) USING ENVIRONMENT TAB OF EACH USER’S PROPERTIES ON SERVER: If you want a program to automatically start when a user logs on to the RDP server instead of showing a full desktop session, you can configure this in the Environment tab of the Properties window for each particular user.
After you have made the changes, you should test that it works properly for your users by logging into the server using the accounts you changed/created including testing it with simultaneous sessions and to verify the sessions close properly when the application is closed.
We highly recommend enabling policy to log off disconnected sessions:
- Enable policy to log off disconnected sessions immediately or within a few minutes so you don’t have a blank screen if users don’t properly exist a program. Existing the program (instead of clicking X in upper right corner of program) will properly log off the session but enabling this policy will ensure that an improper disconnected session is automatically logged off. See block post here for instructions on how to enable this policy on both 2012R2 and 2008R2 http://www.riptidehosting.com/blog/how-to-set-time-limit-for-disconnected-sessions-windows-server-2012r2/
2) USING PROGRAMS TAB ON REMOTE DESKTOP CLIENT – Another method is to use the programs tab on your local remote desktop client prior to logging in to the server. On the programs tab, you can enter the path for program to start upon login. You can also create a RDP shortcut with this information saved on to your desktop. We have a video on our website on creating RDP shortcuts – https://youtu.be/iLKSMcIrfqE . A disadvantage to this method versus the first method above is that each user can edit the shortcut and change the settings. Your IT person can create these shortcuts and provide them to each user.
If you use this method on Windows 2008R2, you may have to change settings in RemoteApp under RDP Settings Change and allow access to unlisted programs.
3) USING GROUP POLICY – Another method to configure this is to configure programs to automatically start in the RD Session Host Configuration settings and in Group Policy, although then the logon settings could be applied universally to all users, including the Administrator (which means Administrator may not be able to access the desktop, start button, etc.) whereas the method above allows configuration by User. You could also create a separate group policy that would be applicable for a specific group, such as non-administrators, so the group policy change wouldn’t affect all users.
4) REMOTEAPP – Another method is to configure the RemoteApp feature in Remote Desktop Services (RDS). In 2008R2, this feature works great (either the RemoteApp distributable file or RD Web) for PC users but not for MAC users. In 2012R2, the RemoteApp features requires the Active Directory / Domain Controller service to be install on the server before RemoteApp can be used.
Many people want to use a domain name instead of the IP address of their remote desktop terminal server to login via the Remote Desktop Connection Client (RDC) on their local machine. A domain name is more professional and easier to remember. For example, if you already own the domain www.Denver-Colocation.com and it points to your website then you can create an Alias/Sub-Domain such as RDP.Denver-Colocation.com that points to the IP address of the remote desktop terminal server and use RDP.Denver-Colocation.com to login via the RDC client instead of the IP address.
You create this record and point it to the IP of your RDP server in the DNS Manager settings where your domain is registered. For example, at Go Daddy, you would do the following:
- Login to GoDaddy and click on the domain name you wish to create the record for
- Then go to the second tab which is labeled “DNS Zone File”
- Under the Zone File section, click on “add record”.
- Select record type “A (Host)”
- In the popup window, enter Host Field as “RDP” or whatever you are using but not the full subdomain which would be in this example “RDP.Denver-Colocation.com”
- In the popup window, enter the Points To field as the IP address of your server XXX.XXX.XXX.XXXX and TTL as 1 hour or whatever is default
- Click OK
- Make sure to SAVE RECORD. In our experience, it only takes 5 or 10 minutes to take effect. Once you can ping RDP.Denver-Colocation.com then you can login with the domain name instead of the IP address.
- Test it by logging into your server using RDP.Denver-Colocation.com instead of IP address
REDIRECTION OF PRINTERS / HARD DRIVES / CLIPBOARD FROM YOUR LAPTOP OR DESKTOP
On client laptop/desktop prior to connecting to server:
Local Printing (and redirection of DVD drive, local hard drive, enable copy and paste between client an server, etc.)— When you open the Remote Desktop Connection program on your local laptop/desktop, before pressing “Connect”, click on “Show Options” in the lower left bottom corner. Then go to the local resources tab and make sure that printers is selected (this is also where you can click “more” and share your hard drive so you can easily move files between your PC and sever). Then once you connect and open a document, go file->print, you will see your printer with a label like this:redirected printer #.
You can check “clipboard” and “drives” (under more) which will allow you to cut and paste from you local desktop to the server (clipboard) or see the redirected drives in windows explorer (drives) to move files on to the server.
We had a user who was having issues sending email in an older version of outlook on their remote desktop terminal server hosted with Riptide Hosting. The error message upon pressing the send button in Outlook was errors have been detected in the user’s outlook.pst file. This issue was only affecting one user on the terminal server. We ran the Inbox repair tool (scanpst.exe) which took almost 30 minutes to run the scan, after which we pressed repair (which also took a long time and sometimes said “not responding” but eventually completed with the message “Repair Complete”). This repair tool fixed the issue but also erased the smtp account settings in outlook which then needed to be re-entered prior to being able to send/receive email.
Generally we don’t recommend installing FTP on a server unless it is necessary. In some cases, it can be easier to transfer files through RDP. If installing FTP on a remote desktop terminal server and after installation it seems like it is still blocked even though the ports were open on the Windows firewall, try restarting the FTP service. Restarting the FTP service solved this issue. If you are having a similar situation, checks to see that the FTP service is started/running and try restarting it. Also, you should check that the required ports are open on any firewalls used which may be internal and external to the server.
If you are using a remote desktop terminal server, you can transfer files through RDP, by redirecting your local hard drive or via clipboard (cut & paste from local machine to server) without having to install FTP, etc.