Skip to main content
Nintex Community Menu Bar
Knowledge Base

Nintex RDP service for Terminal Server Installation


MRepetti
Nintex Employee
Forum|alt.badge.img+9

Topic


Instructions on how to setup Nintex RDP service for Terminal Server.

 

Instructions 

 

1. Download and install .NET Core 3.1 Runtime (v3.1.16)

Download .NET Core 3.1 Runtime (v3.1.16) - Windows x64 Installer

2. Download and install ASP.NET Core 3.1 Runtime 

Download ASP.NET Core 3.1 Runtime (v3.1.16) - Windows x64 Installer

3. Download and extract the Nintex RDP service

Sync | Secure cloud storage that protects your privacy

4. Copy the content of the folder to a location, such as, C:\Nintex\NintexRDP

5. Make sure the files are not blocked by Windows Security (to unblock run PowerShell command)

Get-ChildItem C:\Nintex\NintexRDP\*.* -Recurse | Unblock-File

6. Open the CMD window and go to the NintexRDP folder

cd \Nintex\NintexRDP

7. Check that NintexRDP works properly:

- Run dotnet Nintex.RDPService.API.dll --console
- Open an internet browser and navigate to http://localhost:5000
- You should get the Swagger UI page

8. In the CMD window type:

sc create NintexRDP binPath="C:\Nintex\NintexRDP\Nintex.RDPService.API.exe" type=own start=auto displayName="Nintex RDP service"

9. Open Services console window and check Nintex RDP service is installed.

10. Run the service.
 

Service configuration

Service settings can be changed in the appsettings.json file which is located in the application folder, the one which contains application binaries.

To change service configuration, edit the appsettings.json file in the service root folder and restart the service (re-run console or re-start windows service).

If a relevant Windows service is running you need to stop it before changing the configuration.

Web API configuration settings

Setting

Description

LogFilePath

A path where text log files should be stored.
Set to the relative path: “./logs” be a default.
Could be changed to an absolute path: “c:\\Nintex_rdp”

AppSettings.RdpScreenWidth

Screen width to use for an RDP session window

AppSettings.RdpScreenHeight

Screen height to use for an RDP session window

AppSettings.DefaultRdpPort

Default TCP/IP port to be used for an RDP connection. It Will is ignored in case port is provided in the session start parameters.

AppSettings. DefaultRdpWindowTitlePrefix

Optional. If provided will be used as an RDP window prefix

AppSettings.StartupAppPath

Remote application program. The application should be added to allow remote apps list on the server. Or the server should be configured to allow all remote apps. See the ‘Remote Apps’ section below. If not actually keep it empty. Default value: C:\\program files\\Nintex\\Nintex.exe

AppSettings. StartupAppCmdParams

Remote application command-line parameters. Actual only if ‘StartupAppPath’ is set. Default – empty.

AppSettings. MstscRdpFilesPath

A path to store Mstsc *.rdp files. Rdp files being used to store mstsc arguments. Actual only for mstsc RDP tool.

AppSettings.APITitle

API title to be used on swagger UI

AppSettings.APIDescription

API description to be used on swagger UI

AppSettings. RdpSessionSchedulerEnabled

To enable session’s scheduler should be set to ‘true’. Be default session scheduler is disabled (‘false’)

RdpSessionSchedulerSettings. IntervalSec

Interval in seconds between session scheduler runs. Ignored in case scheduler is disabled. Set to 60 sec by default.

RdpSessionSchedulerSettings. StartDelaySec

Delay before the first scheduler run.
Ignored in case scheduler is disabled. Set to 5 sec by default.

RdpSessionSchedulerSettings. RdpSessionsFile

Path to Excel/JSON file with scheduled sessions settings. See repo ‘Docs’ folder for file examples. Set to "./scheduled_rdp_sessions.json" by default. Could be changed to absolute path "c:\\Nintex_rdp\\scheduled_rdp_sessions.json"

Kestrel.EndPoints.Http.Url

Listening http endpoint for the API web server. Default: http://localhost:5000

Kestrel.EndPoints.Https.Url

Listening https endpoint for the API web server. Default: http://localhost:5001

 

Session Scheduler Configuration

Application support session scheduler feature. When it is enabled, the application will automatically maintain configured RDP sessions active. If the session is canceled – the application will bring it back. 

Scheduled RDP session details could be configured in a JSON file. See JSON file example in NintexRDP service folder - scheduled_rdp_sessions.json.
The JSON file contains a collection of RDP sessions to be maintained active. Each session is represented by a JSON object with properties described in the table below:

Property

Description

MachineAddress

Required. Type: string

Address of the machine to start RDP session on.

Min length: 2; Max length: 256

UserName

Required. Type: string.

User name for an RDP session
Min length: 2; Max length: 256
Format: [{domain}\\]{user} or {user}[@{domain}]

UserPassword

Required. Type: string.

User password for an RDP session.

Min length: 2; Max length: 256

RdpPort

Optional. Type: integer

TCP/IP port to be used for an RDP connection.
Range: 1-65535
Default: 3389 (configurable in appsettings.json)

RdpProtocol

Optional. Type: integer

RDP protocol to use.

Possible options:

  1. FreeRdp (default)

  2. Mstsc

ScreenWidth

Optional. Type: integer

Screen width to use for an RDP session window.

Range: 1-5000

Default: 500 (configurable in appsettings.json)

ScreenHeight

Optional. Type: integer

Screen height to use for an RDP session window.

Range: 1-5000

Default: 400 (configurable in appsettings.json)

WindowTitle

Optional. Type: string

Title to use for an RDP session window.

Min length: 2; Max length: 256

WaitBeforeStartSessionInSeconds

Optional. Type: integer

The timespan in seconds to wait before the RDP session start.

Range: 0-3600

Default: 0 (configurable in appsettings.json)

SessionStartupRegistryValues

Optional. Type: list

The collection of Registry keys and values to modify for Current User hive (HKEY_CURRENT_USER).

 

The next application settings are related to the session scheduler:

AppSettings. RdpSessionSchedulerEnabled

To enable session’s scheduler should be set to ‘true’. Be default session scheduler is disabled (‘false’)

RdpSessionSchedulerSettings. IntervalSec

Interval in seconds between session scheduler runs. Ignored in case scheduler is disabled. Set to 60 sec by default.

RdpSessionSchedulerSettings. StartDelaySec

Delay before first scheduler run.
Ignored in case scheduler is disabled. Set to 20 sec by default.

RdpSessionSchedulerSettings. RdpSessionsFile

Path to Excel/JSON file with scheduled sessions settings. See repo ‘Docs’ folder for file examples. Set to "c:\\Nintex_rdp\\scheduled_rdp_sessions.json" by default.

 

To enable session scheduler make sure the next settings are set in appsettings.json

  1. The following parameter should be set
    AppSettings.RdpSessionSchedulerEnabled=“true”

  2. The following parameter should be set to the valid path (path to excel/JSON file with scheduled session list details
    RdpSessionSchedulerSettings.RdpSessionsFile=”.\\scheduled_rdp_sessions.json”

To verify session scheduler is working, check the log file – there should be an entry per each scheduler run:

Logging

To configure log file location change the following appsettings.json parameter:

  • Absolute path:
    LogFilePath: “C:\\Nintex\\NintexRDP\\logs”

  • Relative path: (relative to exe file location)
    LogFilePath: "./logs"

Logfile entries format can be configured in NLog configuration files: nlog.Production.config.
In particular log entries format can be changed by editing the ‘Layout’ variable in nlog.Production.config.

 Logfile example:


Remote Apps

FreeRdp has the following for the remote application:

/app:||<alias> or <executable path>       Remote application program

/app-name:<app name>     Remote application name for user interface

/app-icon:<icon path>    Remote application icon for user interface

/app-cmd:<parameters>    Remote application command-line parameters

/app-file:<file name>    File to open with remote application

/app-guid:<app guid>     Remote application GUID

Also, the same list of settings can be found here:
xfreerdp: FreeRDP X11 client | freerdp Commands | Man Pages | ManKier

FreeRdp docs mention remote application programs.  What is a Remote Application Program?
RemoteApps are part of the Windows Server 2008 R2 Remote Desktop Services role. Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier. RemoteApp (or TS RemoteApp) is a special mode of RDS, available in Windows Server 2008 R2 and later, where remote session configuration is integrated into the client operating system. Details here.

 

Enable the remote apps on the server


There are two options:

  1. Add particular applications to the allowed remote apps list.
    Applications are configured as RemoteApps using the RemoteApp Manager tool.
    Details on the server configuration to host RemoteApp programs here:
    TS RemoteApp Step-by-Step Guide

  2. Allow all remote apps
    To allow unlisted remote programs to be accessible need to set the following registry key:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
    "fAllowUnlistedRemotePrograms"=dword:00000001
    Detailed information can be found in the links below:
    Error RAIL_EXEC_E_NOT_IN_ALLOWLIST When use /app · Issue #998 · FreeRDP/FreeRDP
    Can RDP clients launch remote applications and not desktops

 

Extended RDP tool configuration with ‘StartupAppCmdParams’ settings.

RDP tool scheduled configuration example:

"AppSettings": {
    "RdpScreenWidth": "1920",
    "RdpScreenHeight": "1080",
    "DefaultRdpPort": "3389",
    "DefaultRdpWindowTitlePrefix": "Nintex",
    "StartupAppPath": "C:\\Windows\\System32\\notepad.exe",
    "StartupAppCmdParams": "ttt.txt",
    "MstscRdpFilesPath": "", 
    "APITitle": "Nintex RDP Service API",
    "APIDescription": "Nintex RDP Service Web API interface", 
    "RdpSessionSchedulerEnabled": "true"
 }

 

 

Translate
Did this topic help you find an answer to your question?

0 replies

Be the first to reply!

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie Settings