Sign In
Sign In

Terminal Server: What It Is and How to Use It

Terminal Server: What It Is and How to Use It
Hostman Team
Technical writer
Windows
15.04.2024
Reading time: 7 min

Let's imagine a theoretical problem related to servicing work PCs. The company has an accounting department that employs about 20 people. Each employee needs their own workstation with a computer to perform work duties. Each computer must have a specific list of software installed to perform the job duties. Let us assume that in our theoretical accounting department, the list of programs for each employee is the same. How can you provide every employee with the hardware and software they need?

The first option is to purchase a personal PC for all accountants and install the necessary licensed software on it.

Another option is to create a terminal server, install the entire list of programs on it, and then provide employees with access to it. In this material, we will discuss what a terminal server is and how it can be used.

Typically, a terminal server is built on the Windows operating system. However, you can also create a Linux terminal server using the LTSP software. Deploy a cloud server on Hostman and install LTSP to run your terminal server on Linux. 

What is a terminal server?

Let's turn to history, namely to the times when mainframes with terminals were used instead of PCs.

A mainframe is a supercomputer or computer with large computing resources. Mainframes are mainly used to process large amounts of information.

To work with mainframes, terminals are used. These are low-power computers whose task is to input and output information. Computing operations are performed on the mainframe, and the results are transmitted to the terminal. Several terminals can be connected to one mainframe: the more powerful the mainframe, the more of them. Each terminal is allocated its own processor time, during which the mainframe performs calculations for that terminal. Due to the mainframe's high performance and low CPU time, many users can work with it simultaneously without affecting performance. 

A terminal server is a shared server or cluster of servers used remotely by end users. In simple terms, it is a high-performance computer that several people use at the same time. The concept is similar to the mainframe, except that mainframe workloads were primarily limited to complex tasks. A terminal server is usually used for everyday tasks, such as servicing the accounting department.

Thin clients, computers whose computing power is limited to performing I/O operations, are used to connect to the terminal server.

There are dedicated devices for use as a thin client, but any home computer will also work.

Architecture of terminal servers

The architecture of a standard terminal server looks like this:

  • a computing center on which the OS and necessary software are installed;

  • licensing service or license server;

  • OS;

  • protocol for data exchange between the server and thin clients, for example, RDP;

  • program for connecting thin clients.

An operating system common to all users is installed on the terminal server, as well as the programs that end users need. In order for users to connect to the terminal server, it is necessary to install and activate special licenses, we will talk about them further in this article. 

Since the operating system is common for all users, you should be careful when choosing the software. User isolation is carried out at the session level using accounts. If an application crashes at the operating system level, it will crash on all clients.

Why do you need a terminal server?

Terminal Server is great for centralized hosting of company software and data. It's cheaper and easier to deploy, but it offers limited capabilities for isolating users from each other.

A terminal server would be a great option if:

  • users do not need administrator rights;

  • applications run smoothly.

In general, the decision to use such an infrastructure option must be made on the basis of its advantages and disadvantages in the context of the tasks facing it.

Advantages and disadvantages

Pros:

  • Remote access to resources, all you need is Internet access;

  • User permissions management;

  • Simple monitoring of the entire infrastructure;

  • Applications are installed once and updated centrally;

  • Reducing the cost of servicing end-user thin clients;

  • Increasing the security of the IT infrastructure.

Cons:

  • Concentration of all computing power and enterprise data on one node. failure of the computer center will lead to downtime;

  • Errors in software and system configuration will affect all users;

  • Limited choice of software.

Terminal Server Licensing

To create a terminal server on Windows Server OS, you need to purchase CAL licenses. There are two main types of CAL licensing:

  • User license. A specific user can connect to the server from any device.
  • Device license. Any number of users can work from one specific device.

Installing and configuring a terminal server

Let’s see how to install and configure a terminal server in Windows Server.

Choosing equipment

When choosing equipment, start with two parameters:

  • number of clients;

  • system requirements of the applications that you plan to deploy.

Next, computing resources and disk space should be considered, including the resources the system will need. For example, if the task is to create an infrastructure with 20 potential users, then you will need approximately the following characteristics:

  • Processor - Xeon E5 and higher;

  • RAM - from 32 GB (1 GB per user, 6 GB for the OS, and 6 GB as a reserve.

Creating a RAID array and providing an uninterruptible power supply is also highly recommended.

Installing Windows Server

  • Download the Windows Server distribution and copy it to a USB drive.

  • Set the BIOS to boot from your drive.

After launch, the installation of Windows Server will begin.

Basic operating system setup

Configure and check the following parameters:

  • System time;

  • IP address;

  • Computer name;

  • Firewall;

  • OS update;

  • Active Directory.

Step 1. Install Roles and Features

  • In the Start menu, open Server Manager and run the "Add Roles and Features" procedure. During installation you must:

  • Select the Role-based or feature-based installation type.

  • Check the Remote desktop services box.

  • In the next window, do not change anything and click Next. 

  • In the Role Services section, select Remote Desktop Licensing, Remote Desktop Session Host, and Remote Desktop Gateway.

At the end of the installation procedure, you need to click on "Promote this server to a domain controller".

Step 2. Setting up Active Directory

  • Open the Active Directory Domain Services Configuration Wizard.

  • Add a new forest.

  • Create a password.

  • Set the NetBIOS name.

  • Click "Install".

After the installation, reboot the computer.

Step 3. Create a Reverse Lookup Zone

  • Open DNS in Server Manager.

  • Go to Reverse lookup zone -> Create new zone.

  • Select Primary zone -> IPv4 Reverse lookup zone.

Step 4. DHCP

When adding roles and features, we have added the DHCP server role. If everything is done correctly, a warning will appear in Server Manager asking you to complete the DHCP configuration. 

  • Click on the link, specify the authorization details, and check the summary. 

  • Go back to the server manager, open DHCP and create a new scope. 

  • Specify the name and starting and ending IP addresses. If necessary, correct the subnet mask.

Step 5. Install Remote Desktop Services

  • Click Add roles and components in the Server Manager again.

  • Select the Remote Desktop Services installation type.

  • Select Quick start.

  • Select Session-based desktop deployment.

  • Select the server and click Deploy.

Step 6. Setting up licenses

  • Go to Tools - Remote Desktop Services and launch the Remote Desktop Licensing Manager.

  • Right-click on the server and select Activate server.

  • During activation, click "Next" and uncheck "Run the license installation wizard." 

  • Return to the Server Manager → Remote Desktop Services → Collections

  • in the top right click Tasks → Edit Deployment Properties. 

  • On the "Licensing" page, select the license type and server name.

Step 7. Install the license

  • Open the Remote Desktop Services Diagnoser.

  • Right-click on the server and select "Install license".

  • Select the license program and enter the license data.

Conclusion

A terminal server is a powerful solution for centralized software hosting and organizing user access to this software. It can provide cost savings, energy efficiency, centralized management, and increased security for businesses and organizations. Users can access the software from anywhere, needing only an Internet connection.

Windows
15.04.2024
Reading time: 7 min

Similar

Windows

How to Create and Use Batch Files

Batch files are text files with .BAT or .CMD extensions that store a set of commands and execute them in the operating system terminal. Such files are necessary to automate standard user work in Windows.  Batch files can be thought of as a Windows alternative for the Unix shell scripts that are used on Linux servers. The creation, configuration, and execution of bat files in Windows, along with the commands to use, will be thoroughly covered in this article. Example of Linux .bat file creation Prerequisites An affordable cloud server from Hostman or a personal computer with the Windows operating system installed. Notepad or another text editor. We recommend using editors with built-in syntax highlighting, for example, Notepad++. Create a batch file To create a Windows bat file, open any text editor and fill it with some content.  As an example, let's create a batch file that will display the message "Hello, user!" in the Command Prompt window: @echo offecho Hello, user!pause Now, you need to save the file using the .bat extension. To do this, go to File → Save as…. If you are using Notepad++, select Batch file in the Save as type field and enter the file name. "Save as" window for starting When using Notepad, select All files as the file type and enter your file name and extension. Choosing type is very important step to move further If you saved the file with the wrong extension, it can be easily fixed by renaming the file and specifying the correct extension.  To do this, you need to enable showing file extensions in the Explorer's View tab. To see if everything's ok, just see extension of the file Syntax of a batch file Below is a list of basic rules that you need to know when using Windows bat scripting: Each command must be entered on a new line. The commands specified in the file are executed strictly in order, from first to last. The exception is those cases when a transition from one part to another is organized inside the file (for example, goto). Indicate directories in quotes to minimize errors. Add |Y| before commands that require confirmation (such as del or format). You can use two types of commands: internal (built-in) and external. The first are the commands of the Command Prompt (cmd.exe) itself (we'll talk about them later). The second type includes all possible executable files (extensions .EXE, .CMD or .BAT). Use @echo off at the beginning of the file to disable displaying the command line after running the batch file. Run a batch file To run a bat file in Windows, simply double-click on it. It is worth considering that some batch files may contain commands that require administrator rights. In that case, right-click on the file and select Run as administrator.  However, if running the file implies some kind of system output, you should run it using the Command Prompt. To launch the Command Prompt, press WIN+R, enter cmd in the input field, and press Enter. A command line window will open, into which you need to drag-and-drop the batch file and press Enter. The batch file will begin executing commands and display the result. Let's run the test file that we created in the previous step and look at the result. If everything works correctly, you will see the message from the file: "Hello, user!". Our .bat file is created Automate .BAT files with Task Scheduler  A useful feature when working with batch files is the ability to run them at certain intervals. To implement this, you will need to use Task Scheduler, a built-in Windows tool. Press WIN+R, enter taskschd.msc in the input field and press Enter. Select Create Basic Task... in the Actions menu on the right.  After this, the Create Basic Task Wizard window will open, where you need to fill out four tabs: Create a Basic Task. Enter the name and description of the task and click Next. Trigger. Specify how often the batch file should be run and at what time. Action. Select Start a program, click Next and specify the path to the batch file. Finish. Check all entered data and click Finish. It's important to check .bat files from time to time The batch file is now added to the Windows schedule and will be run automatically according to your settings. Add comments to batch files When necessary, you can also add comments to .BAT files in Windows. There are three ways to leave comments while writing a batch file: rem. Enter the comment immediately after it: rem your_comment_here Double colon. Works similar to the rem command. :: your_comment_here goto. This one is used not only for commenting, but also for moving to another part of the batch file. After entering the command, indicate a label (in the example below it is start). goto startyour_comment_here:start Each comment must have its own unique tag. Basic commands for .BAT files Below are the main commands used when writing a batch file. Command Argument Description cd Catalogue Going to the specified directory (empty argument returns the current directory). pause - Pausing a batch file. start File path/command Executing the specified program or command in a separate window. md Catalogue Creating a directory. copy Path to source files and destination directory Copying one or more files to a specified directory. del File or directory name Deleting one or more files. call Path to the file to run Running a batch file from another batch file. title Title Changing the window title. move Source and destination path to file/files Moving one file or group of files from one directory to another. color Background and text color (set by number or letter) Changing the background and text color  exit - Terminating the batch file. This is not a complete list. To check all the commands, write help in the Command Prompt. An example of "Help" command Variables You can also use variables when writing a batch file. To add a variable, use the set command. First, enter set, then the variable name, then its value. If you need to access a variable and read its value, add the % symbol on both sides of the variable name. For example:  @echo offset example=Hello, user!echo %example%pause Please note that there are no spaces before or after the equal sign, otherwise the program will not work.  When you run the batch file with this content, the system will output "Hello, user!". Also, when declaring a variable, you can use the /a flag, which allows to assign a number to the variable. For example: @echo offset /a example=2*3echo %example%pause Without the flag, the entire string after the equal sign is assigned to the variable. When run, the program will output the number 6. In addition to regular variables, there are argument variables. These variables are assigned values that are passed when the batch file is exported. They look like this: %1, %2, %3, etc. Here's an example: @echo off@echo First argument variables - : %1@echo Second argument variables - : %2@echo Third argument variables - : %3pause When running this batch file, we will pass the string "Hello, user!" The result will be shown in the picture below. Batch file example: removing unnecessary files While working, we often end up with unnecessary files that need to be cleaned. A correctly written batch file does an excellent job of this. Suppose you have a lot of .TXT files in a certain directory and its subdirectories that you no longer need. Let's create a simple batch file for this case: @echo offdel /f /s /q C:\path_to_directory\Example\*.txt Let's look at how each flag works: /f allows you to delete all files (even the read-only ones). /s allows you to delete files not only from the directory but also its subdirectories. /q removes confirmation of file deletion. Now, to test this batch file, let's create the Example directory and the ExampleWithTXT subdirectory, and then add three .TXT files to both: mkdir Example cd Example mkdir ExampleWithTXT notepad Example1.txt notepad Example2.txt notepad Example3.txt cd ExampleWithTXT copy C:\path_to_directory\Example\*.txt Now, drag-and-drop the batch file to the Command Propmpt window and look at the result. The output must show that all six files were successfully removed from the Example directory and the ExampleWithTXT subdirectory. A message about deleted files Conclusion In this guide, we described in detail how to create and use .BAT files in Windows and provided basic commands for working with them. Following this tutorial, you can create your first Windows bat script to automate working with the Windows OS. If you want to know more, we prepared for you some instructions on how to create cloud server. When you understood how to create .bat files on Linux
21 August 2025 · 7 min to read
Windows

How to Set Up an FTP Server on Windows Server 2019

Configuring an FTP server on Windows Server 2019 consists of several stages. First, you need to install the server itself, then create and isolate users, configure a firewall, and establish an FTP connection. This guide will explain all the steps in detail. First, let's quickly remember what an FTP server is. It is only the first part of the infrastructure that allows data to be transferred between hosts. The second part is the client. A connection is established between them that uses the File Transfer Protocol. This connection's primary benefit is its cross-platform compatibility. Nevertheless, there are a number of drawbacks, including slow file sharing and security problems. The protocol is still frequently used in spite of all of that. This is how FTP client works on Windows Install FTP server To continue with this guide, you need a host with Windows Server 2019 installed and configured.  To install an FTP server: Open the Start menu and launch Server Manager. You will configure the basic settings through this utility. Click Add roles and features. The Add Roles and Features Wizard will launch. Click Next. Select the Role-based or feature-based installation option and click Next. In the next window, select the default server; this is the server where roles should be installed. Check the role Web Server (IIS). In the next window, click Add features. Skip the next two steps by clicking Next; nothing needs to be changed. In Role Services select FTP Service and IIS Management Console.  Check the list of components ready for installation and click Install. After installation is complete, close the wizard window. Firewall setup To configure a firewall that protects an FTP server on Windows, go to the Tools menu in the Server Manager top right and run Windows Defender Firewall with Advanced Security.  In the left menu, go to Inbound rules. In the right menu, select New rule. In the rule settings, select the Predefined type and the FTP server value. Select all the options, click Next, and then Finish. To apply the new configuration, reboot the server. User management One of the protocol's main problems is its low level of security. Therefore, you need to be very strict about the list of users who can connect to the server. For this purpose, groups or individual users are configured. Go to the Tools menu in the Server Manager and select Computer Management. Go to Local Users and Groups. Right-click the context menu of the Users item and proceed to create a new account. Enter your username and password. Select your account settings. For example, you can enable a requirement to change your password the first time you connect. Or vice versa, prohibit changing passwords. For the system to accept a password, it must meet at least three of the four following security requirements: Have lowercase Latin letters. Have uppercase Latin letters. Have numbers. Have special characters like !, $, #, %. Adding a site We must add an FTP site in order to continue working. Once users have been created, we go back to the Server Manager. This is where all Windows FTP server setup will happen. Go to the Tools and launch the Internet Information Services Manager tool. In the Connections section, double-click the sever and select Add FTP Site. Enter the site name and select the folder with its content. Specify the IP address to connect or set the mode to All Unassigned. Configure SSL settings. You can choose not to use encryption or enable it and add your own certificate. Click Next. Select Basic authentication. Grant authorization permission to Specified Users. Enter the name of the created account. Grant the read and write permissions. Click Finish. Directory Isolation In one of the previous steps, we showed how to create users which can connect to the server. However, more is needed to provide even minimal security. Another critical point is isolation. For example, we are configuring a server for a television network. Departments within the company must share videos: camera operators submit the footage, editors modify it, and correspondents view it. Isolation allows you to ensure that each type of user has access only to specific directories. We have an FTP site. Let's go to the settings and restrict availability zones between different accounts. Go to the Tools and launch the Internet Information Services Manager tool. Right-click on your FTP site and select FTP User Isolation. Select User name directory and click Apply. Right-click on the FTP site and add a virtual directory. Enter your login and, in the line below, the full path to the folder this account can use.The directory should already exist. We recommend using the login in the directory name to make it easier to figure out who can go where. We have one virtual directory. Let's change access permissions. Right-click on our new virtual directory and go to editing permissions. Open the Security tab and click Advanced. Disable inheritance and save changes. Return to the Security options. Click Edit under the list of groups/users. Remove the Users group and add a new user. Enter the FTP user name and run name checking. Click OK to save your changes. Select the new user, check all the permission checkboxes in the Allow column, and click Apply. The configuration of the FTP server for Windows is complete. Connection via FTP We figured out how to create an FTP server on Windows Server 2019 and set up user accounts. Finally, let's see how to connect to our file storage. A client is required to establish a connection. One of the most popular is FileZilla. You can also use WinSCP. To connect, you will need: The server IP address. Name and password for the created account. After establishing the connection, the user will see the directory you specified in the site settings. If you have configured directory isolation, the user will go to the virtual directory and cannot move to other people's folders. Installed FTP Server on Windows Server 2019
21 August 2025 · 5 min to read
Python

How to Install pip on Windows

pip is a utility that turns Python package installation and management into a straightforward task. From Python beginners to coding wizards, having this utility on your Windows computer is a true game-changer. It effortlessly facilitates the setup of crucial frameworks and libraries for your development needs. Automating package management with pip frees up your time and reduces the complications linked to manual installations. Follow this guide to become proficient in configuring pip and overseeing your Python packages seamlessly. pip Setup Process for Windows Here are the guidelines to set up pip on a Windows machine. Step 1: Confirm Installation Verify Python is operational on your device before starting the pip setup. To carry out this operation, run command prompt and apply: python --version   If Python's not present on your system, download it from the official site. Step 2: Download get-pip.py Python's standard installation package automatically includes pip. However, in case of accidental removal, grab the get-pip.py script.  You have a couple of options: either visit the pip.py webpage, or use the curl command for a quick install: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py Note: Installing Python again to get pip is also an option. However, it can sometimes lead to conflicts with other dependencies or settings. Your existing Python setup stays unchanged with this script. Step 3: Run get-pip.py Move to the script’s location through the command prompt and apply: python get-pip.py This will smoothly install pip on your device. Step 4: Confirm pip Installation Validate the installation by executing: pip --version Applying this command ensures pip is installed on the system. Step 5: Add pip to System PATH If the command doesn't execute properly, update your system PATH with these instructions to incorporate pip: Access Properties by right-clicking on My Computer or This PC from the drop-down menu. Opt for Advanced system settings. Select Environment Variables. Head over to System Variables, spot the Path variable, and choose Edit. Insert the Python Scripts directory into your system PATH, for example, C:\Python39\Scripts. Alternative Ways for pip Installation on Windows Let's discuss a few other ways to effortlessly get pip running on Windows. Via Built-in ensurepip Module From Python 3.4 onward, there's an awesome built-in module named ensurepip. With this tool, pip installation is simplified, eliminating the need for the get-pip.py script. Step 1: Run ensurepip Input the command below to set up pip: python -m ensurepip --default-pip Step 2: Verify pip Installation Check pip version through: pip --version Python Installer Approach for pip Installation Ensure the pip checkbox is marked during the Python setup. Here's how: Step 1: Download Installer Fire up your favorite browser, go to the official Python website, and acquire the most recent installation file. Step 2: Launch the Installer Launch the installer you've downloaded and remember to pick the Add Python to PATH option while setting up. Step 3: Install pip While progressing through the setup, don't forget to enable the Install pip option. Step 4: Validate pip is Installed When the setup wraps up, check pip installation via: pip --version Adjusting pip Version: Upgrade or Downgrade pip can be adjusted to suit your requirements by upgrading or downgrading. Here's how: Upgrading pip To give pip a fresh upgrade, execute: python -m pip install --upgrade pip Downgrading pip To roll back pip, apply: python -m pip install pip==<version> Enter the desired version number to install instead of <version> (e.g., 21.0). Resolving pip Installation Issues: Essential Commands Let's discover common pip installation issues and their fixes: Issue 1: "pip" is not recognized as an internal or external command Solution: This implies the pip path isn't set in your system PATH. Simply follow the instructions in "Step 5" to fix this. Issue 2: Permission Denied Solution: Elevate your command prompt privileges by right-clicking the Command Prompt icon and choosing Run as administrator. Afterward, rerun the commands. Issue 3: Missing Dependencies Solution: Sometimes, you'll run into trouble because of missing dependencies. To correct this, manually install the essential dependencies with pip. For example: pip install package_name Swap out package_name for the appropriate dependency. Utilizing Virtual Environments Employing virtual environments keeps dependencies distinct and avoids any conflicts. Here's how to utilize a virtual environment with pip: Creating a Virtual Environment python -m venv env_name Replace env_name with your desired environment name. Initiating Your Virtual Environment env_name\Scripts\activate Standard pip Commands To explore pip's usage, check these essential commands: Installing a Package pip install package_name Modify package_name to accurately reflect the package you're aiming to install. Uninstalling a Package pip uninstall package_name Showing Installed Packages pip list Showing Package Information pip show package_name Optimal Strategies for Package Management Employ virtual environments to handle dependencies efficiently in multiple projects. Regularly inspect and upgrade your packages to keep everything running smoothly. Prepare requirements files to ease the management of dependencies in your projects. Securing pip Installation Ensuring the protection of packages handled by pip is critical. Here are some tips to keep your environment secure: Maintain project isolation to avoid conflicts and secure installations. Check the trustworthiness and verification of package sources before installing. Always refer to official repositories and examine reviews if they are available. Consistently update pip and your packages to stay protected with the latest security patches and improvements. Periodically review your dependencies for known vulnerabilities. Tools such as pip-audit can assist in identifying and resolving security concerns. Adhere to secure coding standards and steer clear of deprecated or insecure packages. Integrating pip with IDEs pip can be effortlessly embedded into various Integrated Development Environments (IDEs), significantly boosting your development efficiency: VS Code: Utilize the built-in terminal for direct pip command and package management within the editor. PyCharm: Streamline package management by setting up pip configurations via the project interpreter. This simplifies the process of installing and managing packages customized to your project's specific needs. Jupyter Notebook: Employ magic commands in the notebook interface for direct package installation. This provides a smooth and integrated experience for managing dependencies while you work on your interactive notebooks.  Conclusion Windows offers several methods to set up pip, catering to different preferences and requirements. No matter if you select the .py script, use Python's built-in ensurepip module, or enable pip during the initial setup, these approaches will make sure pip is properly configured on your system. This all-in-one guide empowers you to handle and install Python packages with ease. Don't forget, keeping pip updated is essential for ensuring the security and efficiency of your Python setup. Routinely check for updates and keep pip upgraded. In addition, on our application platform you can find Python apps, such as Celery, Django, FastAPI and Flask.
15 January 2025 · 6 min to read

Do you have questions,
comments, or concerns?

Our professionals are available to assist you at any moment,
whether you need help or are just unsure of where to start.
Email us
Hostman's Support