Terminal Services installation guide
Machines running Citrix and sSAP GUI Virtual Users may be limited in the number of Virtual Users they can run, due to the graphic resources available to that machine.
You can generate a higher number of Virtual Users on high-end servers (high CPU, high memory) by using several Remote Desktop Services sessions on the same machine.
NeoLoad can remotely start as many Windows sessions as required on each Windows Server used as Load Generator. Each Windows session automatically starts a Load Generator process which is automatically added to the list of available Load Generators for the zone.
For more information, see Terminal Services.
This document describes how to install and configure Load Generators in Terminal services mode on a Windows Server and use them in a Controller.
Prerequisites
The following elements are necessary on the Windows Server:
-
Windows Server must be configured to authorize remote desktop sessions. The appropriate role must then be added on the server. For Windows 2008, the server role is called "Terminal Services" and "Remote Desktop Services" for later versions.
Note: For some OS, setting the Terminal Services role will install the RDP service.
-
Several sessions can be started with the same username. For more information, see Allow multiple Remote Desktop sessions per user.
-
Allow RDP to start any program or add
LoadGeneratorAgent.exe
to the list of allowed RDP applications. For more information, see Allow remote start of unlisted programs.
-
UAC must be disabled.
-
The following ports must be opened on the firewall between the Controller and the Windows Server:
-
tcp 445
-
tcp 139
-
tcp 135
-
udp 137
-
tcp 3389
-
tcp 7100-7151
-
Allow multiple Remote Desktop sessions per user
To allow multiple Remote Desktop sessions per user, follow these steps:
-
Launch the Registry Editor.
-
In the Registry Editor go to
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer
. -
On selecting the TerminalServices Registry, you can see the
fSingleSessionPerUser
registry key on the right panel. If the key is not available then create a new key by right clicking TerminalServices and selecting New > DWORD. -
Double click the
fSingleSessionPerUser
key. Change the value from "1" to "0". The value "1" means single session for each user and "0" means multiple sessions for each user. -
Click OK to validate the settings.
Allow remote start of unlisted programs
To allow remote start of unlisted programs on Windows 2008 and 2012, follow these steps:
-
Launch the Registry Editor.
-
In the Registry Editor go to
HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
. -
On selecting the TerminalServices Registry, you can see the
fAllowUnlistedRemotePrograms registry
key on the right panel. If the key is not available then create a new key by right clicking TerminalServices and selecting New > REG_DWORD. -
Double click the
fAllowUnlistedRemotePrograms
key . Change the value from "0" to "1". -
Click OK to validate the settings.
To allow remote start of unlisted programs on Windows 2016, follow these steps:
-
Launch the Registry Editor.
-
In the Registry Editor go to
HKEY_LOCAL_MACHINE\ SOFTWARE\\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList
. -
On selecting the TSAppAllowList Registry, you can see the
fDisabledAllowList
registry key on the right panel. If the key is not available then create a new key by right clicking TerminalServices and selecting New > REG_DWORD. -
Double click the
fDisabledAllowList
key . Change the value from "0" to "1". -
Click OKto validate the settings.
Install a Load Generator Agent on a Windows Server
To install a Load Generator Agent on a Windows server, follow these steps:
-
Install a Load Generator Agent x86 on the Windows Server using
NeoLoad_6_7_0_windows_x86.exe
in the default installation folder. Do not install the service and do not run it after installation. -
Edit the
agent.properties
file in<install-dir>/conf/agent.properties
: In the [LoadGenerator] section, set thelg.start.delay
key to "60000".
Install the Controller
Before launching the Controller, it must be configured for use with the Load Generators in Terminal Services mode.
To install the Controller, follow these steps:
-
Install a Controller x64 using
NeoLoad_6_7_0_windows_x64.exe
. -
Edit the
controller.properties
file in<install-dir>/conf/controller.properties
: In the [Runtime] section, set theengines.init.pool.size
key to "4".
Use the Terminal Services mode in the Controller
For more information about how to use the Terminal Services mode with the NeoLoad Controller, see Terminal Services.
Advanced configuration
To customize the RDP launched by NeoLoad, when you tried at least once to launch the RDP from NeoLoad, select Help>Open Logs Folder, then select the "conf" folder in Windows explorer. Finally you can see and edit the terminal-services-template.rdp
file.
In the [TerminalServices] section of the controller.properties
file, the behavior of the Terminal Services feature can be configured on Controller side.
The table below identifies the keys to be edited according to the behavior expected.
Key | Behavior |
---|---|
terminal.services.rdp.launching.parrallel.count=4
|
When launching RDP on client, this is the number of RDPs launched in parallel. |
terminal.services.rdp.launching.delay=15000
|
When launching RDP on client, this is the delay in "ms" between two RDPs launch. |
terminal.services.rdp.remote.check.delay=7000
|
When launching RDP on client, this is the delay to refresh the sessions opened on server side. |
terminal.services.polling.start.port=7101
|
When binding sessions, this is the starting port for the range of polling. |
terminal.services.polling.range=50
|
When binding sessions, this is the range from the starting port, so by default it will scan 7101-7151 ports. |
terminal.services.polling.parallel.count=20 |
When binding sessions, this is the number of ports scanned in parallel. |
terminal.services.polling.delay=7000
|
When binding new sessions, this is the delay in "ms" between two ranges scan. |
terminal.services.rdp.disconnect.parrallel.count=10
|
When stopping sessions, this is the number of sessions stopped at the same time. |
terminal.services.remote.command.timeout=60000
|
For any command executed remotely on the server, this is the general timeout in ms. |