Turn Screensaver on and off Between Thin and Fat Clients with Login AM Filters
A customer of us is providing published Desktops for their end users on Citrix XenApp. Most of the users are provided with Thin Clients but some still require a Fat Client for traveling. A mandatory company rule dictates the use of a screensaver with password lock enabled. Due to that rule a general screensaver has been provided to fat clients and remote desktop servers. The thin clients used are only providing published desktops and are not able to have a screensaver with user authentication enabled.
Fat client users started complaining about that rule, because they had to enter their password twice when they left their workplace for a couple of minutes. The screensaver was active on their local computer and also active in their published desktop session.
I have been asked to create a solution which enables the screensaver in a remote desktop session only if the client device is a thin client.
Switching the screensaver on and off
The current screensaver settings are located in the user profile. To configure it I looked up these registry entries listed below.
[HKEY_CURRENT_USER\Control Panel\Desktop] "ScreenSaveActive"="1" "SCRNSAVE.EXE"="C:\\Windows\\system32\\scrnsave.scr" "ScreenSaveTimeOut"="600" "ScreenSaverIsSecure"="1"
Registry entries to enable the screensaver
[HKEY_CURRENT_USER\Control Panel\Desktop] "ScreenSaveActive"="1" "SCRNSAVE.EXE"=- "ScreenSaveTimeOut"=- "ScreenSaverIsSecure"=-
Registry entries to disable the screensaver
Unfortunately it is not enough to import a registry file. The changes will not be recognized if the session is already running, so I looked up the SystemParametersInfo Windows API call which contains a set of functions to control the screensaver and also allows getting these settings applied in the current session. I created a small executable which will be called by the StartProcess ActionItem after registry settings have been imported.
How to differentiate between thin clients and fat clients
A naming convention for client devices is in place which allows using a rule based on the client name. All thin clients are enforced to start with a “TC” in their name, so I already found an identifier to differentiate between thin clients and fat clients. I was now able to use the environment variable %CLIENTNAME% and run different actions based on that value. Login AM has a lot of built in filters which allows the creation of a process flow based on return values. In that case I used the “EnvVar” filter to identify the client device and run different Action Sets to configure the screensaver accordingly.
Implementing filters in Action Sets
The user Logon Phase will now run different actions based on the client name. The Login AM implementation is shown in the screenshot below.
User Logon Phase for ThincClients
After identifying the actions to configure the screensaver and activate the settings in the current session it was very easy to adopt this into Login AM. The customer is very happy with that simple but effective solution, which indeed increased the overall user experience.
Start using Login VSI today
Our industry-standard software is built to help you avoid problems, lower costs and improve performance. Request a Quote or get your free Trial below, and benefit from our award-winning services.
About the company Login VSI
The company Login VSI provides end-user performance insights for virtualized desktop and server-based computing environments. Enterprise IT departments use flagship product Login VSI (for load testing) and Login PI (for continuity testing) in all phases of their virtual desktop deployment—from planning to deployment to change management—to build and safeguard a good performance, a high availability, and (as a result) a good and consistent end-user experience. For more information about Login VSI or for a free test license contact us.