Windows Server Remote Remote Desktop Services
Windows Server Remote Remote Desktop Services
e OVERVIEW
Get started
b GET STARTED
g TUTORIAL
Y ARCHITECTURE
Build anywhere
Network guidelines
c HOW-TO GUIDE
g TUTORIAL
c HOW-TO GUIDE
c HOW-TO GUIDE
i REFERENCE
Remote Desktop Services (RDS) is the platform of choice for building virtualization
solutions for every end customer need, including delivering individual virtualized
applications, providing secure mobile and remote desktop access, and providing end
users the ability to run their applications and desktops from the cloud.
RDS offers deployment flexibility, cost efficiency, and extensibility—all delivered through
a variety of deployment options, including Windows Server for on-premises
deployments, Microsoft Azure for cloud deployments, and a robust array of partner
solutions.
Depending on your environment and preferences, you can set up the RDS solution for
session-based virtualization, as a virtual desktop infrastructure (VDI), or as a
combination of the two:
Within these virtualization environments, you have additional flexibility in what you
publish to your users:
Desktops: Give your users a full desktop experience with a variety of applications
that you install and manage. Ideal for users that rely on these computers as their
primary workstations.
RemoteApps: Specify individual applications that are hosted/run on the virtualized
machine but appear as if they're running on the user's desktop like local
applications. The apps have their own taskbar entry and can be resized and moved
across monitors. Ideal for deploying and managing key applications in the secure,
remote environment while allowing users to work from and customize their own
desktops.
With these options and configurations, you have the flexibility to deploy the desktops
and applications your users need in a remote, secure, and cost-effective fashion.
Next steps
Here are some next steps to help you get a better understanding of RDS and even start
deploying your own environment:
Understand the supported configurations for RDS with the various Windows and
Windows Server versions
Plan and design an RDS environment to accommodate various requirements, such
as high availability and multifactor authentication.
Review the Remote Desktop Services architecture models that work best for your
desired environment.
Connect to your RDS environment using one of the available clients.
Feedback
Was this page helpful? Yes No
Create virtual machines for Remote
Desktop
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Use the following steps to create the virtual machines in the tenant's environment that
will be used to run the Windows Server 2016 roles, services, and features required for a
desktop hosting deployment.
For this example of a basic deployment, the minimum of 3 virtual machines will be
created. One virtual machine will host the Remote Desktop (RD) Connection Broker and
License Server role services and a file share for the deployment. A second virtual
machine will host the RD Gateway and Web Access role services. A third virtual machine
host the RD Session Host role service. For very small deployments, you can reduce VM
costs by using Microsoft Entra App Proxy to eliminate all public endpoints from the
deployment and combining all the role services onto a single VM. For larger
deployments, you can install the various role services on individual virtual machines to
allow better scaling.
This section outlines the steps necessary to deploy virtual machines for each role based
on Windows Server images in the Microsoft Azure Marketplace . If you need to create
virtual machines from a custom image, which requires PowerShell, check out Create a
Windows VM with Resource Manager and PowerShell. Then return here to attach Azure
data disks for the file share and enter an external URL for your deployment.
RD Session Host:
VM: Contoso-Sh1
Availability set: ShAvSet
2. Create and attach an Azure data disk for the user profile disk (UPD) share:
a. In the Azure portal click Browse > Resource groups, click the resource group
for the deployment, and then click the VM created for the RD Connection
Broker (for example, Contoso-Cb1).
b. Click Settings > Disks > Attach new.
c. Accept the defaults for name and type.
d. Enter a size (in GB) that is large enough to hold network shares for the tenant's
environment, including user profile disks and certificates. You can approximate 5
GB per user you plan to have
e. Accept the defaults for location and host caching, and then click OK.
Feedback
Was this page helpful? Yes No
Supported configurations for Remote
Desktop Services
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
So with that in mind, here are basic guidelines for supported configurations of Remote
Desktop Services in Windows Server.
7 Note
Best practices
Use the most recent version of Windows Server for your Remote Desktop
infrastructure (the Web Access, Gateway, Connection Broker, and license server).
Windows Server is backward-compatible with these components. Meaning a
Windows Server 2022 RD Session Host can connect to a 2025 RD Connection
Broker, but not the other way around.
For RD Session Hosts - all Session Hosts in a collection need to be at the same
level, but you can have multiple collections. For example, you can have a collection
with Windows Server 2019 Session Hosts and one with Windows Server 2025
Session Hosts.
An RDS license server can only process client access licenses (CALs) from the same
or previous versions of Windows Server. Meaning, if you upgrade your RD Session
Host to Windows Server 2025, you also need to upgrade the license server.
Follow the upgrade order recommended in Upgrading your Remote Desktop
Services environment.
If you are creating a highly available environment, all of your Connection Brokers
need to be at the same OS level.
RD Connection Brokers
Starting in Windows Server 2016, there's no restriction for the number of Connection
Brokers you can have in a deployment when using Remote Desktop Session Hosts
(RDSH) and Remote Desktop Virtualization Hosts (RDVH). The following table shows
which versions of RDS components work in a highly available deployment with three or
more Connection Brokers.
ノ Expand table
Remote Desktop Services Session Hosts and single-session client operating systems can
take advantage of the physical or virtual GPUs presented to the operating system in
many ways, including the Azure GPU optimized virtual machine sizes, GPUs available to
the physical RDSH server, and GPUs presented to the VMs by supported hypervisors.
See Which graphics virtualization technology is right for you? for help figuring out what
you need. For specific information about DDA, check out Plan for deploying Discrete
Device Assignment.
GPU vendors may have a separate licensing scheme for RDSH scenarios or restrict GPU
use on the server OS, verify the requirements with your favorite vendor.
ノ Expand table
ノ Expand table
7 Note
Windows 11
Windows 10
Windows Server in a single-session deployment only
7 Note
Single sign-on
RDS in Windows Server supports two main SSO experiences:
Using the Remote Desktop application, you can store credentials either as part of the
connection info (Mac) or as part of managed accounts (iOS, Android, Windows) securely
through the mechanisms unique to each OS.
To connect to desktops and RemoteApps with SSO through the inbox Remote Desktop
Connection client on Windows, you must connect to the RD Web page through Internet
Explorer. The following configuration options are required on the server side. No other
configurations are supported for Web SSO:
7 Note
Due to the required configuration options, Web SSO is not supported with
smartcards. Users who login via smartcards might face multiple prompts to login.
For more information about creating VDI deployment of Remote Desktop Services,
check out Supported Windows 10 security configurations for Remote Desktop Services
VDI.
Feedback
Was this page helpful? Yes No
Supported Windows security
configurations for Remote Desktop
Services VDI
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Windows and Windows Server have new layers of protection built into the operating
system to:
7 Note
The following table outlines which of these new features are supported in a VDI
deployment using RDS.
ノ Expand table
Remote No No No No
Credential Guard
7 Note
Feedback
Was this page helpful? Yes No
Remote Desktop Services - planning
poster
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
The Remote Desktop Services team have created a poster to help you plan, build, and
run your Azure Virtual Desktop environment.
You can get a copy of the poster by right-clicking the image and saving it to your local
system.
You can get a copy of the poster by right-clicking the image and saving it to your local
system.
Feedback
Was this page helpful? Yes No
Plan and design your Remote Desktop
Services environment
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
A highly scalable Remote Desktop deployment requires the use of specific patterns and
practices. Designing for optimal performance and scale-out is key. Use the scenarios
below to help you envision, architect, and continually refine your deployment.
Build anywhere
Network guidance
Access from anywhere
High availability
MultiFactor Authentication
Secure data storage
GPU acceleration
Connect from any device
Choose how you pay
Be sure to also review the Desktop Hosting Reference Architecture, which provides an
overview of the Remote Desktop architecture and helps you plan a hybrid RDS
environment that includes Azure infrastructure.
Feedback
Was this page helpful? Yes No
Remote Desktop Services - Build
anywhere
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Deploy on-premises, in the cloud, or a hybrid of the two. Modify your deployment as
your business needs change.
Regardless of where you are, the underlying architecture of the Remote Desktop
Services environment remains the same:
You still must have an internet-facing server to utilize RD Web Access and RD
Gateway for external users
You still must have an Active Directory and--for highly available environments--a
SQL database to house user and Remote Desktop properties
You still must have communication access between the RD infrastructure roles (RD
Connection Broker, RD Gateway, RD Licensing, and RD Web Access) and the end
RDSH or RDVH hosts to be able to connect end-users to their desktops or
applications.
The simplicity and pay-as-you-go methods associated with the cloud and the
online world.
The familiarity and hassle-free way of leveraging heavy resources that already exist
on-premises.
For additional information, look at how to build and deploy your Remote Desktop
Services deployment.
Feedback
Was this page helpful? Yes No
Network guidelines
Article • 07/03/2024
When using a remote Windows session, your network's available bandwidth greatly
impacts the quality of your experience. Different applications and display resolutions
require different network configurations, so it's important to make sure your network is
configured to meet your needs.
7 Note
The following recommendations apply to networks with less than 0.1% loss. These
recommendations apply regardless of how many sessions you're hosting on your
virtual machines (VMs).
Applications
The following table lists the minimum recommended bandwidths for a smooth user
experience. These recommendations are based on the guidelines in Remote Desktop
workloads.
ノ Expand table
Medium 3 Mbps
Heavy 5 Mbps
Power 15 Mbps
Keep in mind that the stress put on your network depends on both your app workload's
output frame rate and your display resolution. If either the frame rate or display
resolution increases, the bandwidth requirement will also rise. For example, a light
workload with a high-resolution display requires more available bandwidth than a light
workload with regular or low resolution.
Other scenarios can have their bandwidth requirements change depending on how you
use them, such as:
Make sure to load test these scenarios in your deployment using simulation tools like
Login VSI. Vary the load size, run stress tests, and test common user scenarios in remote
sessions to better understand your network's requirements.
Display resolutions
Different display resolutions require different available bandwidths. The following table
lists the bandwidths we recommend for a smooth user experience at typical display
resolutions with a frame rate of 30 frames per second (fps). These recommendations
apply to single and multiple user scenarios. Keep in mind that scenarios involving a
frame rate under 30 fps, such as reading static text, require less available bandwidth.
ノ Expand table
Assistive technologies
Assistive technology workloads, like using Narrator in the remote session, require
connections with a connection round trip time (RTT) of 20 milliseconds (ms) or better for
the best user experience.
Feedback
Was this page helpful? Yes No
Session host virtual machine sizing
guidelines
Article • 07/03/2024
Whether you're running your session host virtual machines (VM) on Remote Desktop
Services or Azure Virtual Desktop, different types of workloads require different VM
configurations. The examples in this article are generic guidelines, and you should only
use them for initial performance estimates. For the best possible experience, scale your
deployment depending on your users' needs.
Workloads
Users can run different types of workloads on the session host virtual machines. The
following table shows examples of a range of workload types to help you estimate what
size your virtual machines need to be. After you set up your virtual machines, you should
continually monitor their actual usage and adjust their size accordingly. If you end up
needing a bigger or smaller virtual machine, you can easily scale your existing
deployment up or down in Azure.
The following table describes each workload. Example users are the types of users that
might find each workload most helpful. Example apps are the kinds of apps that work
best for each workload.
ノ Expand table
Light Users doing basic data entry Database entry applications, command-line
tasks interfaces
Single-session recommendations
Single-session scenarios are when there's only one user signed in to a session host VM at
any one time. For example, if you use personal host pools in Azure Virtual Desktop,
you're using a single-session scenario. For VM sizing recommendations for single-
session scenarios, we recommend you use at least two physical CPU cores per VM,
typically four vCPUs with hyper-threading. If you need more specific VM sizing
recommendations for single-session scenarios, ask the software vendors specific to your
workload. VM sizing for single-session VMs usually align with physical device guidelines.
ノ Expand table
Multi-session recommendations
Multi-session scenarios are when there's more than one user signed in to a session host
virtual machine at any one time. For example, when you use pooled host pools in Azure
Virtual Desktop with the Windows 11 Enterprise multi-session operating system (OS),
that's a multi-session deployment.
The following table lists the maximum suggested number of users per virtual central
processing unit (vCPU) and the minimum VM configuration for standard or larger user
workload. If you need more specific VM sizing recommendations for single-session
scenarios, ask the software vendors specific to your workload.
ノ Expand table
For multi-session workloads, you should limit VM size to between 4 vCPUs and 24
vCPUs for the following reasons:
All VMs should have more than two cores. The UI components in Windows rely on
the use of at least two parallel threads for some of the heavier rendering
operations. For multi-session scenarios, having multiple users on a two-core VM
leads to the UI and apps becoming unstable, which lowers the quality of user
experience. Four cores are the lowest recommended number of cores that a stable
multi-session VM should have.
VMs shouldn't have more than 32 cores. As the number of cores increase, the
system's synchronization overhead also increases. For most workloads, at around
16 cores, the return on investment gets lower, with most of the extra capacity
offset by synchronization overhead. User experience is better with two 16-core
VMs instead of one 32-core one.
The recommended range between 4 and 24 cores generally provides better capacity
returns for your users as you increase the number of cores. For example, if you have 12
users sign in at the same time to a VM with four cores, the ratio is three users per core.
Meanwhile, on a VM with 8 cores and 14 users, the ratio is 1.75 users per core. In this
scenario, the latter configuration with a ratio of 1.75 offers greater burst capacity for
your applications that have short-term CPU demand.
This recommendation is true at a larger scale. For scenarios with 20 or more users
connected to a single VM, several smaller VMs would perform better than one or two
large VMs. For example, if you're expecting 30 or more users to sign in within 10
minutes of each other on the same session host with 16 cores, two 8-core VMs would
handle the workload better. You can also use breadth-first load balancing to evenly
distribute users across different VMs instead of depth-first load balancing, where you
can only use a new session host after the existing one is full of users.
It's also better to use a large number of smaller VMs instead of a few large VMs. It's
easier to shut down VMs that need to be updated or aren't currently in use. With larger
VMs, you're more likely to have at least one user signed in at any time, which prevents
you from shutting down the VM. When you have many smaller VMs, it's more likely you
have some VMs without active users. You can safely shut down these unused VMs to
conserve resources, either manually or automatically by using autoscale in Azure Virtual
Desktop. Conserving resources makes your deployment more resilient, easier to
maintain, and less expensive.
Graphics processing units (GPUs) are a good choice for users who regularly use
graphics-intensive programs for video rendering, 3D design, and simulations. Azure has
several graphics acceleration deployment options and multiple available GPU VM sizes.
Learn more at GPU optimized virtual machine sizes. For more general information about
graphics acceleration in Remote Desktop Services, see Remote Desktop Services - GPU
acceleration
B-series burstable VMs in Azure are a good choice for users who don't always need
maximum CPU performance. For more information, see Sizes for Windows virtual
machines in Azure and the pricing information on the Virtual Machine series .
Feedback
Was this page helpful? Yes No
Remote Desktop Services - Access from
anywhere
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
End users can connect to internal network resources securely from outside the corporate
firewall through RD Gateway.
Regardless of how you configure the desktops for your end-users, you can easily plug
the RD Gateway into the connection flow for a fast, secure connection. For end-users
connecting through published feeds, you can configure the RD Gateway property as you
configure the overall deployment properties. For end-users connecting through to their
desktops without a feed, they can easily add the name of the organization's RD Gateway
as a connection property no matter which Remote Desktop client application they use.
The three primary purposes of the RD Gateway, in the order of the connection
sequence, are:
1. Establish an encrypted SSL tunnel between the end-user's device and the RD
Gateway Server: In order to connect through any RD Gateway server, the RD
Gateway server must have a certificate installed that the end-user's device
recognizes. In testing and proofs of concepts, self-signed certificates can be used,
but only publicly trusted certificates from a certificate authority should be used in
any production environment.
2. Authenticate the user into the environment: The RD Gateway uses the inbox IIS
service to perform authentication, and can even utilize the RADIUS protocol to
leverage multi-factor authentication solutions such as Azure MFA. Aside from the
default policies created, you can create additional RD Resource Authorization
Policies (RD RAPs) and RD Connection Authorization Policies (RD CAPs) to more
specifically define which users should have access to which resources within the
secure environment.
3. Pass traffic back and forth between the end-user's device and the specified
resource: The RD Gateway continues to perform this task for as long as the
connection is established. You can specify different timeout properties on the RD
Gateway servers to maintain the security of the environment in case the user walks
away from the device.
You can find additional details on the overall architecture of a Remote Desktop Services
deployment in the desktop hosting reference architecture.
Feedback
Was this page helpful? Yes No
Remote Desktop Services - High
availability
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Failures and throttling are unavoidable in large-scale systems. It's simple to set up
Remote Desktop infrastructure roles to support high availability and allow end users to
connect seamlessly, every time.
In Remote Desktop Services, the following items represent the Remote Desktop
infrastructure roles, with their respective guidance to establish high availability:
Along with availability sets, you can now leverage the power of Azure SQL Database and
its Azure-backed SLA to ensure that you always have connection information and can
redirect users to their desktops and applications.
For best practices on creating your RDS environment, please see the desktop hosting
architecture.
Feedback
Was this page helpful? Yes No
Remote Desktop Services - Multi-Factor
Authentication
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Leverage the power of Active Directory with Multi-Factor Authentication to enforce high
security protection of your business resources.
For your end-users connecting to their desktops and applications, the experience is
similar to what they already face as they perform a second authentication measure to
connect to the desired resource:
For more details on the configuration process, check out Integrate your Remote
Desktop Gateway infrastructure using the Network Policy Server (NPS) extension and
Microsoft Entra ID.
Feedback
Was this page helpful? Yes No
Remote Desktop Services - Secure data
storage with UPDs
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Store business resources, user personalization data, and settings securely on-premises
or in Azure. RD Session Hosts use AD authentication and empower users with the
resources they need in a personalized environment, securely.
Ensuring users have a consistent experience, regardless of the endpoint from which they
access their remote resources, is an important aspect of managing an RDS deployment.
User Profile Disks (UPDs) allow user data, customizations, and application settings to
follow a user within a single collection. A UPD is a per-user, per-collection VHD file
saved in a central share that is mounted to a user's session when they sign in - the UPD
is treated as a local drive for the duration of that session.
From the user's perspective, the UPD provides a famililar experience - they save their
documents to their Documents folder (on what appears to be a local drive), change their
app settings as usual, and make any customizations to their Windows environment. All
this data, including the registry hive, is stored on the UPD and persists in a central
network share. UPDs are only available to the user when the user is actively connected
to a desktop or RemoteApp. UPDs can only roam within a collection because the user's
entire C:\Users\<username\> directory (including AppData\Local) is stored on the UPD.
You can use PowerShell cmdlets to designate the path to the central share, the size of
each UPD, and which folders should be included or excluded from the user profile saved
to the UPD. Alternatively, you can enable UPDs through Server Manager by going to
Remote Desktop Services > Collections > Desktop Collection > Desktop Collection
Properties > User Profile Disks. Note that you enable or disable UPDs for all users of an
entire collection, not for specific users in that collection. UPDs must be stored on a
central file share where the servers in the collection have full control permissions.
You can achieve high availability for your UPDs by storing them in Azure with Storage
Spaces Direct.
Feedback
Was this page helpful? Yes No
Remote Desktop Services - GPU
acceleration
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
Remote Desktop Services (RDS) works with native graphics acceleration and the graphics
virtualization technologies supported by Windows Server. For information on those
technologies, their differences, and how to deploy them, see Plan for GPU acceleration
in Windows Server.
When you plan for graphics acceleration in your RDS environment, your choice of user
scale and user workloads drives which graphics rendering technology you use:
Feedback
Was this page helpful? Yes No
Remote Desktop Services - Connect
from any device
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Access corporate resources from any Windows, Apple, or Android computer, tablet, or
phone. Enable users to easily see their available desktops and applications from any
device through RD Web Feed.
Feedback
Was this page helpful? Yes No
Remote Desktop Services - Choose how
you pay
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Choose your licensing based on what makes sense for your company. License per user
to enable users to remote on any of their devices in a BYOD scenario. License per device
if users share the same devices. If you are a service provider (HSP or MSP) or ISV, choose
the per user SALs license for a flexible, pay-as-you-go model.
For more information, check out License your RDS deployment with client access
licenses (CALs).
Feedback
Was this page helpful? Yes No
Office 2016 in RDSH and VDI
Deployments
Article • 01/03/2024
Use the following information to plan how best to integrate Office 2016 into your
Remote Desktop (RDSH) and VDI deployments.
Outlook 2016
In pooled VDI and RDSH deployments, using search within Outlook has limitations.
Search indexing depends on the machine ID, which is different for different VMs. It's
possible that every time a user logs into a pooled VDI infrastructure, they're directed to
a new VM. That would mean, if we enable local search, the indexer will run every time
the machine ID changes (when the user is on a different VM). Depending on the size of
the .OST file, the indexer could take a long time to complete and use up resources
needed for other apps. Search wouldn't only be slow but might not produce results.
Using an Online Mode account profile would work around this, but overall performance
would suffer due to the lack of a local cache.
Learn more about the difference between cached and online mode
Outlook 2016 has a solution to tackle this in cached mode by providing a new service
search experience for mailboxes hosted on Exchange 2016 (or hosted in Office 365). This
uses service search results against the local cache (OST). Outlook might fall back to
using the local search indexer in some scenarios, but most searches would use this new
service search feature. The recommendation for pooled VDI and RDSH deployments
would be to use Outlook 2016 in cache mode with network connectivity to allow service
search.
OneDrive
The OneDrive Desktop App isn’t supported for client sessions that are hosted on
Windows 2008 Terminal Services or Windows 2012 Remote Desktop Services (RDS) in
non-persistent environments. Persistent Virtual Desktop Infrastructure (VDI)
environments are supported. For more information, see Use the sync app on virtual
desktops.
Skype for Business
Skype for Business isn't supported for RDSH deployments. For VDI deployments, check
out the documentation on planning for Skype for Business in VDI environments.
Feedback
Was this page helpful? Yes No
A common issue customers face with their non-persistent (pooled) Remote Desktop
Services environments is handling users' Outlook data. When Outlook is running in
cached exchange mode, the .OST storing a user's Outlook data must follow the user as
they roam from host to host. Windows Search Service indexes the .OST and creates an
index catalog to enable search functionality in Outlook. In non-persistent RDS
environments, the index catalog doesn't roam with user data and must be rebuilt every
time the user signs into a new PC, which could potentially be every sign-on. Until the
Windows Search Service finishes indexing the .OST, users get limited or incomplete
search functionality.
According to a published report from RDS Gurus , FSLogix (a third party solution
provider) has a solution that aims to solve this issue: FSLogix’s Office 365 Container
roams a user's Outlook data and their search index catalog, giving users access to their
emails and enabling users to search in Outlook, even when they roam between sessions
on different hosts within a collection.
RDS Gurus performed testing on FSLogix's Office 365 Container, comparing it with
RDS’s native User Profile Disk roaming solution. The test scenarios covered both on-
premises and Azure RDS environments for non-persistent sessions on an RD session
host (RDSH). Tests also included pooled VMs on RD virtualization host (RDVH), only for
on-premises (RDVH isn't available in Azure). RDS Gurus primarily focused on the user
experience when there are "noisy neighbors," or other users logged on to the same
session host running similar workloads on the system.
The performance counters collected in these tests revealed similar resource usage (CPU,
RAM, network activity) with both UPD and FSLogix. The similarity in resource usage is
because Windows Search Service throttles its CPU usage when indexing. When it comes
to user experience, RDS Gurus found that FSLogix's Office 365 Container exceeds UPD in
Outlook search functionality. In the UPD case, search doesn't return results or returns
incomplete results as Windows Search Service indexes the .OST. Because FSLogix roams
the index catalog, users see search results immediately. RDS Gurus observed a
significant improvement in user experience when searching in Outlook in non-persistent
RDS environments using FSLogix.
Read more about the results and conclusions on the RDS Gurus blog .
Use the sync app on virtual desktops
Article • 12/05/2024
For all supported operating systems , the OneDrive sync app supports:
7 Note
7 Note
Using the OneDrive sync app with non-persistent environments requires that you
install the sync app per machine.
For Windows Server, the SMB network file sharing protocol is also required.
The OneDrive sync app is supported in a remote app scenario hosted as a Citrix
Virtual App.
The OneDrive sync app with FSLogix does not support running multiple instances
of the same container simultaneously.
Prerequisites
To enable OneDrive in Citrix Virtual Apps, you must have the following versions of
Windows and Citrix Virtual Apps and Desktops (CVAD):
Windows:
Citrix:
VDA/Virtual Delivery Agent 2212 enables Shellbridge by default. All earlier versions
require Shellbridge to be enabled manually.
To enable this feature, On 2203 LTSR TS VDA (2019 Server, 2022 Server, Windows
10 RDSH/Remote Desktop Session Host, or Windows 11 RDSH/Remote Desktop
Service Host) add the following registry details:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Citrix Virtual Desktop Agent
Name: Shellbridge
Type: REG_DWORD
Value: 1
To ensure that the feature is correctly enabled, open a command window (cmd.exe) and
run start ms-settings:printers . If the feature is enabled, the printer setting window is
displayed.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\wfshell\TWI
Value Name:LogoffCheckSysModules
Type:REG_SZ
String:OneDrive.exe, Microsoft.Sharepoint.exe
) Important
FSLogix must be used in conjunction with Citrix Virtual Apps for OneDrive to be
supported.
7 Note
7 Note
Silent sign-in should work if your machine is connected to Microsoft Entra ID.
Make sure to turn off this setting if your computer is not Microsoft Entra
joined.
See also
Learn more about VHDX/Virtual Hard Disk and VHD/Virtual Hard Disk.
For info about creating virtual hard disks, see Manage virtual hard disks.
Feedback
Was this page helpful? Yes No
Provide product feedback
Desktop Hosting Reference Architecture
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
This article defines a set of architectural blocks for using Remote Desktop Services (RDS)
and Microsoft Azure virtual machines to create multitenant, hosted Windows desktop
and application services, which we call "desktop hosting." You can use this architecture
reference to create highly secure, scalable, and reliable desktop hosting solutions for
small- and medium-sized organizations with 5 to 5000 users.
The primary audience for this reference architecture is hosting providers who want to
leverage Microsoft Azure Infrastructure Services to deliver desktop hosting services and
Subscriber Access Licenses (SALs) to multiple tenants via the Microsoft Service Provider
Licensing Agreement (SPLA) program. A second audience for this reference
architecture are end customers who want to create and manage desktop hosting
solutions in Microsoft Azure Infrastructure Services for their own employees using RDS
User CALs extended rights through Software Assurance (SA).
Microsoft products and features, primarily Windows Server 2016 and Microsoft
Azure Infrastructure Services.
Desktop hosting services for tenants ranging in size from 5 to 5000 users. For
larger tenants, you may need to modify this architecture to provide adequate
performance. The Server Manager RDS graphical user interface (GUI) isn't
recommended for deployments over 500 users. PowerShell is recommended for
managing RDS deployments between 500 and 5000 users.
The minimum set of components and services required for a desktop hosting
service. There are many optional components and services that can be added to
enhance a desktop hosting service, but these are out-of-scope for this document.
The building blocks for providing a secure, reliable, multitenant desktop hosting
solution based in Microsoft Azure Services.
The purpose of each building block and how they fit together.
There are multiple ways to build a desktop hosting solution based on this architecture.
This architecture outlines integration and improvements in Azure with Windows Server
2016. Other deployment options are available with the Desktop Hosting Reference
Architecture Guide .
Feedback
Was this page helpful? Yes No
Remote Desktop Services architecture
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Below are various configurations for deploying Remote Desktop Services to host
Windows apps and desktops for end-users.
7 Note
The architecture diagrams below show using RDS in Azure. However, you can
deploy Remote Desktop Services on-premises and on other clouds. These diagrams
are primarily intended to illustrate how the RDS roles are colocated and use other
services.
Basic deployment – This contains the minimum number of servers to create a fully
effective RDS environment
Highly available deployment – This contains all necessary components to have the
highest guaranteed uptime for your RDS environment
Basic deployment
Highly available deployment
RDS architectures with unique Azure PaaS roles
Though the standard RDS deployment architectures fit most scenarios, Azure continues
to invest in first-party PaaS solutions that drive customer value. Below are some
architectures showing how they incorporate with RDS.
For supported configurations and how to create this setup, see how to publish Remote
Desktop with Microsoft Entra application proxy.
Feedback
Was this page helpful? Yes No
Desktop hosting service
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
This article will tell you more about the desktop hosting service's components.
Tenant environment
As described in Remote Desktop service roles, each role plays a distinct part in the
tenant environment.
The tenant's forest does not require any trust relationship with the provider's
management forest. A domain administrator account may be set up in the tenant's
domain to allow the provider's technical personnel to perform administrative tasks in
the tenant's environment (such as monitoring system status and applying software
updates) and to assist with troubleshooting and configuration.
SQL database
A highly-available SQL database is used by the Remote Desktop Connection Broker to
store deployment information, such as the mapping of current users' connections to the
host servers.
1. Create an Azure SQL Database in the tenant's environment. This provides you with
the functionality of a redundant SQL database without you having to manage the
servers themselves. This also allows you to pay for what you consume instead of
investing in infrastructure.
2. Create an SQL Server AlwaysOn cluster. This allows you to leverage existing SQL
Server infrastructure and gives you complete control over the SQL Server instances.
File server
The file server uses the Server Message Block (SMB) 3.0 protocol to provide shared
folders. These shared folders are used to create and store user profile disk files (.vhdx) to
back up data and let users share data with each other within the tenant's cloud service.
The virtual machine that deploys the file server must have an Azure data disk attached
and configured with shared folders. Azure data disks use write-through caching,
guaranteeing that writes to the disk will not be erased whenever the virtual machine is
restarted.
Small tenants can reduce costs by combining the file server and RD Licensing role on a
single virtual machine in the tenant's environment.
Feedback
Was this page helpful? Yes No
Remote Desktop Services roles
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
This article describes the roles within a Remote Desktop Services environment.
You can organize desktops and apps into one or more RD Session Host servers, called
"collections." You can customize these collections for specific groups of users within
each tenant. For example, you can create a collection where a specific user group can
access specific apps, but anyone outside of the group you designated won't be able to
access those apps.
For small deployments, you can install applications directly onto the RD Session Host
servers. For larger deployments, we recommend building a base image and provisioning
virtual machines from that image.
You can expand collections by adding RD Session Host server virtual machines to a
collection farm with each RDSH virtual machine within a collection assigned to same
availability set. This provides higher collection availability and increases scale to support
more users or resource-heavy applications.
In most cases, multiple users share the same RD Session Host server, which most
efficiently utilizes Azure resources for a desktop hosting solution. In this configuration,
users must sign in to collections with non-administrative accounts. You can also give
some users full administrative access to their remote desktop by creating personal
session desktop collections.
You can customize desktops even more by creating and uploading a virtual hard disk
with the Windows Server OS that you can use as a template for creating new RD Session
Host virtual machines.
You'll need to install matching digital certificates on both the RD Connection Broker
server and the client to support single sign-on and application publishing. When
developing or testing a network, you can use a self-generated and self-signed
certificate. However, released services require a digital certificate from a trusted
certification authority. The name you give the certificate must be the same as the
internal Fully Qualified Domain Name (FQDN) of the RD Connection Broker virtual
machine.
You can install the Windows Server 2016 RD Connection Broker on the same virtual
machine as AD DS to reduce cost. If you need to scale out to more users, you can also
add additional RD Connection Broker virtual machines in the same availability set to
create an RD Connection Broker cluster.
Before you can create an RD Connection Broker cluster, you must either deploy an Azure
SQL Database in the tenant's environment or create an SQL Server AlwaysOn Availability
Group.
Add the RD Connection Broker server to the deployment and configure high
availability
SQL database in Desktop hosting service.
The digital certificates installed on the server and client have to match for this to work.
When you're developing or testing a network, you can use a self-generated and self-
signed certificate. However, a released service requires a certificate from a trusted
certification authority. The name of the certificate must match the FQDN used to access
RD Gateway, whether the FQDN is the public IP address' externally facing DNS name or
the CNAME DNS record pointing to the public IP address.
For tenants with fewer users, the RD Web Access and RD Gateway roles can be
combined on a single virtual machine to reduce cost. You can also add more RD
Gateway virtual machines to an RD Gateway farm to increase service availability and
scale out to more users. Virtual machines in larger RD Gateway farms should be
configured in a load-balanced set. IP affinity isn't required.
RD Web Access needs Internet Information Services (IIS) to work properly. A Hypertext
Transfer Protocol Secure (HTTPS) connection provides an encrypted communications
channel between the clients and the RD Web server. The RD Web Access virtual machine
must be accessible through a public IP address that allows inbound TCP connections to
port 443 to allow the tenant's users to connect from the internet using the HTTPS
communications transport protocol.
Matching digital certificates must be installed on the server and clients. For
development and testing purposes, this can be a self-generated and self-signed
certificate. For a released service, the digital certificate must be obtained from a trusted
certification authority. The name of the certificate must match the Fully Qualified
Domain Name (FQDN) used to access RD Web Access. Possible FQDNs include the
externally facing DNS name for the public IP address and the CNAME DNS record
pointing to the public IP address.
For tenants with fewer users, you can reduce costs by combining the RD Web Access
and Remote Desktop Gateway workloads into a single virtual machine. You can also add
additional RD Web virtual machines to an RD Web Access farm to increase service
availability and scale out to more users. In an RD Web Access farm with multiple virtual
machines, you'll have to configure the virtual machines in a load-balanced set.
For more information about how to configure RD Web Access, see the following articles:
The service provider needs enough RDS Subscriber Access Licenses (SALs) to cover all
authorized unique (not concurrent) users that sign in to the service each month. Service
providers can purchase Microsoft Azure Infrastructure Services directly, and can
purchase SALs through the Microsoft Service Provider Licensing Agreement (SPLA)
program. Customers looking for a hosted desktop solution must purchase the complete
hosted solution (Azure and RDS) from the service provider.
Small tenants can reduce costs by combining the file server and RD Licensing
components onto a single virtual machine. To provide higher service availability, tenants
can deploy two RD License server virtual machines in the same availability set. All RD
servers in the tenant's environment are associated with both RD License servers to keep
users able to connect to new sessions even if one of the servers goes down.
Feedback
Was this page helpful? Yes No
Azure services and considerations for
desktop hosting
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Azure portal
After the provider creates an Azure subscription, the Azure portal can be used to
manually create each tenant's environment. This process can also be automated using
PowerShell scripts.
Security considerations
This Azure Desktop Hosting Reference Architecture Guide is designed to provide a
highly secure and isolated environment for each tenant. System security also depends
on safeguards taken by the provider during deployment and operation of the hosted
service. The following list describes some considerations the provider should take to
keep their desktop hosting solution based on this reference architecture secure.
All administrative passwords must be strong, ideally randomly generated, changed
frequently, and saved in a secure central location only accessible to a select few
provider administrators.
When replicating the tenant environment for new tenants, avoid using the same or
weak administrative passwords.
The RD Web Access site URL, name, and certificates must be unique and
recognizable to each tenant to prevent spoofing attacks.
During the normal operation of the desktop hosting service, all public IP addresses
should be deleted for all virtual machines except the RD Web and RD Gateway
virtual machine that lets users securely connect to the tenant's desktop hosting
cloud service. Public IP addresses may be temporarily added when necessary for
management tasks, but they should always be deleted afterwards.
Design considerations
It's important to consider the constraints of Microsoft Azure Infrastructure Services
when designing a multitenant desktop hosting service. The following list describes
considerations the provider must take to achieve a functional and cost-effective desktop
hosting solution based on this reference architecture.
For more information, see Get started with Application Proxy and install the connector.
Feedback
Was this page helpful? Yes No
Understanding the desktop hosting
environment
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
The following information describes the components of the desktop hosting service.
Tenant environment
The provider's desktop hosting service is implemented as a set of isolated tenant
environments. Each tenant's environment consists of a storage container, a set of virtual
machines, and a combination of Azure services, all communicating over an isolated
virtual network. Each virtual machine contains one or more of the components that
make up the tenant's hosted desktop environment. The following subsections describe
the components that make up each tenant's hosted desktop environment.
For a full description of each of these roles and how they interact with each other,
please review the Understanding RDS roles document.
With Remote Desktop Services, the tenant must have an Active Directory to manage
access into the environment, user profile storage, and monitoring within the
deployment. When using the standard (non-Azure) AD DS, the tenant's forest does not
require any trust relationship with the provider's management forest. A domain
administrator account may be set up in the tenant's domain to allow the provider's
technical personnel to perform administrative tasks in the tenant's environment (such as
monitoring system status and applying software updates) and to assist with
troubleshooting and configuration.
File server
The file server provides shared folders by using the Server Message Block (SMB) 3.0
protocol. The shared folders are used to create and store user profile disk files (.vhdx), to
backup data, and to allow users a place to share data with other users in the tenant's
virtual network.
The VM used to deploy the file server must have an Azure data disk attached and
configured with shared folders. Azure data disks use write-through caching which
guarantees that writes to the disk persist across restarts of the VM.
For small tenants, the cost can be reduced by combining the file server with the virtual
machine running the RD Connection Broker and RD Licensing roles on a single virtual
machine in the tenant's environment.
Additional information File and Storage Services Overview How to Attach a Data Disk to
a Virtual Machine
Feedback
Was this page helpful? Yes No
Tenant on-premises components
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
The following information describes the on-premises components that make up the
desktop hosting deployment.
Clients
To access the hosted desktops and applications, the users must use Remote Desktop
clients that support Remote Desktop Protocol (RDP) 7.1 or higher. In particular, the
client must support Remote Desktop Gateway and Remote Desktop Connection Broker.
To deliver applications to the local desktop, the client must also support the RemoteApp
feature. To achieve highest gateway scale, the client must support the pure HTTP
transport connections to RD Gateway.
Additional information:
Additional information:
A Remote Desktop Services deployment is the infrastructure used to share apps and
resources with your users. Depending on the experience you want to provide, you can
make it as small or complex as you need. Remote Desktop deployments are easily
scaled. You can increase and decrease Remote Desktop Web Access, Gateway,
Connection Broker and Session Host servers at will. You can use Remote Desktop
Connection Broker to distribute workloads. Active Directory based authentication
provides a highly secure environment.
Remote Desktop clients enable access from any Windows, Apple, or Android computer,
tablet, or phone.
See Remote Desktop Services architecture for a detailed discussion of the different
pieces that work together to make up your Remote Desktop Services deployment.
Want to create a new Remote Desktop deployment? Use the following information to
deploy Remote Desktop in Windows Server:
Feedback
Was this page helpful? Yes No
Remote Desktop Services architecture
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Below are various configurations for deploying Remote Desktop Services to host
Windows apps and desktops for end-users.
7 Note
The architecture diagrams below show using RDS in Azure. However, you can
deploy Remote Desktop Services on-premises and on other clouds. These diagrams
are primarily intended to illustrate how the RDS roles are colocated and use other
services.
Basic deployment – This contains the minimum number of servers to create a fully
effective RDS environment
Highly available deployment – This contains all necessary components to have the
highest guaranteed uptime for your RDS environment
Basic deployment
Highly available deployment
RDS architectures with unique Azure PaaS roles
Though the standard RDS deployment architectures fit most scenarios, Azure continues
to invest in first-party PaaS solutions that drive customer value. Below are some
architectures showing how they incorporate with RDS.
For supported configurations and how to create this setup, see how to publish Remote
Desktop with Microsoft Entra application proxy.
Feedback
Was this page helpful? Yes No
Migrate your Remote Desktop Services
deployment to a newer Windows Server
version
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
For more information on the upgrade process and requirements, see upgrading your
Remote Desktop Services deployments.
Use the following steps to migrate your Remote Desktop Services deployment:
) Important
The Remote Desktop Connection Broker (RD Connection Broker) source servers
must be configured for high availability to support migration. For more
information, see Deploy a Remote Desktop Connection Broker cluster.
1. If you have more than one RD Connection Broker server in the high availability
setup, remove all the RD Connection Broker servers except the one that is currently
active.
3. Add the new Windows Server version RD Connection Broker servers into the high
availability deployment.
7 Note
) Important
Migrate session collections only after successfully completing the previous step,
Migrate RD Connection Broker servers.
2. Add the new RD Session Host server running the new Windows Server version to
the session collection.
3. Sign out of all sessions in the RD Session Host servers, and remove the servers that
require migration from the session collection.
7 Note
) Important
Migrate virtual desktop collections only after successfully completing the previous
step, Migrate RD Connection Broker servers.
1. Upgrade the virtual desktop collection from the server running the earlier version
of Windows Server to a later version of Windows Server.
2. Add the new Windows Server version RD Virtualization Host servers to the virtual
desktop collection.
3. Migrate all virtual machines in the current virtual desktop collection that are
running on RD Virtualization Host servers to the new servers.
4. Remove all RD Virtualization Host servers that required migration from the virtual
desktop collection in the source server.
7 Note
1. Join the destination servers running the new version of Windows Server to the
Remote Desktop Services deployment and install the RD Web role
2. Use IIS Web Deploy tool to migrate the RD Web website settings from the
current RD Web Access servers to the destination servers running the new version
of Windows Server.
3. Migrate certificates to the destination servers running the new version of Windows
Server.
4. Remove the source servers from the Remote Desktop Services deployment.
1. Join the destination servers running the new version of Windows Server to the
Remote Desktop Services deployment and install the RD Gateway role
2. Use the IIS Web Deploy tool to migrate the RD Gateway endpoint settings from
the current RD Gateway servers to the destination servers running the new version
of Windows Server.
3. Migrate certificates to the destination servers running the new version of Windows
Server.
4. Remove the source servers from the Remote Desktop Services deployment.
4. Remove the source RD Licensing servers from the deployment in Server Manager
on the Remote Desktop management server.
Migrate certificates
Successful certificate migration requires both the actual process of migrating certificates
and updating certificate information in the Remote Desktop Services Deployment
Properties.
After migrating the appropriate certificates, update the following required certificates
for the Remote Desktop Services deployment in server manager or PowerShell:
Feedback
Was this page helpful? Yes No
Migrate your Remote Desktop Services
Client Access Licenses (RDS CALs)
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
Using a web browser: This method allows migration when the server running the
Remote Desktop Licensing Manager tool does not have internet connectivity, but
the administrator has internet connectivity on a separate device. The URL for the
Web migration method is displayed in the Manage RDS CALs Wizard.
In this article, the establish RDS CAL migration method highlights the general steps
common across any RDS CAL migration method, while migrate RDS CALs highlights the
steps specific to each migration method.
Before migration ensure that the destination license server is activated. Follow these
steps to activate the Remote Desktop Services license server.
2. Verify the connection method for the Remote Desktop license server: right-click
the license server to which you want to migrate the RDS CALs, and then select
Properties. On the Connection Method tab, verify the Connection method - you
can change it in the dropdown menu. Select OK.
3. Right-click the license server to which you want to migrate the RDS CALs, and then
select Manage Licenses.
4. Follow the steps in the wizard to the Action Selection page. Select Migrate
RDS CALs from another license server to this license server.
5. Choose the reason for migrating the RDS CALs, and then select Next. You have the
following choices:
6. The next page in the wizard depends on the migration reason that you chose.
If you chose The source license server is being replaced by this license
server as the reason for migrating the RDS CALs, the Source License Server
Information page is displayed.
On the Source License Server Information page, enter the name or IP address
of the source license server.
If the source license server is available on the network, select Next. The
wizard contacts the source license server and has an option to Obtain Client
License Key Pack.
If the source license server isn't available on the network, select The specified
source license server isn't available on the network. Specify the operating
system that the source license server is running, and then provide the license
server ID for the source license server. After you select Next, you're reminded
that you must remove the RDS CALs manually from the source license server
after the wizard has completed. After you confirm that you understand this
requirement, the Obtain Client License Key Pack page appears.
If you chose The source license server is no longer functioning as the reason
for migrating the RDS CALs, you're reminded that you must remove the
RDS CALs manually from the source license server after the wizard has
completed. After you confirm that you understand this requirement, the
Obtain Client License Key Pack page appears.
The next step is to migrate the CALs - use the information in the following to complete
the wizard. What you see in the wizard depends on the connection method you
identified in Step 2 of this section.
Migrate RDS CALs
There are three ways to migrate licenses to the destination license server; follow the
steps corresponding to the Connection method verified in Step 2 in the previous
section:
3. Select the appropriate product version, license type, and quantity of RDS CALs for
your environment based on your RDS CAL purchase agreement, and then select
Next.
2. On the Remote Desktop Services Licensing Web page, under Select Option, select
Manage CALs, and then select Next.
Company name
Country/region
You can also provide the optional information requested, such as company
address, e-mail address, and phone number. In the organizational unit field,
you can describe the unit within your organization that this license server
serves.
5. The License Program that you selected on the previous page determines what
information you need to provide on the next page. In most cases, you must
provide either a license code or an agreement number. Consult the documentation
provided when you purchased your RDS CALs. In addition, you need to specify
which type of RDS CAL and the quantity that you want to migrate to the license
server.
7. Verify that all of the information that you entered is correct, then select Next to
submit your request to the Microsoft Clearinghouse. The web page then displays a
license key pack ID generated by the Microsoft Clearinghouse.
) Important
Keep a copy of the license key pack ID. Having this information with you
facilitates communications with the Microsoft Clearinghouse, should you need
assistance with recovering RDS CALs.
8. On the same Obtain Client License Key Pack page, enter the license key pack ID,
and then select Next to migrate the RDS CALs to your license server.
) Important
Keep a copy of the license key pack ID. Having this information with you
facilitates communications with the Microsoft Clearinghouse should you need
assistance with recovering RDS CALs.
2. On the same Obtain Client License Key Pack page, enter the license key pack ID,
and then select Next to migrate the RDS CALs to your license server.
Feedback
Was this page helpful? Yes No
Use certificates in Remote Desktop
Services
Article • 08/06/2024
You can use certificates to secure connections to your Remote Desktop Services (RDS)
deployment and between RDS server roles. RDS uses Secure Socket Layer (SSL) or
Transport Layer Security (TLS) to encrypt connections to the RDS Web, Connection
Broker and Gateway role services.
Prerequisites
The following things are required to use certificates in RDS:
A computer or computers with the RDS role configured. To learn more, see Install
or uninstall roles, role services, or features.
An export of the certificate with the corresponding private key in .pfx format.
To learn more about exporting the private key, see Export a certificate with its
private key.
7 Note
If you're using Active Directory Certificate Services (AD CS) to issue certificates, you
can also create a certificate template or duplicate the Web Server certificate
template. To learn more about creating certificate templates, see Create a new
certificate template.
GUI
2. On the Overview tab, under Deployment Overview, select TASKS, then select
Edit Deployment Properties.
4. Choose Select existing certificate, select Browse, locate your certificate file in
.pfx format, then select Open.
5. In the Password field, enter the password for the certificate you created, then
select OK.
6. Select the Allow the certificate to be added to the Trusted Root Certification
Authorities certificate store on the destination computers checkbox, then
select OK.
7 Note
Even if you have multiple servers in the deployment, Server Manager imports
the certificate to all servers. Server Manager places the certificate in the trusted
root for each server, then binds the certificate to its respective roles.
You might want to use certificates for the RDS Session Host along with the certificates
you configured in Server Manager. For more information about RDS Session Host
certificates, see Remote Desktop listener certificate configurations.
Related content
Remote Desktop Services - Secure data storage with UPDs
Feedback
Was this page helpful? Yes No
Upgrade Remote Desktop Services
deployments
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
In this article, learn about which Remote Desktop Services (RDS) versions can be
upgraded and the order to upgrade your Remote Desktop (RD) role services.
7 Note
2. RD License servers should be upgraded before you upgrade your RD Session Host
servers.
7 Note
RD license servers from an older version of Windows Server work with newer
versions, but they can only process client access licenses (CALs) from the older
Windows Server version. They can't use the newer Windows Server CALs. For
more information about RD license servers, see RDS CAL version
compatibility.
3. RD Session Host servers can be upgraded next. Avoid downtime during upgrade
by splitting the servers to be upgraded into steps as detailed. All will be functional
after the upgrade. To upgrade, use the steps described in Upgrading your Remote
Desktop Session Host to the latest Windows Server version.
4. RD Virtualization Host servers can be upgraded next. To upgrade, use the steps
described in Upgrading your Remote Desktop Virtualization Host to the latest
Windows Server version.
7 Note
7 Note
Known issues
Issue: If the RD deployment has the RD Web Access (RDWA) Role already installed and
has been upgraded from a previous windows installation, a new upgrade might fail. For
example, if the deployment containing RDWA upgraded from Server 2012 R2 to Server
2019, another upgrade to Server 2022 might encounter a failure.
Workaround: Before migrating for the second time, check if the following registry key is
present: HKLM\SOFTWARE\Microsoft\Terminal Server Web Access\IsInstalled
If it isn't present, open an elevated PowerShell prompt, then run the following
commands:
PowerShell
Feedback
Was this page helpful? Yes No
Upgrading your Remote Desktop
Session Host
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
) Important
All applications must be uninstalled before the upgrade and reinstalled after the
upgrade to avoid any app compatibility issues that may rise because of the
upgrade.
1. Identify the servers to be upgraded, say, half the servers in the collection.
6. Set Allow New Connections to "false" on the remaining servers in the collection.
9. Set Allow New Connections to "true" on the upgraded servers in the collection.
10. Upgrade the remaining servers in the deployment by following steps 3 through 9.
Upgrading a standalone RD Session Host
server
A standalone RD Session Host server can be upgraded anytime.
Feedback
Was this page helpful? Yes No
Upgrading your Remote Desktop
Virtualization Host
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
4. All collections should be available and functional after the upgrades are complete.
2. Isolate one or more of the RDVH servers targeted for the initial round of
upgrading. By migrating all VMs to other 'not to be upgraded yet' RDVH servers
that remain part of the original cluster.
b. Select Roles.
d. Select Move and choose either Live or Quick Migration to move the VMs to
one or more of the RD Virtualization Host Servers that aren't part of the initial
upgrade. Use Live or Quick Migration depending on factors such as hardware
compatibility or online requirements.
3. Evict the RDVH servers, prepared for upgrading, from the original cluster.
5. After the targeted RDVH servers have been successfully upgraded, create a new
cluster and CSV, which needs to be on an entirely different SAN volume.
7. Create a folder structure in the new CSV that mimics the existing folder structure in
the existing CSV. This includes the collection folders and each VM's top level
subfolders.
8. From the various VM Collection folders on the original CSV, copy over the /IMGS
folder and contents to the new collection folders in the same locations on the new
CSV.
9. On the source RDVH machine, use Cluster Manager to remove the VM's
configuration for high availability:
b. Select Roles.
10. On one of the nonupgraded RDVH servers, use Hyper-V Manager to move all VMs
to one of the upgraded RDVH servers and new Cluster CSV:
e. Provide the targeted upgraded RDVH server's name on the Specify Destination
Computer page, and then select Next.
f. Choose Move the virtual machine's data to a single location, and then select
Next.
) Important
Ensure this path is to an empty folder for the specific VM.
7 Note
11. Once the VMs are relocated, add them as cluster High Availability objects:
b. Right-click the Roles node, and then select Configure Role. Select Next on the
Start page of the High Availability wizard.
c. Choose Virtual Machine from the list of available roles, and then select Next. A
list of VMs that aren't configured is shown.
d. Select all the VMs. Select Next and then select Next again on the confirmation
page to start the configuration task.
12. Once you have relocated all VMs, upgrade the remaining RDVH servers. Use the
above steps for balancing VM locations as appropriate.
7 Note
Feedback
Was this page helpful? Yes No
Deploy your Remote Desktop
environment
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Use the following steps to deploy the Remote Desktop servers in your environment. You
can install the server roles on physical machines or virtual machines, depending on
whether you are creating an on-premises, cloud-based, or hybrid environment.
If you are using virtual machines for any of the Remote Desktop Services servers, make
sure you have prepared those virtual machines.
1. Add all the servers you're going to use for Remote Desktop Services to Server
Manager:
a. In Server Manager, click Manage > Add Servers.
b. Click Find Now.
c. Click each server in the deployment (for example, Contoso-Cb1, Contoso-
WebGw1, and Contoso-Sh1) and click OK.
4. Activate the RD License Server and add it to the License Servers group:
a. In Server Manager, click Remote Desktop Services > Servers. Right-click the
server with the Remote Desktop Licensing role installed and select RD Licensing
Manager.
b. In RD Licensing Manager, select the server, and then click Action > Activate
Server.
c. Accept the default values in the Activate Server Wizard. Continue accepting
default values until you reach the Company information page. Then, enter your
company information.
d. Accept the defaults for the remaining pages until the final page. Clear Start
Install Licenses Wizard now, and then click Finish.
e. Select Action > Review Configuration > Add to Group > OK. Enter credentials
for a user in the AAD DC Administrators group, and register as SCP. This step
might not work if you are using Microsoft Entra Domain Services, but you can
ignore any warnings or errors.
6. Create and install self-signed certificates for the RD Gateway and RD Connection
Broker servers.
7 Note
a. In Server Manager, click Remote Desktop Services > Overview > Tasks > Edit
Deployment Properties.
b. Expand Certificates, and then scroll down to the table. Click RD Gateway >
Create new certificate.
c. Enter the certificate name, using the external FQDN of the RD Gateway server
(for example, contoso.westus.cloudapp.azure.com) and then enter the password.
d. Select Store this certificate and then browse to the shared folder you created
for certificates in a previous step. (For example,\Contoso-Cb1\Certificates.)
e. Enter a file name for the certificate (for example, ContosoRdGwCert), and then
click Save.
f. Select Allow the certificate to be added to the Trusted Root Certificate
Authorities certificate store on the destination computers, and then click OK.
g. Click Apply, and then wait for the certificate to be successfully applied to the RD
Gateway server.
h. Click RD Web Access > Select existing certificate.
i. Browse to the certificate created for the RD Gateway server (for example,
ContosoRdGwCert), and then click Open.
j. Enter the password for the certificate, select Allow the certificate to be added
to the Trusted Root Certificate store on the destination computers, and then
click OK.
k. Click Apply, and then wait for the certificate to be successfully applied to the RD
Web Access server.
l. Repeat substeps 1-11 for the RD Connection Broker - Enable Single Sign On
and RD Connection Broker - Publishing services, using the internal FQDN of
the RD Connection Broker server for the new certificate's name (for example,
Contoso-Cb1.Contoso.com).
7. Export self-signed public certificates and copy them to a client computer. If you are
using certificates from a trusted certificate authority, you can skip this step.
a. Launch certlm.msc.
b. Expand Personal, and then click Certificates.
c. In the right-hand pane right-click the RD Connection Broker certificate intended
for client authentication, for example Contoso-Cb1.Contoso.com.
d. Click All Tasks > Export.
e. Accept the default options in the Certificate Export Wizard accept defaults until
you reach the File to Export page.
f. Browse to the shared folder you created for certificates, for example \Contoso-
Cb1\Certificates.
g. Enter a File name, for example ContosoCbClientCert, and then click Save.
h. Click Next, and then click Finish.
i. Repeat substeps 1-8 for the RD Gateway and Web certificate, (for example
contoso.westus.cloudapp.azure.com), giving the exported certificate an
appropriate file name, for example ContosoWebGwClientCert.
j. In File Explorer, navigate to the folder where the certificates are stored, for
example \Contoso-Cb1\Certificates.
k. Select the two exported client certificates, then right-click them, and click Copy.
l. Paste the certificates on the local client computer.
8. Configure the RD Gateway and RD Licensing deployment properties:
a. In Server Manager, click Remote Desktop Services > Overview > Tasks > Edit
Deployment Properties.
b. Expand RD Gateway and clear the Bypass RD Gateway server for local
addresses option.
c. Expand RD licensing and select Per User
d. Click OK.
9. Create a session collection. These steps create a basic collection. Check out Create
a Remote Desktop Services collection for desktops and apps to run for more
information about collections.
a. In Server Manager, click Remote Desktop Services > Collections > Tasks >
Create Session Collection.
b. Enter a collection Name (for example, ContosoDesktop).
c. Select an RD Session Host Server (Contoso-Sh1), accept the default user groups
(Contoso\Domain Users), and enter the Universal Naming Convention (UNC)
Path to the user profile disks created above (\Contoso-Cb1\UserDisks).
d. Set a Maximum size, and then click Create.
You've now created a basic Remote Desktop Services infrastructure. If you need to
create a highly-available deployment, you can add a connection broker cluster or a
second RD Session Host server.
Feedback
Was this page helpful? Yes No
Create a Remote Desktop Services
collection for desktops and apps to run
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Use the following steps to create a Remote Desktop Services session collection. A
session collection holds the apps and desktops you want to make available to users.
After you create the collection, publish it so users can access it.
Before you create a collection, you need to decide what kind of collection you need:
pooled desktop sessions or personal desktop sessions.
With a pooled session, multiple users access a shared pool of resources, while with a
personal desktop session, users are assigned their own desktop from within the pool.
The pooled session provides lower overall cost, while personal sessions enable users to
customize their desktop experience.
If you need to share graphics-intensive hosted applications, you can combine personal
session desktops with the new Discrete Device Assignment (DDA) capability to also
provide support for hosted applications that require accelerated graphics. Check out
Which graphics virtualization technology is right for you for more information.
Regardless of the type of collection you choose, you'll populate those collections with
RemoteApps - programs and resources that users can access from any supported device
and work with as though the program was running locally.
-PersonalUnmanaged - Specifies the type of session collection that lets you assign
users to a personal session host server. If you don't specify this parameter, then the
collection is created as a traditional RD Session Host collection, where users are
assigned to the next available session host when they sign in.
-GrantAdministrativePrivilege - If you use -PersonalUnmanaged, specifies that
the user assigned to the session host be given administrative privileges. If you
don't use this parameter, users are granted only standard user privileges.
-AutoAssignUser - If you use -PersonalUnmanaged, specifies that new users
connecting through the RD Connection Broker are automatically assigned to an
unassigned session host. If there are no unassigned session hosts in the collection,
the user will see an error message. If you don't use this parameter, you have to
manually assign users to a session host before they sign in.
You can use PowerShell cmdlets to manage your personal desktop session collections.
See Manage your personal desktop session collections for more information.
Feedback
Was this page helpful? Yes No
Deploy the Remote Desktop Gateway
role
Article • 07/03/2024
This article will tell you how to use the Remote Desktop Gateway (RD Gateway) role to
deploy Remote Desktop Gateway servers in your Remote Desktop environment. You can
install the server roles on physical machines or virtual machines depending on whether
you are creating an on-premises, cloud-based, or hybrid environment.
2. In Server Manager, select Manage, then select Add Roles and Features. The Add
Roles and Features installer will open.
5. For Select destination server, select Select a server from the server pool. For
Server Pool, select the name of your local computer. When you're done, select
Next.
6. In Select Server Roles > Roles, select Remote Desktop Services. When you're
done, select Next.
8. For Select role services, select only Remote Desktop Gateway When you're
prompted to add required features, select Add Features. When you're done, select
Next.
12. For Confirm installation selections, select Install. Don't close the installer while the
installation process is happening.
Configure the RD Gateway role
Once the RD Gateway role is installed, you'll need to configure it.
3. In the RD Gateway Manager, right-click the name of your gateway, then select
Properties.
4. Open the SSL Certificate tab, select the Import a certificate into the RD Gateway
bubble, then select Browse and Import Certificate….
7. After you've imported the certificate and its private key, the display should show
the certificate’s key attributes.
7 Note
Next steps
If you want to add high availability to your RD Gateway role, see Add high availability to
the RD Web and Gateway web front.
Feedback
Was this page helpful? Yes No
Set up the Remote Desktop web client
for your users
Article • 07/03/2024
The Remote Desktop web client lets users access your organization's Remote Desktop
infrastructure through a compatible web browser. They'll be able to interact with remote
apps or desktops like they would with a local PC no matter where they are. Once you set
up your Remote Desktop web client, all your users need to get started is the URL where
they can access the client, their credentials, and a supported web browser.
) Important
The web client does support using Microsoft Entra application proxy but does not
support Web Application Proxy at all. See Using RDS with application proxy
services for details.
Make sure your deployment is configured for per-user client access licenses (CALs)
instead of per-device, otherwise all licenses will be consumed.
Make sure public trusted certificates are configured for the RD Gateway and RD
Web Access roles.
Make sure that any computers your users connect to are running one of the
following OS versions:
Windows 10 or later
Windows Server 2016 or later
Your users will see better performance connecting to Windows Server 2016 (or later) and
Windows 10 (version 1611 or later).
) Important
If you used the web client during the preview period and installed a version prior to
1.0.0, you must first uninstall the old client before moving to the new version. If you
receive an error that says "The web client was installed using an older version of
RDWebClientManagement and must first be removed before deploying the new
version," follow these steps:
1. On the RD Connection Broker server, obtain the certificate used for Remote
Desktop connections and export it as a .cer file. Copy the .cer file from the RD
Connection Broker to the server running the RD Web role.
3. On Windows Server 2016, update the PowerShellGet module since the inbox
version doesn't support installing the web client management module. To update
PowerShellGet, run the following cmdlet:
PowerShell
7 Note
To access the PowerShell Gallery, Transport Layer Security (TLS) 1.2 or higher is
required. Use the following command to enable TLS 1.2 in your PowerShell
session:
PowerShell
[Net.ServicePointManager]::SecurityProtocol =
[Net.ServicePointManager]::SecurityProtocol -bor
[Net.SecurityProtocolType]::Tls12
) Important
You'll need to restart PowerShell before the update can take effect, otherwise
the module may not work.
4. Install the Remote Desktop web client management PowerShell module from the
PowerShell gallery with this cmdlet:
PowerShell
5. After that, run the following cmdlet to download the latest version of the Remote
Desktop web client:
PowerShell
Install-RDWebClientPackage
6. Next, run this cmdlet with the bracketed value replaced with the path of the .cer
file that you copied from the RD Broker:
PowerShell
7. Finally, run this cmdlet to publish the Remote Desktop web client:
PowerShell
7 Note
8. When you're ready for users to access the web client, just send them the web client
URL you created.
7 Note
To see a list of all supported cmdlets for the RDWebClientManagement module, run
the following cmdlet in PowerShell:
PowerShell
1. Open an elevated PowerShell prompt on the RD Web Access server and run the
following cmdlet to download the latest available version of the web client:
PowerShell
Install-RDWebClientPackage
2. Optionally, you can publish the client for testing before official release by running
this cmdlet:
PowerShell
The client should appear on the test URL that corresponds to your web client URL
(for example, <https://server_FQDN/RDWeb/webclient-test/index.html> ).
PowerShell
This replaces the client for all users when they relaunch the web page.
2. Unpublish the Test and Production clients, uninstall all local packages and remove
the web client settings:
PowerShell
Uninstall-RDWebClient
PowerShell
7 Note
You still need an admin PC with internet access to download the necessary files
before transferring them to the offline server.
7 Note
The end-user PC needs an internet connection for now. This will be addressed in a
future release of the client to provide a complete offline scenario.
2. Import the Remote Desktop web client management PowerShell module from the
PowerShell gallery:
PowerShell
3. Download the latest version of the Remote Desktop web client for installation on a
different device:
PowerShell
Save-RDWebClientPackage "C:\WebClient\"
PowerShell
4. You have two options to retrieve the latest web client management PowerShell
module:
PowerShell
5. Deploy the latest version of the Remote Desktop web client from the local folder
(replace with the appropriate zip file):
PowerShell
5. In the list of Certificate Levels, select RD Connection Broker - Enable Single Sign
On. You have two options: (1) create a new certificate or (2) an existing certificate.
1. Open the certificate bound to the Broker and copy the Thumbprint value.
2. To bind this certificate to the secure port 3392, open an elevated PowerShell
window and run the following command, replacing "< thumbprint >" with the
value copied from the previous step:
PowerShell
7 Note
To check if the certificate has been bound correctly, run the following
command:
PowerShell
In the list of SSL Certificate bindings, ensure that the correct certificate is
bound to port 3392.
2. To bind this certificate to the secure port 3392, open an elevated PowerShell
window and run the following command, replacing "< thumbprint >" with the
value copied from the previous step:
PowerShell
7 Note
To check if the certificate has been bound correctly, run the following
command:
PowerShell
In the list of SSL Certificate bindings, ensure that the correct certificate is
bound to port 3392.
General Observations
Ensure that both the RD Session Host and RD Broker server are running Windows
Server 2019.
Ensure that public trusted certificates are configured for both the RD Session Host
and RD Broker server.
7 Note
If both the RD Session Host and the RD Broker server share the same
machine, set the RD Broker server certificate only. If the RD Session Host and
RD Broker server use different machines, both must be configured with
unique certificates.
The Subject Alternative Name (SAN) for each certificate must be set to the
machine's Fully Qualified Domain Name (FQDN). The Common Name (CN) must
match the SAN for each certificate.
Suppress telemetry
By default, users may choose to enable or disable collection of telemetry data that is
sent to Microsoft. For information about the telemetry data Microsoft collects, refer to
our Privacy Statement via the link in the About side panel.
PowerShell
By default, the user may select to enable or disable telemetry. A boolean value $false
will match the default client behavior. A boolean value $true disables telemetry and
restricts the user from enabling telemetry.
7 Note
This setting currently only works with the RDS web client, not the Azure Virtual
Desktop web client.
By default, users may choose to launch remote resources (1) in the browser or (2) by
downloading an .rdp file to handle with another client installed on their machine. As an
administrator, you can choose to restrict the remote resource launch method for your
deployment with the following PowerShell command:
PowerShell
By default, the user may select either launch method. A boolean value $true will force
the user to launch resources in the browser. A boolean value $false forces the user to
launch resources by downloading an .rdp file to handle with a locally installed RDP
client.
PowerShell
Troubleshooting
If a user reports any of the following issues when opening the web client for the first
time, the following sections will tell you what to do to fix them.
If that doesn't work, your server name in the web client URL might not match the name
provided by the RD Web certificate. Make sure your URL uses the FQDN of the server
hosting the RD Web role.
What to do if the user can't connect to a resource with
the web client even though they can see the items under
All Resources
If the user reports that they can't connect with the web client even though they can see
the resources listed, check the following things:
If the user gets an "unexpected server authentication certificate was received" error
message when they try to connect, then the message will show the certificate's
thumbprint. Search the RD Broker server's certificate manager using that thumbprint to
find the right certificate. Verify that the certificate is configured to be used for the RD
Broker role in the Remote Desktop deployment properties page. After making sure the
certificate hasn't expired, copy the certificate in .cer file format to the RD Web Access
server and run the following command on the RD Web Access server with the bracketed
value replaced by the certificate's file path:
PowerShell
Select the ellipsis in the upper-right corner and navigate to the About page in the
dropdown menu.
Under Capture support information select the Start recording button.
Perform the operation(s) in the web client that produced the issue you're trying to
diagnose.
Navigate to the About page and select Stop recording.
Your browser will automatically download a .txt file titled RD Console Logs.txt. This
file contains the full console log activity generated while reproducing the target
issue.
The console may also be accessed directly through your browser. The console is
generally located under the developer tools. For example, you can access the log in
Microsoft Edge by pressing the F12 key, or by selecting the ellipsis, then navigating to
More tools > Developer Tools.
Feedback
Was this page helpful? Yes No
Disable Automatic Reconnection
Article • 07/03/2024
Learn about Automatic Reconnection in Remote Desktop Service (RDS), lock screen
security, and how to disable Automatic Reconnection for RDS session hosts and clients
using Server Manager, Group Policy, and Remote Desktop Protocol (RDP) properties.
Automatic Reconnection
Microsoft Remote Desktop offers a wide range of features designed to enhance your
remote working experience, such as Automatic Reconnection. Automatic Reconnection
allows the client to seamlessly reconnect to their existing sessions, giving a smooth,
uninterrupted user experience when temporary network disruptions occur. To learn
more about the automatic reconnection behavior, see the Automatic Reconnection
open specification. Automation Reconnection is available to Remote Desktop when
connecting to a local PC or Remote Desktop Services (RDS).
) Important
Prerequisites
Before you can configure Automatic Reconnection for Remote Desktop, you need to
complete the following prerequisites:
A Windows client or Windows Server machine to connect from and to.
An account that is a member of RDS session host administrators group, or
equivalent.
If your machine is a domain member, you also need a domain account that is a
member of the Group Policy Creator Owners group, or equivalent.
A Windows Server with the RDS installed and configured. To learn more about
deploying RDS, see Deploy your Remote Desktop environment.
A Remote Desktop Session Collection. To learn more about creating a Remote
Desktop Session Collection, see Create a Remote Desktop Services collection for
desktops and apps to run.
Tip
If you disable Automatic Reconnection from your server, clients will be unable
to perform Automatic Reconnection regardless of the client configuration.
Desktop Services. To disabled Automatic Reconnection, select the relevant method and
follow the steps.
RDP file
3. Scroll to the last line of the file, then enter the following text.
RDP
autoreconnection enabled:i:0
Tip
Group Policy
Here's how to disable Automatic Reconnection for RDS session hosts using Group
Policy.
1. Open the Group Policy Management Console, create or edit a policy applied
to your server.
Next steps
Remote Desktop clients for Remote Desktop Services and remote PCs.
Feedback
Was this page helpful? Yes No
Set up email discovery to subscribe to
your RDS feed
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Have you ever had trouble getting your end users connected to their published RDS
feed, either because of a single missing character in the feed URL or because they lost
the email with the URL? Nearly all Remote Desktop client applications support finding
your subscription by entering your email address, making it easier than ever to get your
users connected to their RemoteApps and desktops.
Make sure you have permission to add a TXT record to the domain associated with
your email (for example, if your users have @contoso.com email addresses, you
would need permissions for the contoso.com domain)
Create an RD Web feed URL (https://<rdweb-dns-
name>.domain/RDWeb/Feed/webfeed.aspx, such as
https://rdweb.contoso.com/RDWeb/Feed/webfeed.aspx )
7 Note
If you're using Azure Virtual Desktop instead of Remote Desktop, you'll want to use
these URLs instead:
1. In your browser, connect to the website of the domain name registrar where your
domain is registered.
2. Navigate to the appropriate page for your registered domain where you can view,
add, and edit DNS records.
The names of the DNS records fields vary by domain name registrar, but this
process will result in a TXT record named _msradc.<domain_name> (such as
_msradc.contoso.com) that has a value of the full RD Web feed.
That's it! Now, launch the Remote Desktop application on your device and subscribe
yourself!
Feedback
Was this page helpful? Yes No
Fair Share technologies are enabled by
default in Remote Desktop Services
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
This article describes how a Remote Desktop Session Host (RDSH) server, Windows 10
Enterprise multi-session, Windows 11 Enterprise multi-session, and Windows Server use
Fair Share technologies to balance CPU, disk, and network bandwidth resources among
multiple Remote Desktop sessions.
Introduction
Remote Desktop Services (RDS) server, Windows 10 Enterprise multi-session and
Windows 11 Enterprise multi-session use Fair Share technologies for CPU resources to
manage resources. RDS builds on the Fair Share technologies to add features for
allocating network bandwidth and disk resources. Fair Share CPU Scheduling is enabled
by default, while Dynamic Disk Fair Share and Dynamic Network Fair Share are disabled.
You can change the defaults by using PowerShell and WMI.
7 Note
Before turning on Dynamic Disk Fair Share or Dynamic Network Fair Share, it's
recommended to review performance on applications that require exchanging
larger amounts of data.
In a centralized computing scenario, the Dynamic Network Fair Share feature tries to
fairly distribute network interface bandwidth load among the sessions.
Feedback
Was this page helpful? Yes No
License your RDS deployment with
client access licenses (CALs)
Article • 09/11/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Each user and device that connects to a Remote Desktop Session host needs a client
access license (CAL). You use RD Licensing to install, issue, and track RDS CALs.
When a user or a device connects to an RD Session Host server, the RD Session Host
server determines if an RDS CAL is needed. If needed, the RD Session Host server then
requests an RDS CAL from the Remote Desktop license server. If an appropriate
RDS CAL is available from a license server, the RDS CAL is issued to the client, and the
client is able to connect to the RD Session Host server and from there to the desktop or
apps they're trying to use.
There's a licensing grace period of 120 Days during which no license server is required.
Once the grace period ends, clients must have a valid RDS CAL issued by a license server
before they can log on to an RD Session Host server.
Use the following information to learn about how client access licensing works in
Remote Desktop Services and how to deploy and manage your licenses:
The following table outlines the similarities and differences between the two types of
CALs:
ノ Expand table
Per Device Per User
RDS CALs are physically assigned to each RDS CALs are assigned to a user in Active
device. Directory.
RDS CALs are tracked by the license server. RDS CALs are tracked by the license server.
RDS CALs can be tracked regardless of Active RDS CALs can't be tracked within a workgroup.
Directory membership.
You can revoke up to 20% of RDS CALs. You can't revoke any RDS CALs.
Temporary RDS CALs assigned on first logon Temporary RDS CALs aren't available.
are valid for 90 days.
Permanent CALs are valid for a random CALs are valid for 60 days before renewal or 90
period of 52–89 days before renewal. days before reassignment.
RDS CALs can't be overallocated. RDS CALs can be overallocated, in breach of the
Remote Desktop licensing agreement.
For example, the Per Device model would be appropriate in an environment where there
are two or more shifts using the same computers to access the RD Session Hosts. The
Per User model would be best for environments where each user has their own
dedicated Windows devices to access the RD Session Hosts.
The next time that device connects, as long as the license server is activated and there
are available RDS CALs, the license server upgrades the temporary RDS CAL token to a
full RDS CAL token and issues a permanent RDS Per Device CAL. If no license tokens are
available, the temporary RDS CAL token continues to function for 90 days.
Every time the client device connects to the RDS Host, it presents its RDS CAL certificate
to the server. The server checks not only whether the client device has a valid certificate,
but also the expiration date of that certificate. If the expiration date of the certificate is
within seven days of the current date, the RDS Host connects to the license server to
renew the license for another random period of 52 to 89 days.
Per User RDS CALs show as expiring 60 days after they're issued. Shortly before their
expiration date, when the user signs in, the date is extended another 60 days. If a user
doesn't sign in before the expiration date, they drop off the list, but the next time they
sign in they show up again with a new expiration date.
For most license agreements, 90 days is the more relevant time period, because it's the
minimum time required before a license can be reassigned to a different user, except
under special circumstances.
You can use the Remote Desktop Licensing Manager to track and generate reports on
RDS Per User CALs. To ensure you're in compliance with the Remote Desktop Services
license terms, track the number of RDS Per User CALs used in your organization. Be sure
to have enough RDS Per User CALs installed on the license server for all of your users.
The following table shows which RDS CAL and RD session host versions are compatible
with each other.
ノ Expand table
Session host version RDS 2016 RDS 2019 RDS 2022 RDS 2025
CAL CAL CAL CAL
You must install your RDS CAL on a compatible RD license server. Any RDS license server
can host licenses from all previous versions of Remote Desktop Services and the current
version of Remote Desktop Services. For example, a Windows Server 2022 RDS license
server can host licenses from all previous versions of RDS, while a Windows Server 2016
RDS license server can only host licenses up to Windows Server 2016.
The following table shows which RDS CAL and license server versions are compatible
with each other.
ノ Expand table
License server version RDS 2016 RDS 2019 RDS 2022 RDS 2025
CAL CAL CAL CAL
Feedback
Was this page helpful? Yes No
Activate the Remote Desktop Services
license server
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
The Remote Desktop Services license server issues client access licenses (CALs) to users
and devices when they access the RD Session Host. You can activate the license server
by using the Remote Desktop Licensing Manager.
5. On the Server Roles page, check the box for Remote Desktop Services, then select
Next until you see the Remote Desktop Services page.
6. Select the roles you want to install. Make sure you include the Remote Desktop
Licensing role.
7. In the Add Roles and Features Wizard dialog box, select Add Features.
8. Select Next until you see the Confirmation page, then select Install.
For detailed information and other installation options, see Install or uninstall roles, role
services, or features
2. In the RD Licensing Manager, select the server, and then select Action > Activate
Server.
3. Confirm your preferred Connection method for license server activation and select
Next. The three options available are:
2. Then enter your optional company information. Select Next until you complete the
Activate Server Wizard.
3. Accept the defaults for the remaining pages until the final page. Clear Start Install
Licenses Wizard now, and then select Finish.
4. Select Action > Install Licenses. Enter your license code ready to enter when
prompted.
3. Return to the License Server Activation page and enter in the license server ID.
Select Next.
Activate by telephone
1. Select your Country or Region. Then select Next.
2. On the License Server Activation page, call Microsoft at the number displayed.
The representative will provide you with a license server ID to enter. Select Next.
Feedback
Was this page helpful? Yes No
Reactivate or deactivate a Remote
Desktop Services license server
Article • 07/03/2024
In this article learn how-to reactivate or deactivate a Remote Desktop Services license
server automatically over the internet, using a web browser, or by telephone.
Prerequisites
Consider the following prerequisites before either reactivating or deactivating the
license server:
1. In Server Manager, select Tools > Remote Desktop Services > Remote Desktop
Licensing Manager.
2. In RD Licensing Manager, verify that the connection method for the license server
is set to Automatic connection (recommended). To do this, right-click the license
server that you want to reactivate, and then select Properties. On the Connection
Method tab, change the connection method if necessary.
3. Right-click the license server that you want to reactivate, point to Advanced, and
then select Reactivate Server. The Reactivate Server Wizard starts.
5. On the Information Needed page, provide the requested information, and then
select Next.
6. Your request to reactivate the license server is sent to the Microsoft Clearinghouse
for processing, and the license server is reactivated.
1. In Server Manager, select Tools > Remote Desktop Services > Remote Desktop
Licensing Manager.
2. Verify that the connection method for the Remote Desktop license server is set
to Web Browser by right-clicking the license server that you want to reactivate, and
then select Properties.
3. Using a computer that has internet connectivity, connect to the Remote Desktop
Licensing website.
1. In Server Manager, select Tools > Remote Desktop Services > Remote Desktop
Licensing Manager.
2. Verify that the connection method for the Remote Desktop license server is set
to Telephone by right-clicking the license server that you want to reactivate, and
then select Properties. On the Connection Method tab, change the connection
method, if necessary, ensure that the correct country or region is selected in
the Select Country or Region list, and then select OK.
3. Right-click the license server that you want to reactivate, point to Advanced, and
then select Reactivate Server. The Reactivate Server Wizard starts.
5. Call Microsoft by using the telephone number that is displayed on the License
Server Reactivation page, and then provide the Microsoft customer support
representative with the product ID and license server ID that is displayed on your
screen.
6. The representative processes your request to reactivate the license server, and
provides you with a new license server ID. On the License Server Reactivation page
in the Reactivate Server Wizard, type the new license server ID that the
representative provides, and then select Next. The license server is reactivated.
1. In Server Manager, select Tools > Remote Desktop Services > Remote Desktop
Licensing Manager.
2. In the console tree, right-click the license server that you want to deactivate,
select Advanced, and then select Deactivate Server.
3. In the Deactivate Server Wizard, confirm that your name, your phone number
(optional), and your e-mail address that are listed under Information Needed are
correct. Then select Next. Your request to deactivate the license server is sent to
Microsoft Clearinghouse for processing.
7 Note
Your e-mail address is required if you are using the Internet method.
4. Select Finish.
When you deactivate a license server, you can't license other client computers from this
server until the license server is activated again.
Feedback
Was this page helpful? Yes No
Install RDS client access licenses on the
Remote Desktop license server
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Use the following information to install Remote Desktop Services client access licenses
(CALs) on the license server. Once the CALs are installed, the license server will issue
them to users as appropriate. Be sure to activate your license server first before
continuing with the following steps.
7 Note
You need Internet connectivity on the computer running Remote Desktop Licensing
Manager but not on the computer running the license server.
1. On the license server (usually the first RD Connection Broker), open the Remote
Desktop Licensing Manager.
4. Select the program you purchased your RDS CALs from, and then select Next. If
you are a service provider, select Service Provider License Agreement.
5. Enter the information for your license program. In most cases, this will be the
license code or an agreement number, but this varies depending on the license
program you're using.
6. Select Next.
7. Select the product version, license type, and number of licenses for your
environment, and then select Next. The license manager contacts the Microsoft
Clearinghouse to validate and retrieve your licenses.
Feedback
Was this page helpful? Yes No
License Remote Desktop session hosts
Article • 07/09/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
You can use the information in this article to configure licensing for session hosts on
your Remote Desktop Services (RDS) deployments. The process is slightly different
depending on which roles you assigned to the session host you're licensing.
Prerequisites
In order to install licenses for your session hosts, you need a Remote Desktop license
server with per-user or per-device client access licenses (CALs) activated.
2. In Server Manager, select Remote Desktop Services > Overview > Edit
Deployment Properties > RD Licensing.
3. Select the Remote Desktop licensing mode (either Per User or Per Device, as
appropriate for your deployment).
7 Note
If you use domain-joined servers for your RDS deployment, you can use both
Per User and Per Device CALs. If you use workgroup servers for your RDS
deployment, you have to use Per Device CALs In that case, Per User CALs are
not permitted.
Open the Group Policy Management Console (GPMC) and create or edit a
policy that targets your session hosts.
3. In the policy list, right-click Use the specified Remote Desktop license servers, and
then select Properties.
4. Select Enabled, and then enter the name of the license server under License
servers to use. If you have more than one license server, use commas to separate
their names.
5. Select OK.
6. In the policy list, right-click Set the Remote Desktop licensing mode, and then
select Properties.
7. Select Enabled.
8. Under Specify the licensing mode for the Remote Desktop Session Host server,
select Per Device or Per User, as appropriate for your deployment.
Ensure an RD Session Host can access an RD
licensing server in the same work group
This section only applies to work groups. Skip this section if your RD Session Host and
RD licensing server are joined to a domain in Active Directory. You can also skip this
section if the RD licensing server and RD Session Host server are the same machine.
After applying the security update for CVE-2024-38099 , RD licensing servers enforce
that RD Session Host servers present nonanonymous credentials when requesting or
querying licenses. To enforce nonanymous credentials exist, confirm that the NT
AUTHORITY\NETWORK SERVICE account under which the Remote Desktop Service runs
on the RD Session Host has access to credentials. Configure the machines in a work
group using the following steps.
1. Connect to the RD licensing server. If doing so remotely, you may need to start the
Remote Desktop Connection application using the mstsc.exe /admin command if
the target machine can't contact a RD licensing server.
2. Once connected, right-click Start, then select Run, and enter lusrmgr.msc . Then
press ENTER.
5. Choose a username and a unique strong password for the user. Then confirm the
password.
7. Select Create.
Then, on each RD Session Host server that needs to connect to the RD licensing server,
add the user:
1. Connect to the RD Session Host machine. If doing so remotely, you may need to
start the Remote Desktop Connection application if the target machine can’t
contact any RD licensing server. Open Remote Desktop Connection as an
administrator, or use the command: mstsc.exe /admin .
3. Then, add a username and password to the host computer with the following
command:
4. When prompted for the password, enter the password previously selected and
press ENTER.
The RD Session Host should now be able to connect to the RD licensing server.
Alternatively, the requirement for proper authentication can be disabled on the licensing
server. If you would like to disable the enforcement of authentication on your RD
licensing server despite the risk, you can modify the registry.
2 Warning
If you use Registry Editor incorrectly, you may cause serious problems that may
require you to reinstall your operating system. Microsoft cannot guarantee that you
can solve problems that result from using Registry Editor incorrectly. Use Registry
Editor at your own risk.
following values:
Name: DisableWorkgroupAuthEnforcement
Type: REG_DWORD
Data: 1
2 Warning
Next steps
Learn how to create reports to track RDS per-user CALs issued by a Remote Desktop
license server at Track your Remote Desktop Services client access licenses (RDS CALs).
Feedback
Was this page helpful? Yes No
Track your Remote Desktop Services
client access licenses (RDS CALs)
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use the Remote Desktop Licensing Manager tool to create reports to track the
RDS Per User CALs that have been issued by a Remote Desktop license server.
7 Note
If you're using Microsoft Entra Domain Services in your environment, the Remote
Desktop Licensing Manager tool won't work to obtain Per User CALs. Instead, you
need to track licensing manually, either through logon events, polling active
Remote Desktop connections through the Connection Broker, or another
mechanism that works for you.
1. In Remote Desktop Licensing Manager right-click the license server, click Create
Report, and then click CAL Usage.
2. The report is created and a message appears to confirm that the report was
successfully created. Click OK to close the message.
The report that you created appears in the Reports section under the node for the
license server. The report provides the following information:
You can also save the report as a CSV file to a folder location on the computer. To save
the report, right-click the report that you want to save, click Save As, and then specify
the file name and location to save the report.
Reports that you create are listed in the Reports node under the node for the license
server in Remote Desktop Licensing Manager. If you no longer need a report, you can
delete it.
Feedback
Was this page helpful? Yes No
Use multiple Remote Desktop license
servers
Article • 09/10/2024
When using multiple Remote Desktop (RD) license servers, after applying the security
update for CVE-2024-38231 , ensure that the servers can properly communicate with
one another. It's important that RD license servers can communicate with one another in
either of the following scenarios:
Workgroup-joined deployment
Workgroup-joined Remote Desktop deployments are meant for small deployments. We
don't recommend using multiple RD license servers in workgroup-joined Remote
Desktop deployments.
) Important
To use multiple RD license servers in the same workgroup, ensure that each license
server can authenticate to one another, and that they recognize each other as license
servers.
To ensure that LICSVR1 can authenticate to LICSVR2, you need to decide which account
LICSVR1 uses to connect to LICSVR2. We recommend creating a dedicated user account
on LICSVR2 with the following steps:
5. Choose a username and a unique strong password for the user. Then confirm the
password.
7. Select Create.
Then, on LICSVR1, add the user and its credentials so that the NT
AUTHORITY\NETWORK SERVICE account can authenticate to LICSVR2 with the following
steps:
1. Connect to LICSVR1. If doing so remotely, you may need to start the Remote
Desktop Connection application using the mstsc.exe /admin command if the target
machine can't contact an RD license server.
Bash
3. Then, add a username and password to the host computer with the following
command:
Bash
where <USERNAME> is the name of the user you decided that LICSVR1 uses to
authenticate to LICSVR2.
4. When prompted for the password, enter the password of that user.
PowerShell
Where <GROUP-NAME> is the desired name for the group and <USERNAME> is the
name of the user whose credentials are registered in LICSVR1.
To register that local group with the RD licensing service in the registry, run the
following PowerShell command:
PowerShell
Set-ItemProperty -Path
"HKLM:\SYSTEM\CurrentControlSet\Services\TermServLicensing\Parameters" -Name
" WorkgroupLicenseServerAccountsGroup" -Value "LICSVR2\<GROUP-NAME>" -Type
String
Domain-joined deployment
For domain-joined RD license servers to properly communicate with one another, they
need to know that communication is coming from another RD license server. This can be
achieved using one of the three manners described in this section.
PowerShell
Set-ItemProperty -Path
"HKLM:\SYSTEM\CurrentControlSet\Services\TermServLicensing\Parameters"
-Name " SpecifiedLicenseServers" -Value "<LicSrv1DnsHostName>","
<LicSrv2DnsHostName>" -Type MultiString
For historical reasons, RD licensing services that run on Active Directory domain
controllers don't require extra configuration.
) Important
Feedback
Was this page helpful? Yes No
Remote Desktop Services architecture
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Below are various configurations for deploying Remote Desktop Services to host
Windows apps and desktops for end-users.
7 Note
The architecture diagrams below show using RDS in Azure. However, you can
deploy Remote Desktop Services on-premises and on other clouds. These diagrams
are primarily intended to illustrate how the RDS roles are colocated and use other
services.
Basic deployment – This contains the minimum number of servers to create a fully
effective RDS environment
Highly available deployment – This contains all necessary components to have the
highest guaranteed uptime for your RDS environment
Basic deployment
Highly available deployment
RDS architectures with unique Azure PaaS roles
Though the standard RDS deployment architectures fit most scenarios, Azure continues
to invest in first-party PaaS solutions that drive customer value. Below are some
architectures showing how they incorporate with RDS.
For supported configurations and how to create this setup, see how to publish Remote
Desktop with Microsoft Entra application proxy.
Feedback
Was this page helpful? Yes No
Integrate your Remote Desktop
Gateway infrastructure using the
Network Policy Server (NPS) extension
and Microsoft Entra ID
Article • 01/08/2025
This article provides details for integrating your Remote Desktop Gateway infrastructure
with Microsoft Entra multifactor authentication using the Network Policy Server (NPS)
extension for Microsoft Azure.
The Network Policy Server (NPS) extension for Azure allows customers to safeguard
Remote Authentication Dial-In User Service (RADIUS) client authentication using Azure's
cloud-based multifactor authentication. This solution provides two-step verification for
adding a second layer of security to user sign-ins and transactions.
This article provides step-by-step instructions for integrating the NPS infrastructure with
Microsoft Entra multifactor authentication using the NPS extension for Azure. This
enables secure verification for users attempting to sign in to a Remote Desktop
Gateway.
7 Note
This article shouldn't be used with MFA Server deployments and should only be
used with Microsoft Entra multifactor authentication (Cloud-based) deployments.
The Network Policy and Access Services (NPS) gives organizations the ability to do the
following:
Define central locations for the management and control of network requests by
specifying who can connect, what times of day connections are allowed, the
duration of connections, and the level of security that clients must use to connect,
and so on. Rather than specifying these policies on each VPN or Remote Desktop
(RD) Gateway server, these policies can be specified once in a central location. The
RADIUS protocol provides the centralized Authentication, Authorization, and
Accounting (AAA).
Establish and enforce Network Access Protection (NAP) client health policies that
determine whether devices are granted unrestricted or restricted access to network
resources.
Provide a means to enforce authentication and authorization for access to 802.1x-
capable wireless access points and Ethernet switches.
Typically, organizations use NPS (RADIUS) to simplify and centralize the management of
VPN policies. However, many organizations also use NPS to simplify and centralize the
management of RD Desktop Connection Authorization Policies (RD CAPs).
Organizations can also integrate NPS with Microsoft Entra multifactor authentication to
enhance security and provide a high level of compliance. This helps ensure that users
establish two-step verification to sign in to the Remote Desktop Gateway. For users to
be granted access, they must provide their username/password combination along with
information that the user has in their control. This information must be trusted and not
easily duplicated, such as a cell phone number, landline number, application on a mobile
device, and so on. RDG currently supports phone call and Approve/Deny push
notifications from Microsoft authenticator app methods for 2FA. For more information
about supported authentication methods, see the section Determine which
authentication methods your users can use.
If your organization uses Remote Desktop Gateway and the user is registered for a TOTP
code along with Authenticator push notifications, the user can't meet the MFA challenge
and the Remote Desktop Gateway sign-in fails. In that case, you can set
OVERRIDE_NUMBER_MATCHING_WITH_OTP = FALSE to fallback to push notifications to
Approve/Deny with Authenticator.
In order for an NPS extension to continue working for Remote Desktop Gateway users,
this registry key must be created on the NPS server. On the NPS server, open the
registry editor. Navigate to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa
Name: OVERRIDE_NUMBER_MATCHING_WITH_OTP
Value = FALSE
Prior to the availability of the NPS extension for Azure, customers who wished to
implement two-step verification for integrated NPS and Microsoft Entra multifactor
authentication environments had to configure and maintain a separate MFA Server in
the on-premises environment as documented in Remote Desktop Gateway and Azure
Multi-Factor Authentication Server using RADIUS.
The availability of the NPS extension for Azure now gives organizations the choice to
deploy either an on-premises based MFA solution or a cloud-based MFA solution to
secure RADIUS client authentication.
Authentication Flow
For users to be granted access to network resources through a Remote Desktop
Gateway, they must meet the conditions specified in one RD Connection Authorization
Policy (RD CAP) and one RD Resource Authorization Policy (RD RAP). RD CAPs specify
who is authorized to connect to RD Gateways. RD RAPs specify the network resources,
such as remote desktops or remote apps, that the user is allowed to connect to through
the RD Gateway.
An RD Gateway can be configured to use a central policy store for RD CAPs. RD RAPs
can't use a central policy, as they're processed on the RD Gateway. An example of an RD
Gateway configured to use a central policy store for RD CAPs is a RADIUS client to
another NPS server that serves as the central policy store.
When the NPS extension for Azure is integrated with the NPS and Remote Desktop
Gateway, the successful authentication flow is as follows:
Prerequisites
This section details the prerequisites necessary before integrating Microsoft Entra
multifactor authentication with the Remote Desktop Gateway. Before you begin, you
must have the following prerequisites in place.
If you wish to manually create an on-premises RDS infrastructure quickly for testing
purposes, follow the steps to deploy one. Learn more: Deploy RDS with Azure quickstart
and Basic RDS infrastructure deployment.
For information on installing the NPS role service Windows Server 2012 or older, see
Install a NAP Health Policy Server. For a description of best practices for NPS, including
the recommendation to install NPS on a domain controller, see Best Practices for NPS.
Follow the steps in Getting started with Microsoft Entra multifactor authentication in the
cloud to enable MFA for your Microsoft Entra users.
Follow the steps in What does Microsoft Entra multifactor authentication mean for
me? to understand and properly configure your devices for MFA with your user
account.
) Important
The sign-in behavior for Remote Desktop Gateway doesn't provide the option to
enter a verification code with Microsoft Entra multifactor authentication. A user
account must be configured for phone verification or the Microsoft Authenticator
App with Approve/Deny push notifications.
) Important
Don't install the NPS extension on your Remote Desktop Gateway (RDG) server. The
RDG server doesn't use the RADIUS protocol with its client, so the extension can't
interpret and perform the MFA.
When the RDG server and NPS server with NPS extension are different servers, RDG
uses NPS internally to talk to other NPS servers and uses RADIUS as the protocol to
correctly communicate.
If you want to use your own certificates, you need to associate the public key of your
certificate to the service principal on Microsoft Entra ID, and so on.
To use the script, provide the extension with your Microsoft Entra Admin credentials and
the Microsoft Entra tenant ID that you copied earlier. Run the script on each NPS server
where you installed the NPS extension. Then do the following:
4. After the script verifies the installation of the PowerShell module, it displays the
PowerShell module dialog box. In the dialog box, enter your Microsoft Entra admin
credentials and password, and select Sign In.
5. When prompted, paste the Tenant ID you copied to the clipboard earlier, and press
ENTER.
The authentication flow requires that RADIUS messages be exchanged between the
Remote Desktop Gateway and the NPS server where the NPS extension is installed. This
means that you must configure RADIUS client settings on both Remote Desktop
Gateway and the NPS server where the NPS extension is installed.
2. On the menu, select Tools, point to Remote Desktop Services, and then select
Remote Desktop Gateway Manager.
6. In the Enter a name or IP address for the server running NPS field, type the IP
address or server name of the server where you installed the NPS extension.
7. Select Add.
8. In the Shared Secret dialog box, enter a shared secret, and then select OK. Ensure
you record this shared secret and store the record securely.
7 Note
Shared secret is used to establish trust between the RADIUS servers and
clients. Create a long and complex secret.
9. Select OK to close the dialog box.
1. On the RD Gateway server, open Server Manager. On the menu, select Tools, and
then select Network Policy Server.
2. In the NPS (Local) console, expand RADIUS Clients and Servers, and select
Remote RADIUS Server.
7 Note
This RADIUS Server Group was created when you configured the central
server for NPS policies. The RD Gateway forwards RADIUS messages to this
server or group of servers, if more than one in the group.
4. In the TS GATEWAY SERVER GROUP Properties dialog box, select the IP address or
name of the NPS server you configured to store RD CAPs, and then select Edit.
5. In the Edit RADIUS Server dialog box, select the Load Balancing tab.
6. In the Load Balancing tab, in the Number of seconds without response before
request is considered dropped field, change the default value from 3 to a value
between 30 and 60 seconds.
1. On the RD Gateway, in the NPS (Local) console, expand Policies, and select
Connection Request Policies.
5. Select Cancel.
7 Note
For more information about creating a connection request policy, see the article
Configure connection request policies documentation for the same.
2. In Server Manager, select Tools, and then select Network Policy Server.
3. In the Network Policy Server console, right-select NPS (Local), and then select
Register server in Active Directory.
1. On the NPS server where the NPS extension is installed, in the NPS (Local) console,
right-select RADIUS Clients and select New.
2. In the New RADIUS Client dialog box, provide a friendly name, such as Gateway,
and the IP address or DNS name of the Remote Desktop Gateway server.
3. In the Shared secret and the Confirm shared secret fields, enter the same secret
that you used before.
1. On the NPS Server, open the NPS (Local) console, expand Policies, and select
Network Policies.
4. In the Copy of Connections to other access servers dialog box, in Policy name,
enter a suitable name, such as RDG_CAP. Check Policy enabled, and select Grant
access. Optionally, in Type of network access server, select Remote Desktop
Gateway, or you can leave it as Unspecified.
5. Select the Constraints tab, and check Allow clients to connect without
negotiating an authentication method.
6. Optionally, select the Conditions tab and add conditions that must be met for the
connection to be authorized, for example, membership in a specific Windows
group.
7. Select OK. When prompted to view the corresponding Help topic, select No.
8. Ensure that your new policy is at the top of the list, that the policy is enabled, and
that it grants access.
Verify configuration
To verify the configuration, you need to sign in to the Remote Desktop Gateway with a
suitable RDP client. Be sure to use an account that is allowed by your Connection
Authorization Policies and is enabled for Microsoft Entra multifactor authentication.
As show in the following image, you can use the Remote Desktop Web Access page.
When you successfully entering your credentials for primary authentication, the Remote
Desktop Connect dialog box shows a status of Initiating remote connection, as shown in
the following section.
Once you have successfully authenticated using the secondary authentication method,
you're logged into the Remote Desktop Gateway as normal. However, because you're
required to use a secondary authentication method using a mobile app on a trusted
device, the sign in process is more secure than it would be otherwise.
This command displays Windows events that show the user met resource
authorization policy requirements (RD RAP) and was granted access.
This command displays the events that show when user met connection
authorization policy requirements.
You can also view this log and filter on event IDs, 300 and 200. To query successful logon
events in the Security event viewer logs, use the following command:
This command can be run on either the central NPS or the RD Gateway Server.
You can also view the Security log or the Network Policy and Access Services custom
view:
On the server where you installed the NPS extension for Microsoft Entra multifactor
authentication, you can find Event Viewer application logs specific to the extension at
Application and Services Logs\Microsoft\AzureMfa.
Troubleshoot Guide
If the configuration isn't working as expected, the first place to start to troubleshoot is
to verify that the user is configured to use Microsoft Entra multifactor authentication.
Have the user sign in to the Microsoft Entra admin center . If users are prompted for
secondary verification and can successfully authenticate, you can eliminate an incorrect
configuration of Microsoft Entra multifactor authentication.
If Microsoft Entra multifactor authentication is working for the user(s), you should review
the relevant Event logs. These include the Security Event, Gateway operational, and
Microsoft Entra multifactor authentication logs that are discussed in the previous
section.
See the following example output of Security log showing a failed logon event (Event ID
6273).
What follows is a related event from the AzureMFA logs:
To perform advanced troubleshoot options, consult the NPS database format log files
where the NPS service is installed. These log files are created in
%SystemRoot%\System32\Logs folder as comma-delimited text files.
For a description of these log files, see Interpret NPS Database Format Log Files. The
entries in these log files can be difficult to interpret without importing them into a
spreadsheet or a database. You can find several IAS parsers online to assist you in
interpreting the log files.
The following image shows the output of one such downloadable shareware
application .
Next steps
How to get Microsoft Entra multifactor authentication
Remote Desktop Gateway and Azure Multi-Factor Authentication Server using RADIUS
Feedback
Was this page helpful? Yes No
You can use Microsoft Entra Domain Services in your Remote Desktop Services
deployment in the place of Windows Server Active Directory. Microsoft Entra Domain
Services lets you use your existing Microsoft Entra identities in with classic Windows
workloads.
When you finish integrating Microsoft Entra Domain Services into your Remote Desktop
deployment, your architecture will look something like this:
To see how this architecture compares with other RDS deployment scenarios, check out
Remote Desktop Services architectures.
To get a better understanding of Microsoft Entra Domain Services, check out the
Microsoft Entra Domain Services overview and How to decide if Microsoft Entra Domain
Services is right for your use-case.
Use the following information to deploy Microsoft Entra Domain Services with RDS.
Prerequisites
Before you can bring your identities from Microsoft Entra ID to use in an RDS
deployment, configure Microsoft Entra ID to save the hashed passwords for your users'
identities. Born-in-the-cloud organizations don't need to make any additional changes
in their directory; however, on-premises organizations need to allow password hashes to
be synchronized and stored in Microsoft Entra ID, which may not be permissible to
some organizations. Users will have to reset their passwords after making this
configuration change.
1. Enable Microsoft Entra Domain Services. Note that the linked article does the
following:
Walk through creating the appropriate Microsoft Entra groups for domain
administration.
Highlight when you might have to force users to change their password so
their accounts can work with Microsoft Entra Domain Services.
2. Set up RDS. You can either use an Azure template or deploy RDS manually.
Settings
Resource group: Use the resource group where you want to create the
RDS resources.
7 Note
Right now this has to be the same resource group where the Azure
resource manager virtual network exists.
Dns Label Prefix: Enter the URL that you want users to use to access RD
Web.
Ad Domain Name: Enter the full name of your Microsoft Entra instance,
for example, "contoso.onmicrosoft.com" or "contoso.com".
Ad Vnet Name and Ad Subnet Name: Enter the same values that you
used when you created the Azure resource manager virtual network.
This is the subnet to which the RDS resources will connect.
Feedback
Was this page helpful? Yes No
Publish Remote Desktop with Microsoft
Entra application proxy
Article • 02/27/2024
Remote Desktop Service and Microsoft Entra application proxy work together to
improve the productivity of workers who are away from the corporate network.
Current application proxy customers who want to offer more applications to their
end users by publishing on-premises applications through Remote Desktop
Services.
Current Remote Desktop Services customers who want to reduce the attack surface
of their deployment by using Microsoft Entra application proxy. This scenario gives
a set of two-step verification and Conditional Access controls to RDS.
RD Web provides the user a public endpoint to sign in and view the various on-
premises applications and desktops they can access. When you select a resource, a
Remote Desktop Protocol (RDP) connection is created using the native app on the
OS.
RD Gateway comes into the picture once a user launches the RDP connection. The
RD Gateway handles encrypted RDP traffic coming over the internet and translates
it to the on-premises server that the user is connecting to. In this scenario, the
traffic the RD Gateway is receiving comes from the Microsoft Entra application
proxy.
Tip
If you haven't deployed RDS before, or want more information before you begin,
learn how to seamlessly deploy RDS with Azure Resource Manager and Azure
Marketplace.
Requirements
Both the RD Web and RD Gateway endpoints must be located on the same
machine, and with a common root. RD Web and RD Gateway are published as a
single application with application proxy so that you can have a single sign-on
experience between the two applications.
Deploy RDS, and enabled application proxy. Enable application proxy and open
required ports and URLs, and enabling Transport Layer Security (TLS) 1.2 on the
server. To learn which ports need to be opened, and other details, see Tutorial: Add
an on-premises application for remote access through application proxy in
Microsoft Entra ID.
Your end users must use a compatible browser to connect to RD Web or the RD
Web client. For more information, see Support for client configurations.
When publishing RD Web, use the same internal and external Fully Qualified
Domain Name (FQDN) when possible. If the internal and external Fully Qualified
Domain Names (FQDNs) are different, disable Request Header Translation to avoid
the client receiving invalid links.
If you're using the RD Web client, you must use the same internal and external
FQDN. If the internal and external FQDNs are different, you encounter websocket
errors when making a RemoteApp connection through the RD Web client.
If you're using RD Web on Internet Explorer, you need to enable the RDS ActiveX
add-on.
If you're using the RD Web client, you'll need to use the application proxy
connector version 1.5.1975 or later.
For the Microsoft Entra pre authentication flow, users can only connect to
resources published to them in the RemoteApp and Desktops pane. Users can't
connect to a desktop using the Connect to a remote PC pane.
If you're using Windows Server 2019, you need to disable HTTP2 protocol. For
more information, see Tutorial: Add an on-premises application for remote access
through application proxy in Microsoft Entra ID.
2. Assign users to the published RD application. Make sure they all have access to
RDS, too.
3. Leave the single sign-on method for the application as Microsoft Entra single
sign-on disabled.
7 Note
Your users are asked to authenticate once to Microsoft Entra ID and once to
RD Web, but they have single sign-on to RD Gateway.
4. Browse to Identity > Applications > App registrations. Choose your app from the
list.
6. Update the Home page URL field to point to your RD Web endpoint (like
https://<rdhost>.com/RDWeb ).
4. Select Overview.
5. In the Deployment Overview section, select the drop-down menu and choose Edit
deployment properties.
6. In the RD Gateway tab, change the Server name field to the External URL that you
set for the RD host endpoint in application proxy.
For example:
Set-RDSessionCollectionConfiguration -CollectionName
"QuickSessionCollection" -CustomRdpProperty "pre-authentication server
address:s:https://remotedesktoptest-aadapdemo.msappproxy.net/`nrequire
pre-authentication:i:1"
7 Note
9. To verify the modification of the custom RDP properties and view the RDP file
contents that are downloaded from RDWeb for this collection, run the following
command.
Now that Remote Desktop is configured, Microsoft Entra application proxy takes over as
the internet-facing component of RDS. Remove the other public internet-facing
endpoints on your RD Web and RD Gateway machines.
The Remote Desktop web client provides access for your organization's Remote Desktop
infrastructure. An HTML5-compatible web browser such as Microsoft Edge, Google
Chrome, Safari, or Mozilla Firefox (v55.0 and later) is required.
1. Go to the external URL you set up, or find your application in the MyApps panel .
2. Authenticate to Microsoft Entra ID. Use an account that you assigned to the
application.
3. Authenticate to RD Web.
4. Once your RDS authentication succeeds, you can select the desktop or application
you want, and start working.
ノ Expand table
Pre authentication RD Web- Windows 7/10/11 using Microsoft Edge Chromium IE mode +
RDS ActiveX add-on
Pre authentication RD Web Client- HTML5-compatible web browser such as Microsoft Edge,
Internet Explorer 11, Google Chrome, Safari, or Mozilla Firefox (v55.0 and
later)
Passthrough Any other operating system that supports the Microsoft Remote Desktop
application
7 Note
Microsoft Edge Chromium IE mode is required when the My Apps portal is used for
The pre authentication flow offers more security benefits than the passthrough flow.
With pre authentication you can use Microsoft Entra authentication features like single
sign-on, Conditional Access, and two-step verification for your on-premises resources.
You also ensure that only authenticated traffic reaches your network.
To use passthrough authentication, there are just two modifications to the steps listed in
this article:
Next steps
Enable remote access to SharePoint with Microsoft Entra application proxy
Security considerations for accessing apps remotely by using Microsoft Entra
application proxy
Best practices for load balancing multiple app servers
Scale out your Remote Desktop Services
deployment by adding an RD Session
Host farm
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can improve the availability and scale of your RDS deployment by adding a Remote
Desktop Session Host (RDSH) farm.
Use the following steps to add another RD Session Host to your deployment:
1. Create a server to host the second RD Session Host. If you are using Azure virtual
machines, make sure to include the new VM in the same availability set that holds
your first RD Session Host.
7 Note
Step 1, creating a public IP address for the RDMS virtual machine, is only
necessary if you are using a VM for the RDMS and if it does not already have
an IP address assigned.
a. Create a public IP address for the virtual machine running Remote Desktop
Management Services (RDMS). The RDMS virtual machine will typically be the
virtual machine running the first instance of the RD Connection Broker role.
i. In the Azure portal, click Browse > Resource groups, click the resource group
for the deployment and then click the RDMS virtual machine (for example,
Contoso-Cb1).
ii. Click Settings > Network interfaces, and then click the corresponding
network interface.
iii. Click Settings > IP address.
iv. For Public IP address, select Enabled, and then click IP address.
v. If you have an existing public IP address you want to use, select it from the
list. Otherwise, click Create new, enter a name, and then click OK and then
Save.
b. Sign into the RDMS.
c. Add the new RDSH server to Server Manager:
i. Launch Server Manager, click Manage > Add Servers.
ii. In the Add Servers dialog, click Find Now.
iii. Select the server you want to use for the RD Session Host or the newly
created virtual machine (for example, Contoso-Sh2) and click OK.
d. Add the RDSH server to the deployment
i. Launch Server Manager.
ii. Click Remote Desktop Services > Overview > Deployment Servers > Tasks
> Add RD Session Host Servers.
iii. Select the new server (for example, Contoso-Sh2), and then click Next.
iv. On the Confirmation page, select Restart remote computers as needed, and
then click Add.
e. Add RDSH server to the collection farm:
i. Launch Server Manager.
ii. Click Remote Desktop Services and then click the collection to which you
want to add the newly created RDSH server (for example, ContosoDesktop).
iii. Under Host Servers, click Tasks > Add RD Session Host Servers.
iv. Select the newly created server (for example, Contoso-Sh2), and then click
Next.
v. On the Confirmation page, click Add.
Feedback
Was this page helpful? Yes No
Add the RD Connection Broker server to
the deployment and configure high
availability
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can deploy a Remote Desktop Connection Broker (RD Connection Broker) cluster to
improve the availability and scale of your Remote Desktop Services infrastructure.
Pre-requisites
Set up a server to act as a second RD Connection Broker—this can be either a physical
server or a VM.
Set up a database for the Connection Broker. You can use Azure SQL Database instance
or SQL Server in your local environment. We talk about using Azure SQL below, but the
steps still apply to SQL Server. You'll need to find the connection string for the database
and make sure you have the correct ODBC driver.
a. In the Azure portal, click Browse > Resource groups and click the resource
group for the deployment.
b. Select the SQL database you just created (for example, CB-DB1).
d. Copy the connection string for ODBC (includes Node.js), which should look like
this:
Driver={ODBC Driver 13 for SQL Server};Server=tcp:<YourHost>,
<HostPort>;Database=<DatabaseName>;Uid=<UserID>;Pwd=
<Password>;Encrypt=yes;TrustServerCertificate=no;Connection
Timeout=30;
e. Replace "your_password_here" with the actual password. You'll use this entire
string, with your included password, when connecting to the database.
2. Install the ODBC driver on the new Connection Broker:
a. If you are using a VM for the Connection Broker, create a public IP address for
the first RD Connection Broker. (You only have to do this if the RDMS virtual
machine does not already have a public IP address to allow RDP connections.)
i. In the Azure portal, click Browse > Resource groups, click the resource group
for the deployment, and then click the first RD Connection Broker virtual
machine (for example, Contoso-Cb1).
ii. Click Settings > Network interfaces, and then click the corresponding
network interface.
iii. Click Settings > IP address.
iv. For Public IP address, select Enabled, and then click IP address.
v. If you have an existing public IP address you want to use, select it from the
list. Otherwise, click Create new, enter a name, and then click OK and then
Save.
b. Connect to the first RD Connection Broker:
i. In the Azure portal, click Browse > Resource groups, click the resource group
for the deployment, and then click the first RD Connection Broker virtual
machine (for example, Contoso-Cb1).
ii. Click Connect > Open to open the Remote Desktop client.
iii. In the client, click Connect, and then click Use another user account. Enter
the user name and password for a domain administrator account.
iv. Click Yes when warned about the certificate.
c. Download the ODBC driver for SQL Server that matches the version in the ODBC
connection string. For the example string above, we need to install the version
13 ODBC driver.
d. Copy the sqlincli.msi file to the first RD Connection Broker server.
e. Open the sqlincli.msi file and install the native client.
f. Repeat steps 1-5 for each additional RD Connection Brokers (for example,
Contoso-Cb2).
g. Install the ODBC driver on each server that will run the connection broker.
Step 2: Configure load balancing on the RD
Connection Brokers
If you are using Azure infrastructure, you can create an Azure load balancer; if not, you
can set up DNS round-robin.
1. Connect to the RDMS server in the Azure portal. using Remote Desktop
Connection client
2. Create DNS records:
a. In Server Manager, click Tools > DNS.
b. In the left-hand pane, expand DNS, click the DNS machine, click Forward
Lookup Zones, and then click your domain name (for example, Contoso.com).
(It might take a few seconds to process the query to the DNS server for the
information.)
c. Click Action and New Host (A or AAAA).
d. Enter the DNS Name for the RD Connection Broker cluster (for example, hacb),
and then enter the IP address of the first RD Connection Broker.
e. Repeat steps 3-4 for each additional RD Connection Broker, providing each
unique IP address for each additional record.
For example, if the IP addresses for the two RD Connection Broker virtual machines are
10.0.0.8 and 10.0.0.9, you would create two DNS host records:
Feedback
Was this page helpful? Yes No
Add high availability to the RD Web and
Gateway web front
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can deploy a Remote Desktop Web Access (RD Web Access) and Remote Desktop
Gateway (RD Gateway) farm to improve the availability and scale of a Windows Server
Remote Desktop Services (RDS) deployment
Use the following steps to add an RD Web and Gateway server to an existing Remote
Desktop Services basic deployment.
Pre-requisites
Set up a server to act as an additional RD Web and RD Gateway - this can be either a
physical server or VM. This includes joining the server to the domain and enabling
remote management.
7 Note
You may need to manually restart the TSGateway service running on each
RD Gateway server, either through Server Manager or Task Manager.
7 Note
If your previous server running RD Web and RD Gateway was already set up behind
an external load balancer, skip ahead to step 4, select the existing backend pool,
and add the new server to the pool.
Remote Desktop Services (RDS) requires a domain-joined file server for user profile disks
(UPDs). To deploy a high availability domain-joined scale-out file server (SOFS) in Azure,
use Storage Spaces Direct with Windows Server 2016. If you're not familiar with UPDs or
Remote Desktop Services, check out Welcome to Remote Desktop Services.
7 Note
We recommend deploying your SOFS with DS-series VMs and premium storage data
disks, where there are the same number and size of data disks on each VM. You will
need a minimum of two storage accounts.
For small deployments, we recommend a 2-node cluster with a cloud witness, where the
volume is mirrored with 2 copies. Grow small deployments by adding data disks. Grow
larger deployments by adding nodes (VMs).
These instructions are for a 2-node deployment. The following table shows the VM and
disk sizes you'll need to store UPDs for the number of users in your business.
ノ Expand table
Users Total (GB) VM # Disks Disk type Disk size (GB) Configuration
Use the following steps to create a domain controller (we called ours "my-dc" below)
and two node VMs ("my-fsn1" and "my-fsn2") and configure the VMs to be a 2-node
Storage Spaces Direct SOFS.
5. Set up the file server cluster nodes. You can do this by deploying the Windows
Server 2016 Storage Spaces Direct SOFS cluster Azure template or by following
steps 6-11 to deploy manually.
6. To manually set up the file server cluster nodes:
a. Create the first node:
i. Create a new virtual machine using the Windows Server 2016 image. (Click
New > Virtual Machines > Windows Server 2016. Select Resource Manager,
and then click Create.)
ii. Set the basic configuration as follows:
Name: my-fsn1
VM disk type SSD
Use an existing resource group, the one that you created in step 3.
iii. Size: DS1, DS2, DS3, DS4, or DS5 depending on your user needs (see table at
beginning of these instructions). Ensure premium disk support is selected.
iv. Settings:
Name: my-fsn2
High Availability - select the availability set you created above.
7. Attach data disks to the cluster node VMs according to your user needs (as seen in
the table above). After the data disks are created and attached to the VM, set host
caching to None.
8. Set IP addresses for all VMs to static.
a. In the resource group, select a VM, and then click Network interfaces (under
settings). Select the listed network interface, and then click IP Configurations.
Select the listed IP configuration, select static, and then click Save.
b. Note the domain controller (my-dc for our example) private IP address (10.x.x.x).
9. Set primary DNS server address on NICs of the cluster node VMs to the my-dc
server. Select the VM, and then click Network Interfaces > DNS servers > Custom
DNS. Enter the private IP address you noted above, and then click Save.
10. Create an Azure storage account to be your cloud witness. (If you use the linked
instructions, stop when you get to "Configuring Cloud Witness with Failover
Cluster Manager GUI" - we'll do that step below.)
11. Set up the Storage Spaces Direct file server. Connect to a node VM, and then run
the following Windows PowerShell cmdlets.
a. Install Failover Clustering Feature and File Server Feature on the two file server
cluster node VMs:
PowerShell
$nodes = ("my-fsn1", "my-fsn2")
icm $nodes {Install-WindowsFeature Failover-Clustering -
IncludeAllSubFeature -IncludeManagementTools}
icm $nodes {Install-WindowsFeature FS-FileServer}
PowerShell
c. Configure the cloud witness. Use your cloud witness storage account name and
access key.
PowerShell
PowerShell
Enable-ClusterS2D
PowerShell
To view information about the cluster shared volume on the SOFS cluster, run
the following cmdlet:
PowerShell
Get-ClusterSharedVolume
PowerShell
Add-ClusterScaleOutFileServerRole -Name my-sofs1 -Cluster MY-CL1
PowerShell
You now have a share at \\my-sofs1\UpdStorage , which you can use for UPD storage
when you enable UPD for your users.
Feedback
Was this page helpful? Yes No
Use personal session desktops with
Remote Desktop Services
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
Use the following information to create and manage a personal session desktop
collection.
-PersonalUnmanaged - Specifies the type of session collection that lets you assign
users to a personal session host server. If you don't specify this parameter, then the
collection is created as a traditional RD Session Host collection, where users are
assigned to the next available session host when they sign in.
-GrantAdministrativePrivilege - If you use -PersonalUnmanaged, specifies that
the user assigned to the session host be given administrative privileges. If you
don't use this parameter, users are granted only standard user privileges.
-AutoAssignUser - If you use -PersonalUnmanaged, specifies that new users
connecting through the RD Connection Broker are automatically assigned to an
unassigned session host. If there are no unassigned session hosts in the collection,
the user will see an error message. If you don't use this parameter, you have to
manually assign users to a session host before they sign in.
-CollectionName <string>
-ConnectionBroker <string>
-User <string>
-Name <string>
-CollectionName <string>
-ConnectionBroker <string>
-Path <string>
-CollectionName <string>
-ConnectionBroker <string>
-Force
-Name <string>
-User <string>
–Force forces the command to run without asking for user confirmation.
-CollectionName <string>
-ConnectionBroker <string>
-User <string>
-Name <string>
You can run the cmdlet to query by collection name, user name, or by session desktop
name. If you specify only the –CollectionName parameter, the cmdlet returns a list of
session hosts and associated users. If you also specify the –User parameter, the session
host associated with that user is returned. If you provide the –Name parameter, the user
associated with that session host is returned.
-CollectionName <string>
-ConnectionBroker <string>
-Path <string>
All new cmdlets support the common parameters: -Verbose, -Debug, -ErrorAction, -
ErrorVariable, -OutBuffer, and -OutVariable. For more information, see
about_CommonParameters.
Feedback
Was this page helpful? Yes No
Prepare your virtual machines for
Remote Desktop
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can install Remote Desktop Services components on physical servers or on virtual
machines.
The first step is to create Windows Server virtual machines in Azure. You'll want to create
three VMs: one for the RD Session Host, one for the Connection Broker, and one for the
RD Web and RD Gateway. To ensure the availability of your RDS deployment, create an
availability set (under High availablility in the VM creation process) and group multiple
VMs in that availability set.
After you create your VMs, use the following steps to prepare them for RDS.
1. Connect to the virtual machine using the Remote Desktop Connection (RDC) client:
a. In the Azure portal open the Resource groups view, and then click the resource
group to use for the deployment.
b. Select the new RDSH virtual machine (for example, Contoso-Sh1).
c. Click Connect > Open to open the Remote Desktop client.
d. In the client, click Connect, and then click Use another user account. Enter the
user name and password for the local administrator account.
e. Click Yes when warned about the certificate.
2. Enable remote management:
a. In Server Manager, click Local Server > Remote management current setting
(disabled).
b. Select Enable remote management for this server.
c. Click OK.
3. Optional: You can temporarily set Windows Update to not automatically download
and install updates. This helps prevent changes and system restarts while you
deploy the RDSH server.
a. In Server Manager, click Local Server > Windows Update current setting.
b. Select Advanced options > Defer upgrades.
4. Add the server to the domain:
a. In Server Manager, click Local Server > Workgroup current setting.
b. Click Change > Domain, and then enter the domain name (for example,
Contoso.com).
c. Enter the domain administrator credentials.
d. Restart the virtual machine.
5. Repeat steps 1 through 4 for the RD Web and GW virtual machine.
6. Repeat steps 1 through 4 for the RD Connection Broker virtual machine.
7. Initialize and format the attached disk on the RD Connection Broker virtual
machine:
a. Connect to the RD Connection Broker virtual machine (step 1 above).
b. In Server Manager, click Tools > Computer Management.
c. Click Disk Management.
d. Select the attached disk, then MBR (Master Boot Record), and then click OK.
e. Right-click the new disk (marked as Unallocated) and click New Simple Volume.
f. In the New Simple Volume wizard, accept the default values but provide a
applicable name for the Volume label (like Shares).
8. On the RD Connection Broker virtual machine create file shares for the user profile
disks and certificates:
a. Open File Explorer, click This PC, and open the disk that you added for file
shares.
b. Click Home and New Folder.
c. Enter a name for the user disks folder, for example, UserDisks.
d. Right-click the new folder and click Properties > Sharing > Advanced Sharing.
e. Select Share this folder and click Permissions.
f. Select Everyone, and then click Remove. Now click Add, enter Domain Admins,
and click OK.
g. Select Allow Full Control, and then click OK > OK > Close.
h. Repeat steps c. to g. to create a shared folder for certificates.
Feedback
Was this page helpful? Yes No
Configure disaster recovery for Remote
Desktop Services
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
When you deploy Remote Desktop Services into your environment, it becomes a critical
part of your infrastructure, particularly the apps and resources that you share with users.
If the RDS deployment goes down due to anything from a network failure to a natural
disaster, users can't access those apps and resources, and your business is negatively
impacted. To avoid this, you can configure a disaster recovery solution that allows you to
failover your deployment - if your RDS deployment is unavailable, for whatever reason,
there is a backup available to automatically take over.
To keep your RDS deployment running in the case of a single component or machine
going down, we recommend configuring your RDS deployment for high availability. You
can do this by setting up an RDSH farm and ensuring your Connection Brokers are
clustered for high availability.
The disaster recovery solutions we recommend here are to protect your deployment
from catastrophic disaster - something that takes down your entire RDS deployment
(including redundant roles configured for high availability). If such a disaster hits, having
a disaster recovery solution built into your deployment will allow you to failover the
entire deployment and quickly get apps and resources up and running for your users.
Leverage multiple Azure data centers to ensure users can access your RDS
deployment, even if one Azure data center goes down (geo-redundancy)
Deploy Azure Site Recovery to provide failover for RDS components in site-to-site
or site-to-Azure failovers
Feedback
Was this page helpful? Yes No
Create a geo-redundant, multi-data
center RDS deployment for disaster
recovery
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can enable disaster recovery for your Remote Desktop Services deployment by
leveraging multiple data centers in Azure. Unlike a standard highly available RDS
deployment (as outlined in the Remote Desktop Services architecture), which uses data
centers in a single Azure region (for example, Western Europe), a multi-data center
deployment uses data centers in multiple geographic locations, increasing the
availability of your deployment - one Azure data center might be unavailable, but it is
unlikely that multiple regions would go down at the same time. By deploying a geo-
redundant RDS architecture, you can enable failover in the case of catastrophic failure of
an entire region.
You can use the instructions below to leverage Microsoft Azure infrastructure services
and RDS to deliver geo-redundant desktop hosting services and Subscriber Access
Licenses (SALs) to multiple tenants through the Microsoft Service Provider License
Agreement (SPLA) program . You can also use the steps below to create a geo-
redundant hosting service for your own employees using RDS User CALs extended
rights through Software Assurance .
Azure services - the Azure Management interfaces, including the Azure portal and
APIs, and public networking services, such as DNS and public IP addressing.
Desktop hosting service - Virtual machines, networks, storage, Azure services, and
Windows Server role services
Azure Fabric - Windows Server operating systems running the Hyper-V role, used
to virtualize physical servers, storage units, network switches, and routers. Using
Azure Fabric lets you create VMs, networks, storage, and applications independent
from underlying hardware.
In comparison, here is the architecture for a deployment that uses multiple Azure data
centers:
The entire RDS deployment is replicated in a second Azure region to create a geo-
redundant deployment. This architecture uses an active-passive model, where only one
RDS deployment is running at a time. A VNet-to-VNet connection lets the two
environments communicate with each other. The RDS deployments are based on a
single Active Directory forest/domain, and the AD servers replicate across the two
deployments, meaning users can sign into either deployment using the same
credentials. User settings and data stored in User Profile Disks (UPD) are stored on a
two-node cluster Storage Spaces Direct scale-out file server (SOFS). A second identical
Storage Spaces Direct cluster is deployed in the second (passive) region, and Storage
Replica is used to replicate the user profiles from the active to passive deployment.
Azure Traffic Manager is used to automatically direct end users to whichever
deployment is currently active - from the end user perspective, they access the
deployment using a single URL and are not aware of which region they end up using.
You could create a non-highly available RDS deployment in each region, but if even a
single VM is restarted in one region, a failover would occur, increasing the likelihood of
failovers occurring with associated performance impacts.
Deployment steps
Create the following resources in Azure to create a geo-redundant multi-data center
RDS deployment:
1. Two resource groups in two separate Azure regions. For example RG A (the active
deployment, RG stands for "resource group") and RG B (the passive deployment).
4. A VNet in RG B - make sure to use an address space that does not overlap the
deployment in RG A.
i. Adjust the address space of the DNS server private IP to correspond to the
VNet in RG B.
ii. Edit the computer names so that they don't collide with those in the
deployment in RG A.
Locate the VMs in the Resources section of the template. Change the
computerName field under osProfile. For example, "gateway" can
become"gateway-b"; "[concat('rdsh-', copyIndex())]" can become "
[concat('rdsh-b-', copyIndex())]", and "broker" can become "broker-b".
(You can also change the names of the VMs manually after you run the
template.)
b. As in step 3 above, use the information in Remote Desktop Services - High
availability to configure the other RDS components for high availability.
8. A Storage Spaces Direct scale-out file server with Storage Replica across the two
deployments. Use the PowerShell script to deploy the template across the
resource groups.
7 Note
You can provision storage manually (instead of using the PowerShell script
and template):
a. Deploy a two-node Storage Spaces Direct SOFS in RG A to store your user
profile disks (UPDs).
b. Deploy a second, identical Storage Spaces Direct SOFS in RG B - make sure
to use the same amount of storage in each cluster.
c. Set up Storage Replica with asynchronous replication between the two.
Enable UPDs
Storage Replica replicates data from a source volume (associated with the primary/active
deployment) to a destination volume (associated with the secondary/passive
deployment). By design, the destination cluster appears as Online (No Access) - Storage
Replica dismounts the destination volumes and their drive letters or mount points. This
means that enabling UPDs for the secondary deployment by providing the file share
path will fail, because the volume is not mounted.
Want to learn more about managing replication? Check out Cluster to cluster Storage
Replication.
2. Reverse the Storage Replica direction so that the destination volume becomes the
source volume (this mounts the volume and makes it accessible by the secondary
deployment). You can run Set-SRPartnership cmdlet to do this. For example:
PowerShell
3. Enable the user profile disks in the secondary (passive) deployment. Use the same
steps as you did for the primary deployment, in step 1.
4. Reverse the Storage Replica direction again, so the original source volume is again
the source volume in the SR Partnership, and the primary deployment can access
the file share. For example:
PowerShell
Note that Traffic Manager requires endpoints to return 200 OK in response to a GET
request in order to be marked as "healthy." The publicIP object created from the RDS
templates will function, but do not add a path addendum. Instead, you can give end
users the Traffic Manager URL with "/RDWeb" appended, for example:
http://deployment.trafficmanager.net/RDWeb
By deploying Azure Traffic Manager with the Priority routing method, you prevent end
users from accessing the passive deployment while the active deployment is functional.
If end users access the passive deployment and the Storage Replica direction hasn't
been switched for failover, the user sign-in hangs as the deployment tries and fails to
access the file share on the passive Storage Spaces Direct cluster - eventually the
deployment will give up and give the user a temporary profile.
When a failover occurs, you'll need to start the deallocated VMs. This deployment
configuration has the advantage of being lower cost, but at the expense of fail-over
time. If a catastrophic failure occurs in the active deployment, you'll have to manually
start the passive deployment, or you'll need an automation script to detect the failure
and start the passive deployment automatically. In either case, it may take several
minutes to get the passive deployment running and available for users to sign in,
resulting in some downtime for the service. This downtime depends on the amount of
time it takes to start the RDS infrastructure and RDSH VMs (typically 2-4 minutes, if the
VMs are started in parallel rather than serially), and the time to bring the passive cluster
online (which depends on the size of the cluster, typically 2-4 minutes for a 2-node
cluster with 2 disks per node).
Active Directory
The Active Directory servers in each deployment are replicas within the same
Forest/Domain. Active Directory has a built-in synchronization protocol to keep the four
domain controllers in sync. However, there may be some lag so that if a new user is
added to one AD server, it may take some time to replicate across all the AD servers in
the two deployments. Consequently, be sure to warn users to not try to sign in
immediately after being added to the domain.
RD License Server
Provide a per-user RD CAL for each named user that is authorized to access the geo-
redundant deployment. Distribute the per user CALs evenly across the two RD License
Servers in the active deployment. Then, duplicate these CALs to the two RD License
Servers in the passive deployment. Because the CALs are duplicated between the active
and passive deployment, at any given time only one deployment can be active with
users connecting; otherwise, you violate the license agreement.
Image Management
As you update your RDSH images to provide software updates or new applications,
you'll need to separately update the RDSH collections in each deployment to maintain a
common user experience across both deployments. You can use the Update RDSH
collection template , but note that the passive deployment's RDS infrastructure and
RDSH VMs must be running to run the template.
Failover
In the case of the Active-Passive deployment, failover requires you to start the VMs of
the secondary deployment. You can do this manually or with an automation script. In
the case of a catastrophic failover of the Storage Spaces Direct SOFS, change the
Storage Replica partnership direction, so that the destination volume becomes the
source volume. For example:
PowerShell
Set-SRPartnership -NewSourceComputerName "cluster-b-s2d-c" -SourceRGName
"cluster-b-s2d-c" -DestinationComputerName "cluster-a-s2d-c" -
DestinationRGName "cluster-a-s2d-c"
Azure Traffic Manager automatically recognizes that the primary deployment failed and
that the secondary deployment is healthy (in the RD Gateway VMs have been started in
RG B) and directs user traffic to the secondary deployment. Users can use the same
Traffic Manager URL to continue working on their remote resources, enjoying a
consistent experience. Note that the client DNS cache will not update the record for the
duration of the TTL set in Azure Traffic Manager configuration.
Test failover
In a Storage Replica partnership, only one volume (the source) can be active at a time.
This means when you switch the SR Partnership direction, the volume in the primary
deployment (RG A) becomes the destination of replication and is therefore hidden. Thus,
any users connecting to RG A will no longer have access to their UPDs stored on the
SOFS in RG A.
3. Disable the endpoint of RG A in the Azure Traffic Manager profile to force the ATM
to direct traffic to RG B. Alternatively, use a PowerShell script:
PowerShell
PowerShell
Set-SRPartnership -NewSourceComputerName "cluster-a-s2d-c" -
SourceRGName "cluster-a-s2d-c" -DestinationComputerName "cluster-b-s2d-
c" -DestinationRGName "cluster-b-s2d-c"
PowerShell
You can use Azure Traffic Manager with on-premises endpoints, but it requires an Azure
subscription. Alternatively, for the DNS provided to end users, give them a CNAME
record that simply directs users to the primary deployment. In the case of failover,
modify the DNS CNAME record to redirect to the secondary deployment. In this way,
the end user uses a single URL, just like with Azure Traffic Manager, that directs the user
to the appropriate deployment.
Feedback
Was this page helpful? Yes No
Set up disaster recovery for RDS using
Azure Site Recovery
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use Azure Site Recovery to create a disaster recovery solution for your Remote
Desktop Services deployment.
Use the following information to create and validate the disaster recovery solution.
ノ Expand table
Prerequisites
Before you can configure Azure Site Recovery for your deployment, make sure you meet
the following requirements:
Implementation checklist
We'll cover the various steps to enable Azure Site Recovery Services for your RDS
deployment in more detail, but here are the high-level implementation steps.
ノ Expand table
Hyper-V - Download the Microsoft Azure Site Recovery Provider. Install it on your VMM server or
Hyper-V host. See Prerequisites for replication to Azure by using Azure Site Recovery for
information.
Hyper-V - Download the Microsoft Azure Recovery Services agent and install it on Hyper-V host
servers.
Enable protection for VMs in VMM cloud, Hyper-V sites, or VMWare sites.
Test the recovery plan by creating a test failover. Ensure all VMs can access required resources, like
Active Directory. Ensure network redirections are configured and working for RDS. For detailed
steps on testing your recovery plan, see Run a test failover
Run a disaster recovery drill using planned and unplanned failovers. Ensure that all VMs have
access to required resources, such as Active Directory. Ensure that all VMs have access to required
Step 1 - Configure VMs for disaster recovery
resources, such as Active Directory. For detailed steps on failovers and how to run drills, see
Failover in Site Recovery.
Feedback
Was this page helpful? Yes No
Enable disaster recovery of RDS using
Azure Site Recovery
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
To ensure that your RDS deployment is adequately configured for disaster recovery, you
need to protect all of the components that make up your RDS deployment:
Active Directory
SQL Server tier
RDS components
Network components
See Protect Active Directory and DNS with Azure Site Recovery for details on making a
domain controller available on the disaster recovery site. For the rest of this guidance,
we assume that you've followed those steps and have the domain controller available.
ノ Expand table
Personal virtual desktop (unmanaged) 1. Make sure all virtualization hosts are ready with the
RDVH role installed.
2. Connection Broker.
3. Personal desktops.
4. Gold template VM.
5. Web Access, License server, and Gateway server
Pooled virtual desktop (managed 1. All virtualization hosts are ready with the RDVH role
with no UPD) installed.
2. Connection Broker.
3. Gold template VM.
4. Web Access, License server, and Gateway server.
Feedback
Was this page helpful? Yes No
Create your disaster recovery plan for
RDS
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can create a disaster recovery plan in Azure Site Recovery to automate the failover
process. Add all RDS component VMs to the recovery plan.
1. Open Azure Site Recovery Vault in the Azure portal, and then click Recovery Plans.
2. Click Create and enter a name for the plan.
3. Select your Source and Target. The target is either a secondary RDS site or Azure.
4. Select the VMs that host your RDS components, and then click OK.
The following sections provide additional information about creating recovery plans for
the different types of RDS deployment.
Run PowerShell in an elevated mode on the Connection Broker VM. Run the
following command and wait for a couple of minutes to ensure the DNS is
updated with the new value:
ipconfig /registerdns
Modify the script below to run for each virtualization host in the cloud. Typically
after you add a virtualization host to a Connection Broker, you need to restart the
host. Ensure that the host doesn't have a reboot pending before the script runs, or
else it will fail.
Broker - broker.contoso.com
Virtualization host - VH1.contoso.com
ipmo RemoteDesktop;
add-rdserver –ConnectionBroker broker.contoso.com –Role RDS-
VIRTUALIZATION –Server VH1.contoso.com
The template VM when recovered to the secondary site will start, but it is a
sysprepped VM and cannot start completely. Also RDS requires that the VM be
shutdown to create a pooled VM configuration from it. So, we need to turn it off. If
you have a single VMM server, the template VM name is the same on the primary
and the secondary. Because of that, we use the VM ID as specified by the Context
variable in the script below. If you have multiple templates, turn them all off.
PowerShell
ipmo virtualmachinemanager;
Foreach($vm in $VMsAsTemplate)
{
Get-SCVirtualMachine -ID $vm | Stop-SCVirtualMachine –Force
}
You need to remove the pooled VMs on the primary site from the Connection
Broker so new VMs can be created on the secondary site. In this case you need to
specify the exact host on which to create the pooled VM. Note that this will delete
the VMs from only the collection.
PowerShell
ipmo RemoteDesktop
$desktops = Get-RDVirtualDesktop -CollectionName Win8Desktops;
Foreach($vm in $desktops){
Remove-RDVirtualDesktopFromCollection -CollectionName Win8Desktops -
VirtualDesktopName $vm.VirtualDesktopName –Force
}
7. Group 2 manual action - Assign new template
You need to assign the new template to the Connection Broker for the collection
so you can create new pooled VMs on the recovery site. Go to the RDS Connection
Broker and identify the collection. Edit the properties and specify a new VM image
as its template.
Recreate the pooled VMs on the recovery site through the Connection Broker. In
this case, you need to specify the exact host on which to create the pooled VM.
The pooled VM name needs to be unique, using the prefix and suffix. If the VM
name already exists, the script will fail. Also, if the primary side VMs are numbered
from 1-5, the recovery site numbering will continue from 6.
PowerShell
ipmo RemoteDesktop;
Add-RDVirtualDesktopToCollection -CollectionName Win8Desktops -
VirtualDesktopAllocation @{"RDVH1.contoso.com" = 1}
Run PowerShell in an elevated mode on the Connection Broker VM. Run the
following command and wait for a couple of minutes to ensure the DNS is
updated with the new value:
ipconfig /registerdns
3. Group 1 script - Add Virtualization hosts
Modify the script below to run for each virtualization host in the cloud. Typically
after you add a virtualization host to a Connection Broker, you need to restart the
host. Ensure that the host doesn't have a reboot pending before the script runs, or
else it will fail.
PowerShell
Broker - broker.contoso.com
Virtualization host - VH1.contoso.com
ipmo RemoteDesktop;
add-rdserver –ConnectionBroker broker.contoso.com –Role RDS-
VIRTUALIZATION –Server VH1.contoso.com
The template VM when recovered to the secondary site will start, but it is a
sysprepped VM and cannot start completely. Also RDS requires that the VM be
shutdown to create a pooled VM configuration from it. So, we need to turn it off. If
you have a single VMM server, the template VM name is the same on the primary
and the secondary. Because of that, we use the VM ID as specified by the Context
variable in the script below. If you have multiple templates, turn them all off.
PowerShell
ipmo virtualmachinemanager;
Foreach($vm in $VMsAsTemplate)
{
Get-SCVirtualMachine -ID $vm | Stop-SCVirtualMachine –Force
}
Remove the personal VMs on the primary site from the Connection Broker so new
VMs can be created on the secondary site. You need to extract the VMs'
assignments and re-add the virtual machines to the Connection Broker with the
hash of assignments. This will only remove the personal VMs from the collection
and re-add them. The personal desktop allocation will be exported and imported
back into the collection.
PowerShell
ipmo RemoteDesktop
$desktops = Get-RDVirtualDesktop -CollectionName CEODesktops;
Export-RDPersonalVirtualDesktopAssignment -CollectionName CEODesktops -
Path ./Desktopallocations.txt -ConnectionBroker broker.contoso.com
Foreach($vm in $desktops){
Remove-RDVirtualDesktopFromCollection -CollectionName CEODesktops -
VirtualDesktopName $vm.VirtualDesktopName –Force
}
Tuning your deployment takes time and requires instrumentation and monitoring. Use
the processes below to refine your Remote Desktop deployment, keep it running and
enable scaling out (and in) as needed.
It's a good practice to continually assess the metrics and balance against running costs.
Server Manager: Use the RD management tool that is built in to Windows Server
to manage deployments with up to 500 concurrent remote end-users.
PowerShell: Use the RD PowerShell module, also built into Windows Server, to
manage deployments with up to 5000 concurrent remote end-users.
Remote Desktop deployments that are built on Azure can make use of Azure services,
like Azure SQL, to scale automatically on demand.
Feedback
Was this page helpful? Yes No
Manage your personal desktop session
collections
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
-CollectionName <string>
-ConnectionBroker <string>
-User <string>
-Name <string>
-CollectionName <string>
-ConnectionBroker <string>
-Path <string>
-CollectionName <string>
-ConnectionBroker <string>
-Force
-Name <string>
-User <string>
–Force forces the command to run without asking for user confirmation.
-CollectionName <string>
-ConnectionBroker <string>
-User <string>
-Name <string>
You can run the cmdlet to query by collection name, user name, or by session desktop
name. If you specify only the –CollectionName parameter, the cmdlet returns a list of
session hosts and associated users. If you also specify the –User parameter, the session
host associated with that user is returned. If you provide the –Name parameter, the user
associated with that session host is returned.
The Export-RDPersonalPersonalDesktopAssignment cmdlet exports the current
associations between users and personal virtual desktops to a text file. The cmdlet
supports the following parameters:
-CollectionName <string>
-ConnectionBroker <string>
-Path <string>
All new cmdlets support the common parameters: -Verbose, -Debug, -ErrorAction, -
ErrorVariable, -OutBuffer, and -OutVariable. For more information, see
about_CommonParameters.
Feedback
Was this page helpful? Yes No
Remote Desktop IP Virtualization in
Windows Server
Article • 07/03/2024
As of Windows Server 2008 R2, Remote Desktop session hosts support per-session and
per-program Remote Desktop IP Virtualization for Winsock applications. Remote
Desktop assigns individual IP addresses to user sessions to avoid application
compatibility issues that can happen when all Remote Desktop users in the same
location share the same IP address. This article gives instructions for how to virtualize IP
addresses for your organization's Remote Desktop users.
7 Note
Prerequisites
In order to use IP Virtualization, your system must meet the following requirements:
You must assign the RD Session Host server role to the machine you use to make
the changes.
1. Open the RD Session Host Configuration MMC on the machine you the RD
Session Host server role.
2. Go to Edit settings.
5. In the Select the network adapter to be used for IP Virtualization field, select
the network adapter you want to use for IP Virtualization from the drop-down
menu.
7 Note
Enter or navigate to the file path of the program you want to use.
Select Open.
Related content
Remote Desktop Services Virtualization recommendations
Feedback
Was this page helpful? Yes No
Manage users in your RDS collection
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
As an admin, you can directly manage which users have access to specific collections.
This way, you can create one collection with standard applications for information
workers, but then create a separate collection with graphics-intensive modeling
applications for engineers. There are two primary steps to managing user access in a
Remote Desktop Services (RDS) deployment:
Install AD DS tools
The following steps detail how to install the AD DS tools on a server already running AD
DS. Once installed, you can then create users or create groups.
1. Connect to the server running Active Directory Domain Services. For Azure
deployments:
a. In the Azure portal, click Browse > Resource groups, and then click the resource
group for the deployment
b. Select the AD virtual machine.
c. Click Connect > Open to open the Remote Desktop client. If Connect is grayed
out, the virtual machine might not have a public IP address. To give it one
perform the following steps, then try this step again.
i. Click Settings > Network interfaces, and then click the corresponding
network interface.
ii. Click Settings > IP address.
iii. For Public IP address, select Enabled, and then click IP address.
iv. If you have an existing public IP address you want to use, select it from the
list. Otherwise, click Create new, enter a name, and then click OK and Save.
d. In the client, click Connect, and then click Use another account. Enter the user
name and password for a domain administrator account.
e. Click Yes when asked about the certificate.
2. Install the AD DS tools:
a. In Server Manager click Manage > Add Roles and Features.
b. Click Role-based or feature-based installation, and then click the current AD
server. Follow the steps until you get to the Features tab.
c. Expand Remote Server Administration Tools > Role Administration Tools > AD
DS and AD LDS Tools, and then select AD DS Tools.
d. Select Restart the destination server automatically if required, and then click
Install.
Create a group
You can use AD DS groups to grant access to a set of users that need to use the same
remote resources.
1. In Server Manager on the server running AD DS, click Tools > Active Directory
Users and Computers.
2. Expand the domain in the left-hand pane to view its subfolders.
3. Right-click the folder where you want to create the group, and then click New >
Group.
4. Enter an appropriate group name, then select Global and Security.
1. Connect to the server running the Remote Desktop Connection Broker (RD
Connection Broker) role, following the steps described earlier.
2. Add the other Remote Desktop servers to the RD Connection Broker's pool of
managed servers:
a. In Server Manager click Manage > Add Servers.
b. Click Find Now.
c. Click each server in your deployment that is running a Remote Desktop Services
role, and then click OK.
7 Note
The User groups window can never be empty. To narrow the scope of users
who have access to the collection, you must first add specific users or groups
before removing broader groups.
Feedback
Was this page helpful? Yes No
Customize the RDS title “Work
Resources” using PowerShell on
Windows Server
Article • 07/03/2024
To change the title, open up a new PowerShell window on the connection broker server
and import the RemoteDesktop module with the following command.
PowerShell
Import-Module RemoteDesktop
PowerShell
For example, you can use the following command to change the workpsace name to
"Contoso RemoteApps":
PowerShell
If you are running multiple Connection Brokers in High Availability mode, you must run
this against the active broker. You can use this command:
PowerShell
Feedback
Was this page helpful? Yes No
Use performance counters to diagnose
app performance problems on Remote
Desktop Session Hosts
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
7 Note
The User Input Delay counter can help you quickly identify the root cause for bad end
user Remote Desktop performance experiences. This counter measures how long any
user input, such as mouse or keyboard usage, stays in the queue before a process picks
it up. The counter works in both local and remote sessions.
The following image shows a rough representation of user input flow from client to
application.
The User Input Delay counter measures the max delta within an interval of time between
the input being queued and when the app in a traditional message loop picks it up. A
traditional message loop is shown in the following flow chart:
One important detail of this counter is that it reports the maximum user input delay
within a configurable interval. This delay is the longest time it takes for an input to reach
the application, which can affect the speed of important and visible actions like typing.
For example, in the following table, the user input delay would be reported as 1,000 ms
within this interval. The counter reports the slowest user input delay in the interval. The
counter reports this delay because the user's perception of "slow" is determined by the
slowest input time (the maximum) they experience and not the average speed of all
total inputs.
ノ Expand table
Number 0 1 2
Delay 16 ms 20 ms 1,000 ms
7 Note
If you use Windows 10, version 1809 or later or Windows Server 2019 or later, you
won't need to enable the registry key.
Next, restart the server. Then, open the Performance Monitor, and select the plus icon
(+), as shown in the following screenshot:
Next, you should see the Add Counters dialog, where you can select User Input Delay
per Process or User Input Delay per Session.
When you select User Input Delay per Process, you see the Instances of the selected
object, in other words, the processes in SessionID:ProcessID <Process Image> format.
For example, if the Calculator app is running in a Session ID 1, you see 1:4232
<Calculator.exe> .
7 Note
Not all processes are included. You won't see any processes that are running as
SYSTEM.
The counter starts reporting user input delay as soon as you add it. The maximum scale
is set to 100 (ms) by default.
Next, see the User Input Delay per Session. There are instances for each session ID, and
their counters show the user input delay of any process within the specified session. In
addition, there are two instances called "Max" (the maximum user input delay across all
sessions) and "Average" (the average across all sessions).
This table shows a visual example of these instances. You can get the same information
in Perfmon by switching to the Report graph type.
ノ Expand table
Type of counter Instance name Reported delay (ms)
The pink line shows the number of sessions signed in on the server.
The red line is the CPU usage.
The green line is the maximum user input delay across all sessions.
The blue line, displayed as black in this graph, represents average user input delay
across all sessions.
There's a correlation between CPU spikes and user input delay. As the CPU gets more
usage, the user input delay increases. Also, as more users get added to the system, CPU
usage gets closer to 100%, leading to more frequent user input delay spikes. While this
counter is useful in cases where the server runs out of resources, it can also track user
input delay related to a specific application.
Configuration Options
An important thing to remember when you use this performance counter is that it
reports user input delay on an interval of 1,000 ms by default. If you set the
performance counter sample interval property, as shown in the following screenshot, to
anything different, the reported value will be incorrect.
To fix this issue, you can set the following registry key to match the interval (in
milliseconds) that you want to use. For example, if you change Sample every 1 second to
Sample every 5 seconds, you need to set this key to 5000 ms.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"LagCounterInterval"=dword:00005000
7 Note
If you use Windows 10, version 1809 or later or Windows Server 2019 or later, you
don't need to set LagCounterInterval to fix the performance counter.
We've also added a couple of keys you might find helpful under the same registry key:
LagCounterImageNameFirst —set this key to DWORD 1 (default value 0 or key doesn't exist).
This key changes the counter names to "Image Name <SessionID:ProcessId>" for
example, "explorer <1:7964>". This change is useful if you want to sort by image name.
LagCounterShowUnknown —set this key to DWORD 1 (default value 0 or key doesn't exist).
This key shows any processes that are running as services or SYSTEM. Some processes
show up with their session set as "?".
The following image shows what it looks like with both keys on:
Use the new counters with non-Microsoft tools
Monitoring tools can consume this counter by Using Performance Counters.
Feedback
Was this page helpful? Yes No
Optimizing Windows configuration for VDI
desktops
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅ Windows Server 2016, ✅
to: Windows 11, ✅ Windows 10
Although the Windows operating system is well tuned out of the box, there are opportunities for you to refine it
further, specifically for the corporate Microsoft Virtual Desktop Infrastructure (VDI) environment. In the VDI
environment, many background services and tasks are disabled by default.
This article is a guide or starting point for how you might optimize your configuration. Some recommendations
disable functionality that you prefer to use, so you must consider the cost versus the benefit of adjusting a
particular setting in your scenario.
7 Note
Any settings not specifically mentioned in this topic can be left at their default values (or set per your
requirements and policies) without appreciable impact on VDI functionality.
The persistent type preserves changes to the virtual desktop operating system from one session to the next.
The non-persistent type doesn't preserve changes to the virtual desktop operating system from one session
to the next.
The desktop session is like sessions on other virtual or physical devices, and accessed over a network.
The optimization settings could take place on a reference machine. A virtual machine (VM) is an ideal place to
build the VM, because state is saved, there are checkpoints, and backups are made. A default OS installation is
performed to the base VM. That base VM is then optimized by doing things like removing unneeded apps,
installing updates, deleting temporary files, and applying settings.
Security and stability are among the highest priorities for Microsoft when it comes to products and services. In
the virtual desktop realm, security isn't handled much differently than physical devices. Enterprise customers may
choose to utilize the built-in to Windows services of Windows Security, which comprises a suite of services that
work well connected or not connected to the Internet. For those virtual desktop environments not connected to
the Internet, security signatures can be downloaded proactively several times per day, because Microsoft may
release more than one signature update per day. Those signatures can then be provided to the virtual desktop
devices and scheduled to be installed during production, regardless of persistent or non-persistent. That way the
VM protection is as current as possible.
There are some security settings not applicable to virtual desktop environments not connected to the internet
and unable to participate in cloud-enabled security. There are other settings that "normal" Windows devices may
utilize such as Cloud Experience, or The Windows Store. Removing access to unused features reduces footprint,
network bandwidth, and attack surface.
Windows utilizes a monthly update rhythm. In some cases, virtual desktop administrators control the update
process by shutting down VMs based on a "master" or "gold" image, unsealing that read-only image, patching
the image, then resealing it and bringing it back into production. Therefore, there's no need to have virtual
desktop devices checking Windows Update. However, there are cases where normal patching procedures take
place, like the case of persistent "personal" virtual desktop devices. In some cases, Windows Update can be
utilized. In some cases, Intune could be utilized. In some cases, Microsoft Endpoint Configuration Manager
(formerly SCCM) is utilized to handle update and other package delivery. It's up to each organization to
determine the best approach to updating virtual desktop devices, while reducing overhead cycles.
The local policy settings, and many other settings in this guide, can be overridden with domain-based policy. We
recommended that you go through the policy settings thoroughly and remove or not use any that aren't desired
or applicable to your environment. The settings listed in this document try to achieve the best balance of
performance optimization in virtual desktop environments, while maintaining a quality user experience.
7 Note
There's a set of scripts available on GitHub that'll do all the work items documented in this paper. The
scripts are designed to be easily customizable for your environment and requirements. The main code is
PowerShell, and the work is done by calling input files, which are plain text (now .JSON), with also Local
Group Policy Object (LGPO) tool export files. These text files contain lists of the apps to be removed, services
to be disabled, and so on. If you don't want to remove a particular app or disable a particular service, you
can edit the corresponding text file and remove the item you don't want acted upon. Finally, there's an
export of local policy settings that can be imported into your environment machines. It's better to have
some of the settings within the base image, than to have the settings applied through group policy, as some
of the settings take effect on the next restart or when a component is first used.
With image-based non-persistent (NP) virtual desktop environments, the base image is read-only. When an NP
virtual desktop device (VM) is started, a copy of the base image is streamed to the VM. Activity that occurs during
startup and thereafter until the next reboot is redirected to a temporary location. Users are provided network
locations to store their data. In some cases, the user’s profile is merged with the standard VM to provide the user
with their settings.
One important aspect of NP virtual desktop that is based on a single image, is servicing. Updates to the
operating system (OS) and components of the OS are delivered once per month. With image based virtual
desktop environment, there's a set of processes that must be performed to get updates to the image:
On a given host, all the VMs on that host, based on the base image must be shut down or turned off. This
means the users are redirected to other VMs.
In some implementations, this is referred to as "draining." The virtual machine or session host, when set to
draining mode, stops accepting new requests, but continues servicing users currently connected to the
device.
In draining mode, when the last user logs off the device, that device is then ready for servicing operations.
The base image is then opened and started up. All maintenance activities are then performed, such as OS
updates, .NET updates, app updates, and so on.
Any new settings that need to be applied are applied at this time.
Any other maintenance is performed at this time.
The base image is then shut down.
The base image is sealed and set to go back into production.
Users are allowed to log back on.
7 Note
Windows performs a set of maintenance tasks, automatically, on a periodic basis. There's a scheduled task
that is set to run at 3:00 AM every day by default. This scheduled task performs a list of tasks, including
Windows Update cleanup. You can view all the categories of maintenance that take place automatically with
this PowerShell command:
PowerShell
One of the challenges with non-persistent virtual desktop is that when a user logs off, nearly all the OS activity is
discarded. The user’s profile and/or state may be saved to a centralized location, but the virtual machine itself
discards nearly all changes that were made since last boot. Therefore, optimizations intended for a Windows
computer that saves state from one session to the next aren't applicable.
Depending on the architecture of virtual desktop device, things like PreFetch and SuperFetch aren't going to help
from one session to the next, as all the optimizations are discarded on VM restart. Indexing may be a partial
waste of resources, as would be any disk optimizations such as a traditional defragmentation.
7 Note
If preparing an image using virtualization, and if connected to the Internet during image creation process,
on first logon you should postpone Feature Updates by going to Settings > Windows Update.
There are reasons for and against running sysprep. For virtual desktop environments, you may want the ability to
customize the default user profile, which would be used as the profile template for later users that sign in using
this image. You may have apps that you want installed, but also want to be able to control per-app settings.
The alternative is to use a standard .ISO to install from, possibly using an unattended installation answer file, and
a task sequence to install applications or remove applications. You can also use a task sequence to set local policy
settings in the image, perhaps using the Local Group Policy Object Utility (LGPO) tool.
To learn more about image preparation for Azure, see Prepare a Windows VHD or VHDX to upload to Azure
Supportability
Anytime that Windows defaults are changed, questions arise regarding supportability. Once a virtual desktop
image (VM or session) is customized, every change made to the image needs to be tracked in a change log. If a
time comes to troubleshoot, often an image can be isolated in a pool and configured for problem analysis. Once
a problem is tracked to the root cause, that change can then be rolled out to the test environment first, and
ultimately to the production workload.
This document intentionally avoids touching system services, policies, or tasks that affect security. After that
comes Windows servicing. The ability to service virtual desktop images outside of maintenance windows is
removed, as maintenance windows are when most servicing events take place in virtual desktop environments,
except for security software updates. Microsoft's guidance for Windows Security in virtual desktop environments
is documented in the Deployment guide for Windows Defender Antivirus in a virtual desktop infrastructure (VDI)
environment
Consider supportability when altering default Windows settings. Occasionally, difficult to solve problems arise
when altering system services, policies, or scheduled tasks, in the name of hardening, "lightening," and so on.
Consult the Microsoft Knowledge Base for current known issues regarding altered default settings. The guidance
in this document, and the associated script on GitHub are maintained with respect to known issues, if any arise. In
addition, you can report issues in many ways to Microsoft.
You can use your favorite search engine with the terms "start value" site:support.microsoft.com to bring up
known issues regarding default start values for services.
This document and the associated scripts on GitHub don't modify any default permissions. If you're interested in
increasing your security settings, start with the project known as AaronLocker. For more information,
"AaronLocker" overview .
With a default installation of Windows, it's unlikely that all UWP apps are used by an organization. Therefore, if
those apps are removed, there are fewer evaluations that need to take place, less caching, and so on. The second
method here's to direct Windows to disable "consumer experiences." This reduces Store activity by having to
check for every user what apps are installed, what apps are available, and then to start downloading some UWP
apps. The performance savings can be significant when there are hundreds or thousands of users, all start work at
approximately the same time, or even starting work at rolling times across time zones.
Connectivity and timing are important factors when it comes to UWP app cleanup. If you deploy your base image
to a device with no network connectivity, Windows can't connect to the Microsoft Store and download apps and
try to install them while you're trying to uninstall them. This might be a good strategy to allow you time to
customize your image, and then update what remains at a later stage of the image creation process.
If you modify your base .WIM that you use to install Windows and remove unneeded UWP apps from the .WIM
before you install, the apps don't install and your subsequent profile creation times are shorter. There's a link
later in this section with information on how to remove UWP apps from your installation .WIM file.
A good strategy for the virtual desktop environment is to provision the apps you want in the base image, then
limit or block access to the Microsoft Store afterward. Store apps are updated periodically in the background on
normal computers. The UWP apps can be updated during the maintenance window when other updates are
applied.
Run the following PowerShell command to enumerate provisioned UWP apps currently running on the local
computer:
PowerShell
Get-AppxProvisionedPackage -Online
UWP apps that are provisioned to a system can be removed during OS installation as part of a task sequence, or
later after the OS is installed. This may be the preferred method because it makes the overall process of creating
or maintaining an image modular. Once you develop the scripts, if something changes in a subsequent build you
edit an existing script rather than repeat the process from scratch.
Then run the following PowerShell command to remove UWP app payloads:
PowerShell
Remove-AppxProvisionedPackage -Online - PackageName MyAppxPackage
As a final note on this topic, each UWP app should be evaluated for applicability in each unique environment.
Install a default installation of Windows 10 or Windows 11, and then note which apps are running and consuming
memory. For example, you might remove apps that start automatically, or apps that automatically display
information on the Start Menu, such as Weather and News.
7 Note
If you're using the scripts from GitHub, you can easily control which apps are removed before running the
script. After downloading the script files, locate the AppxPackage.json file, edit that file, and remove entries
for apps that you want to keep, such as Calculator, Sticky Notes, and so on.
PowerShell
Get-WindowsOptionalFeature -Online
Using PowerShell, an enumerated Windows Optional Feature can be configured as enabled or disabled, as in the
following example:
PowerShell
Here's an example command that disables the Windows Media Player feature in the virtual desktop image:
PowerShell
Next, you may want to remove the Windows Media Player package. This example command shows you how to
find the package name:
PowerShell
The output of that command shows something like the following information:
code
PackageName : Microsoft-Windows-MediaPlayer-
Package~31bf3856ad364e35~amd64~~10.0.19041.153
Applicable : True
Copyright : Copyright (c) Microsoft Corporation. All Rights Reserved
...
If you want to remove the Windows Media Player package (to free up about 60 MB disk space), you can run this
command:
PowerShell
To reduce transmission of graphical data over the virtual desktop infrastructure, you can set the default
background to a solid color instead of the default Windows image. You can also set the sign-in screen to be a
solid color, and turn off the opaque blurring effect on sign-in.
The following settings are applied to the default user profile registry hive, mainly to reduce animations. If some
or all of these settings aren't desired, delete out the settings that you don't wish to apply to new user profiles
based on this image. The goal with these settings is to enable the following equivalent settings:
And there's a method to disable the following two privacy settings for any user profile created after you run the
optimization:
Optionally, disable the following two privacy settings for any user profile created after you run the optimization:
The following are the optimization settings applied to the default user profile registry hive to optimize
performance. This operation is performed by first loading the default user profile registry hive NTUser.dat, as the
ephemeral key name Temp, and then making the following modifications:
regedit
Disable settings for Windows apps from starting and running in the background. While not significant on a single
device, Windows starts multiple processes for each user session on a given device, or session host. If this
functionality is desired as-is, delete the lines in the DefaultUserSettings.txt file that include the app names like
Windows.Photos and/or MicrosoftEdge.
The following settings were chosen to not counter or conflict with any setting that has anything to do with
security. These settings were chosen to remove settings or disable functionality that may not be applicable to
virtual desktop environments.
ノ Expand table
Network List Manager All networks Network location User can't change location (This
policies properties setting is set to prevent the right-hand
side pop-up when a new network is
detected)
Control Panel Allow Online Tips N/A Disabled (Settings can't contact
Microsoft content services to retrieve
tips and help content)
Control Panel \ Force a specific N/A Enabled (This setting allows you to
Personalization default lock screen force a specific default lock screen and
and logon image logon image by entering the path
(location) of the image file. The same
image is used for both the lock and
logon screens.
The reason for this recommendation is
to reduce bytes transmitted over the
network for virtual desktop
environments. This setting can be
removed or customized for each
environment.)
Control Panel\ Regional Turn off automatic N/A Enabled (With this policy setting
and Language learning enabled, automatic learning stops, and
Options\Handwriting any stored data is deleted. Users can't
personalization configure this setting in Control Panel)
Background Intelligent Allow BITS Peer N/A Disabled (This policy setting
Transfer Service (BITS) caching determines if the Background
Intelligent Transfer Service (BITS) peer
caching feature is enabled on a specific
computer.)
Background Intelligent Don't allow the BITS N/A Enabled (With this policy setting
Transfer Service (BITS) client to use Windows enabled, the BITS client doesn't use
Branch Cache Windows Branch Cache.)
Background Intelligent Don't allow the N/A Enabled (With this policy setting
Transfer Service (BITS) computer to act as a enabled, the computer doesn't use the
BITS Peer caching BITS peer caching feature to download
client files; files are downloaded only from
the origin server.)
Policy setting Item Sub-item Possible setting and comments
Background Intelligent Don't allow the N/A Enabled (With this policy setting
Transfer Service (BITS) computer to act as a enabled, the computer can't cache
BITS Peer caching downloaded files and offer them to its
server peers.)
Hotspot Authentication Enable hotspot N/A Disabled (This policy setting defines
Authentication whether WLAN hotspots are probed
for Wireless Internet Service Provider
roaming (WISPr) protocol support.
With this policy setting disabled, WLAN
hotspots aren't probed for WISPr
protocol support, and users can only
authenticate with WLAN hotspots
using a web browser.)
Microsoft Peer-to-Peer Turn off Microsoft N/A Enabled (This setting turns off
Networking Services Peer-to-Peer Microsoft Peer-to-Peer Networking
Networking Services Services in its entirety and causes all
dependent applications to stop
working. If you enable this setting,
peer-to-peer protocols are turned off.)
Network Connectivity Specify passive Disable passive poling Enabled (This Policy setting enables
Status Indicator polling (checkbox) you to specify passive polling behavior.
(There are other NCSI polls various measurements
settings in this section throughout the network stack on a
that can be used in frequent interval to determine if
isolated networks) network connectivity is lost. Use the
options to control the passive polling
behavior.)
Offline Files Allow or Disallow use N/A Disabled (This policy setting
of the Offline Files determines whether the Offline Files
feature feature is enabled. Offline Files saves a
copy of network files on the user's
computer for use when the computer
isn't connected to the network. With
this policy setting disabled, Offline Files
feature is disabled and users can't
enable it.)
*TCPIP Settings\ IPv6 Set Teredo State Disabled State Enabled (With this setting enabled, and
Transition Technologies set to "Disabled State", no Teredo
interfaces are present on the host)
*WLAN Service\ WLAN Allow Windows to N/A Disabled (This policy setting
Settings automatically connect determines whether users can enable
Policy setting Item Sub-item Possible setting and comments
WWAN Service\ Let Windows apps Default for all apps: Force Deny Enabled (If you choose the "Force
Cellular Data Access access cellular data Deny" option, Windows apps aren't
allowed to access cellular data and
users can't change it.)
*Notifications Turn off notifications N/A Enabled (With this policy setting
network usage enabled, applications and system
features aren't able to receive
notifications from the network from
WNS or via notification polling APIs)
Device Installation Don't send a N/A Enabled (With this policy setting
Windows error report enabled, an error report isn't sent when
when a generic driver a generic driver is installed.)
is installed on a
device
Device Installation Prevent creation of a N/A Enabled (With this policy setting
system restore point enabled, Windows doesn't create a
during device activity system restore point when one would
that would normally normally be created.)
prompt creation of a
restore point
Device Installation Prevent device N/A Enabled (This policy setting allows you
metadata retrieval to prevent Windows from retrieving
from the Internet device metadata from the Internet.
With this policy setting enabled,
Windows doesn't retrieve device
metadata for installed devices from the
Internet. This policy setting overrides
the setting in the Device Installation
Settings dialog box (Control Panel >
System and Security > System >
Advanced System Settings > Hardware
tab).)
Policy setting Item Sub-item Possible setting and comments
Device Installation Turn off "Found New N/A Enabled (This policy setting allows you
Hardware" balloons to turn off "Found New Hardware"
during device balloons during device installation.
installation With this policy setting enabled,
"Found New Hardware" balloons don't
appear while a device is being
installed.)
Filesystem\NTFS Short name creation Short name creation options: Enabled (These settings provide
options Disabled on all volumes control over whether or not short
names are generated during file
creation. Some applications require
short names for compatibility, but
short names have a negative
performance impact on the system.
With short names disabled on all
volumes, then they aren't generated.)
Internet Turn off Event Viewer N/A Enabled (This policy setting specifies
Communication "Events.asp" links whether "Events.asp" hyperlinks are
Management\ Internet available for events within the Event
Communication Viewer application.)
settings
Internet Turn off handwriting N/A Enabled (Turns off data sharing from
Communication personalization data the handwriting recognition
Management\ Internet sharing personalization tool.)
Communication
settings
Internet Turn off handwriting N/A Enabled (Turns off the handwriting
Communication recognition error recognition error reporting tool.)
Management\ Internet reporting
Communication
settings
Internet Turn off Help and N/A Enabled (This policy setting specifies
Communication Support Center whether users can perform a Microsoft
Management\ Internet Microsoft Knowledge Knowledge Base search from the Help
Communication Base search and Support Center.)
settings
Internet Turn off Internet N/A Enabled (This policy setting specifies
Communication Connection Wizard if whether the Internet Connection
Management\ Internet URL connection is Wizard can connect to Microsoft to
Communication referring to download a list of Internet Service
settings Microsoft.com Providers (ISPs).)
Internet Turn off Internet N/A Enabled (This policy setting specifies
Communication download for Web whether Windows should download a
Management\ Internet
Policy setting Item Sub-item Possible setting and comments
Communication publishing and online list of providers for the web publishing
settings ordering wizards and online ordering wizards.)
Internet Turn off Internet File N/A Enabled (This policy setting specifies
Communication Association service whether to use the Microsoft Web
Management\ Internet service for finding an application to
Communication open a file with an unhandled file
settings association.)
Internet Turn off Registration if N/A Enabled (This policy setting specifies
Communication URL connection is whether the Windows Registration
Management\ Internet referring to Wizard connects to Microsoft.com for
Communication Microsoft.com online registration.)
settings
Internet Turn off Search N/A Enabled (This policy setting specifies
Communication Companion content whether Search Companion should
Management\ Internet file updates automatically download content
Communication updates during local and Internet
settings searches.)
Internet Turn off the "Order N/A Enabled (If you enable this policy
Communication Prints" picture task setting, the task "Order Prints Online"
Management\ Internet is removed from Picture Tasks in File
Communication Explorer folders.)
settings
Internet Turn off the "Publish N/A *Enabled (This policy setting specifies
Communication to Web" task for files whether the tasks "Publish this file to
Management\ Internet and folders the Web," "Publish this folder to the
Communication Web," and "Publish the selected items
settings to the Web" are available from File and
Folder Tasks in Windows folders.)
Internet Turn off Windows N/A Enabled (This policy setting controls
Communication Error Reporting whether or not errors are reported to
Management\ Internet Microsoft. If you enable this policy
Communication setting, users aren't given the option to
settings report errors.)
Internet Turn off Windows N/A Enabled (This policy setting specifies
Communication Update device driver whether Windows searches Windows
Management\ Internet searching Update for device drivers when no
Communication local drivers for a device are present. If
settings you enable this policy setting,
Windows Update isn't searched when a
new device is installed.)
Logon Don't display the N/A Enabled (With this setting enabled, the
Getting Started welcome screen is hidden from the
welcome screen at user logging on to a Windows device.)
logon
Policy setting Item Sub-item Possible setting and comments
Logon Don't enumerate N/A Enabled (With this setting enabled, the
connected users on Logon UI doesn't enumerate any
domain-joined connected users on domain-joined
computers computers.)
Logon Enumerate local users N/A Disabled (With this setting disabled,
on domain-joined the Logon UI doesn't enumerate local
computers users on domain-joined computers.)
Logon Show clear logon N/A Enabled (This policy setting disables
background the acrylic blur effect on logon
background image. With this setting
enabled, the logon background image
shows without blur.)
Logon Show first sign-in N/A Disabled (This policy setting allows you
animation to control whether users see the first
sign-in animation when signing in to
the computer for the first time. This
applies to both the first user of the
computer who completes the initial
setup and users who are added to the
computer later. It also controls if
Microsoft account users are offered the
opt-in prompt for services during their
first sign-in.
Logon Turn off app N/A Enabled (This policy setting allows you
notifications on the to prevent app notifications from
lock screen appearing on the lock screen. With this
setting enabled, no app notifications
are displayed on the lock screen.)
Power Management Select an active power Active Power Plan: High Enabled (If you enable this policy
plan Performance setting, specify a power plan from the
Active Power Plan list.)
Power Management \ Turn on desktop N/A Disabled (This policy setting allows you
Video and Display background slideshow to specify if Windows should enable
Settings (plugged-in) the desktop background slideshow.)
With this setting disabled, the desktop
background slideshow is disabled. This
setting likely has no effect on a VM.
System Restore Turn off System N/A Enabled (With this setting enabled,
Restore System Restore is turned off, and the
System Restore Wizard can't be
accessed. The option to configure
System Restore or create a restore
point through System Protection is also
disabled.)
*User Profiles Turn off the N/A Enabled (With this setting enabled, the
advertising ID advertising ID is turned off. Apps can't
use the ID for experiences across apps)
Templates \ Windows
Components
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled (With this setting enabled, and
access diagnostic using the "Force Deny" option,
information about Windows apps aren't allowed to get
other apps diagnostic information about other
apps and employees in your
organization can't change it.)
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled With this setting enabled, and
access location using the "Force Deny" option,
Windows apps aren't allowed to access
location and users can't change the
setting.
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled (With this setting enabled, and
access motion using the "Force Deny" option,
Windows apps aren't allowed to access
motion data and users can't change
the setting.)
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled (With this setting enabled, and
access notifications using the "Force Deny" option,
Windows apps aren't allowed to access
notifications and users can't change
the setting)
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled (This policy setting specifies
activate with voice whether Windows apps can be
activated by voice.)
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled (This policy setting specifies
activate with voice whether Windows apps can be
while the system is activated by voice while the system is
locked locked.)
*App Privacy Let Windows apps Default for all apps: Force Deny Enabled (If you choose the "Force
control radios Deny" option, Windows apps don't
have access to control radios and
employees in your organization can't
change it)
Application Turn off Inventory N/A Enabled (This policy setting controls
Compatibility Collector the state of the Inventory Collector.
The Inventory Collector inventories
applications, files, devices, and drivers
on the system and sends the
information to Microsoft. With this
policy setting enabled, the Inventory
Collector is turned off and data isn't
sent to Microsoft. Collection of
installation data through the Program
Compatibility Assistant is also
disabled.)
AutoPlay Policies Set the default Don't execute any autorun Enabled (This policy setting sets the
behavior for AutoRun commands default behavior for Autorun
commands.)
*AutoPlay Policies Turn off Autoplay All drives Enabled (If you enable this policy
setting, Autoplay is disabled on all
Policy setting Item Sub-item Possible setting and comments
drives.)
*Cloud Content Don't show Windows N/A Enabled (This policy setting prevents
tips Windows tips from being shown to
users)
*Cloud Content Turn off Microsoft N/A Enabled (With this policy setting
consumer experiences enabled, users don't see personalized
recommendations from Microsoft and
notifications about their Microsoft
account)
*Data Collection and Allow Telemetry 0 – Security [Enterprise Only] Enabled (Setting a value of 0 applies to
Preview Builds devices running Enterprise, Education,
IoT, or Windows Server editions only,
and reduces telemetry sent to the most
basic level supported)
Data Collection and Configure collection Configure telemetry collection: Enabled (You can configure Microsoft
Preview Builds of browsing data for Don't allow sending intranet or Edge to send intranet history only,
Desktop Analytics internet history internet history only, or both to
Desktop Analytics for enterprise
devices with a configured Commercial
ID. If disabled or not configured,
Microsoft Edge doesn't send browsing
history data to Desktop Analytics.)
*Data Collection and Don't show feedback N/A Enabled (This policy setting allows an
Preview Builds notifications organization to prevent its devices
from showing feedback questions from
Microsoft.)
Delivery Optimization Download Mode Download Mode: Simple (99) Enabled (99 = Simple download mode
with no peering. Delivery Optimization
downloads using HTTP only and
doesn't attempt to contact the Delivery
Optimization cloud services.)
Desktop Window Don't allow window N/A Enabled (This policy setting controls
Manager animations the appearance of window animations
such as those found when restoring,
minimizing, and maximizing windows.
With this policy setting enabled,
window animations are turned off.)
Desktop Window Use solid color for N/A Enabled (This policy setting controls
Manager Start background the Start background visuals. With this
policy setting enabled, the Start
background uses a solid color.)
Edge UI Allow edge swipe N/A Disabled (If you disable this policy
setting, users can't invoke any system
UI by swiping in from any screen edge.)
Edge UI Disable help tips N/A Enabled (If this setting is enabled,
Windows doesn't show any help tips to
the user.)
File Explorer Don't show the "new N/A Enabled (This policy removes the end-
application installed" user notification for new application
notification associations. These associations are
based on file types (for example, TXT
Policy setting Item Sub-item Possible setting and comments
File History Turn off File History N/A Enabled (With this policy setting
enabled, File History can't be activated
to create regular, automatic backups.)
*Find My Device Turn On/Off Find My N/A Disabled (When Find My Device is off,
Device the device and its location aren't
registered, and the "Find My Device"
feature doesn't work. The user can't
view the location of the last use of their
active digitizer on their device.)
Homegroup Prevent the computer N/A Enabled (If you enable this policy
from joining a setting, users can't add computers to a
homegroup homegroup. This policy setting doesn't
affect other network sharing features.)
Internet Information Prevent IIS installation N/A Enabled (With this policy setting
Services enabled, IIS can't be installed, and you
can't install Windows components or
applications that require IIS.)
*Location and Sensors Turn off location N/A Enabled (With this setting enabled, the
location feature is turned off, and all
programs on this device are prevented
from using location information from
the location feature)
Location and Sensors Turn off sensors N/A Enabled (This policy setting turns off
the sensor feature for this device. With
this policy setting enabled, the sensor
feature is turned off, and all programs
on this computer can't use the sensor
feature.)
Locations and Sensors / Turn off Windows N/A Enabled (This policy setting turns off
Windows Location Location Provider the Windows Location Provider feature
Provider for this device.)
*Maps Turn off Automatic N/A Enabled (With this setting enabled, the
Download and automatic download and update of
Update of Map Data map data is turned off.)
*Maps Turn off unsolicited N/A Enabled (With this setting enabled,
network traffic on the features that generate network traffic
Offline Maps settings on the Offline Maps settings page are
page turned off. Note: This may turn off the
entire settings page)
*Microsoft Edge Allow configuration N/A Disabled (With this setting disabled,
updates for the Books Microsoft Edge doesn't automatically
Library download updated configuration data
for the Books Library.)
Policy setting Item Sub-item Possible setting and comments
*Microsoft Edge Allow extended N/A Disabled (With this setting disabled,
telemetry for the Microsoft Edge only sends basic
Books tab telemetry data, depending on your
device configuration.)
Microsoft Edge Allow Microsoft Edge Configure pre-launch: Prevent Enabled (With this setting enabled and
to pre-launch at pre-launching configured to prevent pre-launch,
Windows startup, Microsoft Edge won’t pre-launch
when the system is during Windows sign in, when the
idle, and each time system is idle, or each time Microsoft
Microsoft Edge is Edge is closed.)
closed
Microsoft Edge Allow Microsoft Edge Configure tab preloading: Enabled (This policy setting lets you
to start and load the Prevent tab-preloading decide whether Microsoft Edge can
Start and New Tab load the Start and New Tab page
page at Windows during Windows sign in and each time
startup and each time Microsoft Edge is closed. By default
Microsoft Edge is this setting is to allow preloading. With
closed preloading disabled, Microsoft Edge
won’t load the Start or New Tab page
during Windows sign in and each time
Microsoft Edge is closed.)
Microsoft Edge Allow web content on N/A Disabled (With this setting disabled,
New Tab page Edge opens a new tab with a blank
page. If this setting is configured, users
can't change the setting.)
*Microsoft Edge Prevent the First Run N/A Enabled (users won’t see the First Run
webpage from page when opening Microsoft Edge for
opening on Microsoft the first time)
Edge
Online Assistance Turn off Active Help N/A Enabled (With this policy setting
enabled, active content links aren't
rendered. The text is displayed, but
there are no clickable links for these
elements.)
OOBE Don’t launch privacy N/A Enabled (When logging into a new
settings experience on user account for the first time or after
user logon an upgrade in some scenarios, that
user may be presented with a screen or
series of screens that prompts the user
to choose privacy settings for their
account. Enable this policy to prevent
this experience from launching.)
RSS Feeds Prevent automatic N/A Enabled (This policy setting prevents
discovery of feeds and users from having Microsoft Edge
Web Slices automatically discover whether a feed
Policy setting Item Sub-item Possible setting and comments
*RSS Feeds Turn off background N/A Enabled (With this policy setting
synchronization for enabled, the ability to synchronize
feeds and Web Slices feeds and Web Slices in the
background is turned off.)
*Search Allow search and N/A Disabled (This policy setting specifies
Cortana to use whether search and Cortana can
location provide location aware search and
Cortana results.)
Search Control rich previews Control Rich Previews for Enabled (Enabling this policy defines a
for attachments Attachments:.docx;.xlsx;.txt;.xls semicolon-delimited list of file
extensions which are allowed to have
rich attachment previews.)
Search Don't allow web N/A Enabled (Enabling this policy removes
search the option of searching the Web from
Windows Desktop Search.)
*Search Don’t search the web N/A Enabled (With this policy setting
or display web results enabled, queries aren't performed on
in Search the web and web results aren't
displayed when a user performs a
query in Search.)
Search Prevent indexing files N/A Enabled (If enabled, files on network
in offline files cache shares made available offline aren't
indexed. Otherwise they're indexed.
Disabled by default.)
*Search Set what information Anonymous info Enabled (Anonymous info: Share usage
is shared in Search information but don't share search
Policy setting Item Sub-item Possible setting and comments
Search Stop indexing if MB Limit: 5000 Enabled (Enabling this policy prevents
there's limited hard indexing from continuing after less
drive space than the specified amount of hard
drive space is left on the same drive as
the index location. Select between 0
and 2147483647 MB.)
Software Protection Turn off KMS Client N/A Enabled (With this setting enabled, the
Platform Online AVS Validation device doesn't send data to Microsoft
regarding its activation state)
Store Turn off the offer to N/A Enabled (Enables or disables the Store
update to the latest offer to update to the latest version of
version of Windows Windows. If you enable this setting, the
Store application doesn't offer updates
to the latest version of Windows.)
Text Input Improve inking and N/A Disabled (This policy setting controls
typing recognition the ability to send inking and typing
data to Microsoft to improve the
language recognition and suggestion
capabilities of apps and services
running on Windows.)
Windows Error Disable Windows N/A Enabled (With this policy setting
Reporting Error Reporting enabled, Windows Error Reporting
doesn't send any problem information
to Microsoft. And solution information
isn't available in Security and
Maintenance in Control Panel.)
Windows Game Enables or disables N/A Disabled (With this setting disabled,
Recording and Windows Game Windows Game Recording aren't
Broadcasting Recording and allowed.)
Broadcasting
Windows Ink Allow Windows Ink Choose one of the following Enabled (With this setting enabled and
Workspace Workspace actions: Disabled sub-setting set to disabled, Windows
Ink Workspace functionality is
unavailable.)
Windows Installer Control maximum size 5 Enabled (This policy controls the
of baseline file cache percentage of disk space available to
the Windows Installer baseline file
cache. With this policy setting enabled,
you can modify the maximum size of
the Windows Installer baseline file
cache.)
Windows Installer Turn off creation of N/A Enabled (With this policy setting
System Restore enabled, the Windows Installer doesn't
checkpoints generate System Restore checkpoints
when installing applications.)
Policy setting Item Sub-item Possible setting and comments
Windows Mobility Turn off Windows N/A Enabled (With this policy setting
Center Mobility Center enabled, the user is unable to invoke
Windows Mobility Center. The
Windows Mobility Center UI is
removed from all shell entry points and
the .exe file doesn't launch it.)
Windows Reliability Configure Reliability N/A Disabled (With this policy setting
Analysis WMI Providers disabled, Reliability Monitor doesn't
display system reliability information,
and WMI-capable applications are
unable to access reliability information
from the listed providers.)
Windows Security \ Hide noncritical N/A Enabled (With this setting enabled,
Notifications notifications local users only see critical notifications
from Windows Security. They don't see
other types of notifications, such as
regular PC or device health
information.)
Windows Update Turn on Software N/A Disabled (This policy setting allows you
Notifications to control whether users see detailed
enhanced notification messages about
featured software from the Microsoft
Update service. Enhanced notification
messages convey the value and
promote the installation and use of
optional software. This policy setting is
intended for use in loosely managed
environments in which you allow the
end user access to the Microsoft
Update service.)
*Windows Update\ Manage preview Set the behavior for receiving Enabled (Selecting "Disable preview
Windows Update for builds preview builds: Disable preview builds" prevents preview builds from
Business builds installing on the device. This prevents
users from opting into the Windows
Insider Program, through Settings ->
Update and Security)
*Windows Update\ Select when Preview Select the Windows readiness Enabled (Enable this policy to specify
Windows Update for Builds and Feature level for the updates you want to the level of Preview Build or Feature
Business Updates are received receive: Updates to receive, and when. Semi-
Semi-Annual Channel Annual Channel: Receive feature
updates when they're released to the
After a Preview Build or Feature general public.
Update is released, defer
receiving it for this many days: When Selecting Semi-Annual Channel:
365
- You can defer receiving Feature
Pause Preview Builds or Feature Updates for up to 365 days.
Updates starting: yyyy-mm-dd
- To prevent Feature Updates from
being received on their scheduled time,
you can temporarily pause them. The
pause remains in effect for 35 days
from the start time provided.
field.)
Windows Update\ Select when Quality After a quality update is Enabled (Enable this policy to specify
Windows Update for Updates are received released, defer receiving it for when to receive quality updates.
Business this many days: 30
You can defer receiving quality updates
Pause Quality Updates starting: for up to 30 days.
yyyy-mm-dd
To prevent quality updates from being
received on their scheduled time, you
can temporarily pause quality updates.
The pause remains in effect for 35 days
or until you clear the start date field.
Control Panel\ Regional Turn off offer text N/A Enabled (This policy turns off the offer
and Language Options predictions as I type text predictions as I type option. This
doesn't, however, prevent the user or
an application from changing the
setting programmatically. With this
policy setting enabled, the option is
locked to not offer text predictions.)
Desktop Don't add shares of N/A Enabled (With this setting enabled,
recently opened shared folders aren't added to Network
documents to Locations automatically when you
Network Locations open a document in the shared folder.)
Desktop Turn off Aero Shake N/A Enabled (Prevents windows from being
window minimizing minimized or restored when the active
mouse gesture window is shaken back and forth with
the mouse. With this policy enabled,
application windows aren't minimized
or restored when the active window is
shaken back and forth with the mouse.)
Desktop / Active Maximum size of Number of objects returned:1500 Enabled (Specifies the maximum
Directory Active Directory number of objects the system displays
searches in response to a command to browse
or search Active Directory. This setting
affects all browse displays associated
with Active Directory, such as those in
Local Users and Groups, Active
Directory Users and Computers, and
dialog boxes used to set permissions
for user or group objects in Active
Directory.)
Policy setting Item Sub-item Possible setting and comments
Start Menu and Taskbar Don't display or track N/A Enabled (This policy setting allows you
items in Jump Lists to control displaying or tracking items
from remote locations in Jump Lists from remote locations.)
Start Menu and Taskbar Don't search Internet N/A Enabled (With this policy setting
enabled, the Start Menu search box
doesn't search for internet history or
favorites.)
Start Menu and Taskbar Don't use the search- N/A Enabled (This policy setting prevents
based method when the system from conducting a
resolving shell comprehensive search of the target
shortcuts drive to resolve a shortcut.)
Start Menu and Taskbar Turn off all balloon N/A Enabled (With this policy setting
notifications enabled, no notification balloons are
shown to the user.)
Start Menu and Taskbar Turn off feature N/A Enabled (With this policy setting
advertisement balloon enabled, certain notification balloons
notifications that are marked as feature
advertisements aren't shown.)
Start Menu and Taskbar Turn off user tracking N/A Enabled (With this policy setting
enabled, the system doesn't track the
programs that the user runs and
doesn't display frequently used
programs in the Start Menu.)
Start Menu and Taskbar Turn off toast N/A Enabled (With this policy setting
/ Notifications notifications enabled, applications can't raise toast
notifications.)
*Start Menu and Turn off toast N/A Enabled (With this policy setting
Taskbar / Notifications notifications on the enabled, applications can't raise toast
lock screen notifications on the lock screen.)
Windows Components Configure Windows N/A Disabled (With this policy disabled,
/ Cloud Content spotlight on lock Windows spotlight is turned off and
screen users can't select it as their lock screen.
Users see the default lock screen image
and are able to select another image,
unless you have enabled the "Prevent
changing lock screen image" policy.)
*Windows Components Don't suggest third- N/A Enabled (With this policy enabled,
/ Cloud Content party content in Windows spotlight features like lock
Windows spotlight screen spotlight, suggested apps in
Start menu or Windows tips doesn't
suggest apps and content from third-
party software publishers. Users may
still see suggestions and tips to make
them more productive with Microsoft
features and apps.)
Windows Components Don't use diagnostic N/A Enabled (With this policy setting
/ Cloud Content data for tailored enabled, Windows doesn't use
experiences diagnostic data from this device (this
data may include browser, app and
Policy setting Item Sub-item Possible setting and comments
Windows Components Turn off all Windows N/A Enabled (Windows spotlight on lock
/ Cloud Content spotlight features screen, Windows tips, Microsoft
consumer features, and other related
features are turned off. You should
enable this policy setting if your goal is
to minimize network traffic from target
devices.)
Edge UI Turn off tracking of N/A Enabled (This policy setting prevents
app usage Windows from keeping track of the
apps that are used and searched most
frequently. If you enable this policy
setting, apps are sorted alphabetically
in:
- search results
File Explorer Turn off caching of N/A Enabled (With this policy setting
thumbnail pictures enabled, thumbnail views aren't
cached.)
File Explorer Turn off common N/A Enabled (Disabling animations can
control and window improve usability for users with some
animations visual disabilities and improve
performance and battery life in some
scenarios.)
File Explorer Turn off display of N/A Enabled (Disables suggesting recent
recent search entries queries for the Search Box and
in the File Explorer prevents entries into the Search Box
search box from being stored in the registry for
future references.)
File Explorer Turn off the caching N/A Enabled (With this policy setting
of thumbnails in enabled, File Explorer doesn't create,
hidden thumbs.db read from, or write to thumbs.db files.)
files
System services
If you're considering disabling system services to conserve resources, make sure the service isn't a component of
some other service. In this paper and with the available GitHub scripts, some services aren't in the list because
they can't be disabled in a supported manner.
Most of these recommendations mirror recommendations for Windows Server 2016, installed with the Desktop
Experience, based on the instructions in Guidance on disabling system services on Windows Server 2016 with
Desktop Experience.
Many services that may seem like good candidates to disable are set to manual service start type. This means
that the service doesn't automatically start and start only if an event triggers a request to the service. Services
that are already set to start type manual aren't listed here.
7 Note
You can enumerate running services with this PowerShell sample code, outputting only the service short
name:
PowerShell
The following table contains some services that may be considered to disable in virtual desktop environments:
ノ Expand table
Cellular Time autotimesvc This service sets time based on Virtual desktop environments may not have such
NITZ messages from a Mobile devices available.
Network To learn more, see the MB NITZ support article.
GameDVR and BcastDVRUserService This (per-user) service is used NOTE: This is a "per-user service", and as such, the
Broadcast user for Game Recordings and Live template service must be disabled. This user service
service Broadcasts is used for Game Recordings and Live Broadcasts.
To learn more, see the MB NITZ support article.
CaptureService CaptureService Enables optional screen OneCore capture service: enables optional screen
capture functionality for capture functionality for applications that call the
applications that call the Windows.Graphics.Capture API
Windows.Graphics.Capture For more information, see the
API. Windows.Graphics.Capture Namespace API docs.
Connected CDPSvc This service is used for Connected Devices Platform Service. To learn more,
Devices Platform Connected Devices Platform see the Connected Devices Platform overview article
Service scenarios
CDP User Service CDPUserSvc N/A Connected Devices Platform User Service. To learn
more, see the Connected Devices Platform Protocol
Version 3 article.
Optimize drives defragsvc Helps the computer run more Virtual desktop solutions don't normally benefit
efficiently by optimizing files from disk optimization. The "drives" are often not
on storage drives. traditional drives and often just a temporary storage
allocation.
Diagnostic DiagSvc Executes diagnostic actions for Disabling this service disables the ability to run
Execution Service troubleshooting support Windows diagnostics Diagnostic Execution Service.
Windows Service Name Item Comment
Service
Connected User DiagTrack This service enables features Consider disabling if on disconnected network. To
Experiences and that support in-application learn more, see how-to configure Windows
Telemetry and connected user diagnostic data in your organization.
experiences. This service
manages the event driven
collection and transmission of
diagnostic and usage
information (used to improve
the experience and quality of
the Windows Platform) when
the diagnostics and usage
privacy option settings are
enabled under Feedback and
Diagnostics.
Diagnostic Policy DPS The Diagnostic Policy Service Disabling this service disables the ability to run
Service enables problem detection, Windows diagnostics. For more information, see the
troubleshooting, and Windows.System.Diagnostics Namespace reference.
resolution for Windows
components. If this service is
stopped, diagnostics don't
work.
Device Setup DsmSvc Enables the detection, If this service is disabled, devices may be configured
Manager download, and installation of with outdated software, and may not work correctly.
device-related software. Virtual desktop environments closely control what
software is installed and maintain that consistency
across the environment.
Data Usage DusmSvc Network data usage, data For more information, see the DUSM schema.
service limit, restrict background data,
metered networks.
Windows Mobile icssvc Provides the ability to share a To learn more, see the
Hotspot Service cellular data connection with NetworkOperatorTetheringAccessPointConfiguration
another device. Class reference.
Microsoft Store InstallService Provides infrastructure This service is started on demand and if disabled
Install Service support for the Microsoft then installations don't work properly.
Store. Consider disabling this service on non-persistent
virtual desktop, leave as-is for persistent virtual
desktop solutions.
Geolocation Lfsvc Monitors the current location If you turn off this service, applications are unable to
Service of the system and manages use or receive notifications for geolocation or
geofences (a geographical geofences. To learn more, see the
location with associated Windows.Devices.Geolocation Namespace
events). reference.
Downloaded MapsBroker Windows service for Disabling this service prevents apps from accessing
Maps Manager application access to maps. To learn more, see the
downloaded maps. This Windows.Services.Maps Namespace API docs.
service is started on-demand
by application accessing
downloaded maps.
MessagingService MessagingService Service supporting text This is a "per-user service", and as such, the
messaging and related template service must be disabled.
functionality.
Windows Service Name Item Comment
Service
Sync Host OneSyncSvc This service synchronizes mail, (UWP) Mail and other applications dependent on
contacts, calendar, and various this functionality don't work properly when this
other user data. service isn't running.
This is a "per-user service", and as such, the
template service must be disabled.
Contact Data PimIndexMaintenanceSvc Indexes contact data for fast This is a "per-user service", and as such, the
contact searching. If you stop template service must be disabled.
or disable this service,
contacts might be missing
from your search results.
Power Power Manages power policy and Virtual machines have virtually no influence on
power policy notification power properties. If this service is disabled, power
delivery. management and reporting aren't available. To learn
more, see the User-Mode Power Service article.
Payments and SEMgrSvc Manages payments and Near May not need this service for payments, in the
NFC/SE Manager Field Communication (NFC) enterprise environment.
based secure elements.
Microsoft SmsRouter Routes messages based on May not need this service, if other tools are used for
Windows SMS rules to appropriate clients. messaging, such as Teams. To learn more, see this
Router Service routing service article.
Superfetch SysMain Maintains and improves Superfetch generally doesn't improve performance
(SysMain) system performance over in virtual desktop environments for various reasons.
time. The underlying storage is often virtualized and
possibly striped across multiple drives. In some
virtual desktop solutions, the accumulated user
state is discarded when the user logs off. The
SysMain feature should be evaluated in each
environment.
Update UsoSvc Manages Windows Updates. If Virtual desktop devices are often carefully managed
Orchestrator stopped, your devices can't with respect to updates. Servicing is performed
Service download and install the latest during maintenance windows. In some cases, an
updates. update client may be utilized, such as SCCM. The
exception is for security signature updates that are
applied at any time, and to any virtual desktop
device, in order to maintain up-to-date signatures. If
you disable this service, test to ensure that security
signatures can still be installed.
Volume Shadow VSS Manages and implements If this service is stopped, shadow copies are
Copy Volume Shadow Copies used unavailable for backup and the backup may fail. If
for backup and other this service is disabled, any services that explicitly
purposes. depend on it fail to start. To learn more, see this
volume shadow copy service article.
Diagnostic WdiSystemHost The Diagnostic System Host is Disabling this service disables the ability to run
System Host used by the Diagnostic Policy Windows diagnostics
Service to host diagnostics
that need to run in a Local
System context. If this service
is stopped, any diagnostics
that depend on it doesn't
function.
Windows Service Name Item Comment
Service
Windows Error WerSvc Allows errors to be reported With virtual desktop environments, diagnostics are
Reporting when programs stop working often performed in an "offline" scenario, and not in
or responding and allows mainstream production. In addition, some
existing solutions to be customers disable WER anyway. WER incurs a tiny
delivered. Also allows logs to amount of resources for many different things,
be generated for diagnostic including failure to install a device, or failure to
and repair services. If this install an update. To learn more, see Windows Error
service is stopped, error Reporting.
reporting might not work
correctly, and results of
diagnostic services and repairs
might not be displayed.
Windows Search WSearch Provides content indexing, Disabling this service prevents indexing of e-mail
property caching, and search and other things. Test before disabling this service.
results for files, e-mail, and To learn more, see Windows search service overview.
other content.
Xbox Live Auth XblAuthManager Provides authentication and If this service is stopped, some applications may not
Manager authorization services for operate correctly.
interacting with Xbox Live.
Xbox Live Game XblGameSave This service syncs save data If this service is stopped, game save data doesn't
Save for Xbox Live save enabled upload to or download from Xbox Live.
games.
Scheduled tasks
Like other items in Windows, ensure an item isn't needed before disabling a scheduled task. Some tasks in virtual
desktop environments, such as StartComponentCleanup, may not be desirable to run in production, but may be
good to run during a maintenance window on the "gold image" (reference image).
The following list of tasks includes tasks that perform optimizations or data collections on computers that
maintain their state across reboots. When a virtual desktop device reboots and discards all changes since last
boot, optimizations intended for physical computers aren't helpful.
You can get all the current scheduled tasks, including descriptions, with the following PowerShell code:
PowerShell
Get-ScheduledTask | Select-Object -Property TaskPath,TaskName,State,Description
7 Note
There are several tasks that can't be disabled with a script, even when run on an elevated command prompt.
The recommendations here, and in the GitHub scripts don't attempt to disable tasks that can't be disabled
with a script.
ノ Expand table
AnalyzeSystem This task analyzes the system looking for conditions that may cause high energy
use
FamilySafetyRefreshTask Synchronizes the latest settings with the Microsoft family features service.
Microsoft-Windows- The Windows Disk Diagnostic reports general disk and system information to
DiskDiagnosticDataCollector Microsoft for users participating in the Customer Experience Program.
NotificationTask Background task for performing per user and web interactions
Proxy This task collects and uploads autochk SQM data if opted-in to the Microsoft
Customer Experience Improvement Program.
SilentCleanup Maintenance task used by the system to launch a silent auto disk cleanup when
running low on free disk space.
Scheduled Task Name Description
SpeechModelDownloadTask
Sqm-Tasks This task gathers information about the Trusted Platform Module (TPM), Secure
Boot, and Measured Boot.
StartComponentCleanup Servicing task that may be better performed during maintenance windows
StartupAppTask Scans startup entries and raises notification to the user if there are too many
startup entries.
SyspartRepair
This would be a good setting in case you're going to install Microsoft applications such as Microsoft Office to the
base image. That way Office is up to date when the image is put in service. There are also .NET updates and
certain third-party components such as Adobe that have updates available through Windows Update.
One important consideration for non-persistent virtual desktop devices is security updates, including security
software definition files. These updates may be released once or more times per day.
For Windows Defender it may be best to allow the updates to occur, even on non-persistent virtual desktop
environments. The updates are going to apply nearly every time you sign in, but the updates are small and
shouldn't be a problem. Plus, the device won’t be behind on updates because only the latest available applies.
The same may be true for third-party definition files.
7 Note
Store apps (UWP apps) update through the Windows Store. Modern versions of Office such as Office 365
update through their own mechanisms when directly connected to the Internet, or through management
technologies when not.
Some of the traces displayed under Event Trace Sessions and Startup Event Trace Sessions can't and shouldn't
be stopped. Others, such as the WiFiSession trace can be stopped. To stop a running trace under Event Trace
Sessions, right-click the trace and then select Stop. Use the following procedure to prevent the traces from
starting automatically on startup:
2. Find and select the trace file you want to look at to open it.
5. Select Ok.
The following table lists some system traces that you should consider disabling in your virtual desktop
environments:
ノ Expand table
Name Comment
DiagLog A log generated by the Diagnostic Policy Service, which is documented in Guidance on disabling
system services with Desktop Experience
WiFiSession Diagnostic log for WLAN technology. If Wi-Fi isn't implemented, there's no need for this logger
WinPhoneCritical Diagnostic log for phone (Windows?). If not using phones, no need for this logger
The deployment guide contains procedures to service the "gold" virtual desktop image, and how to maintain the
virtual desktop clients as they're running. To reduce network bandwidth when virtual desktop devices need to
update their Windows Defender signatures, stagger reboots, and schedule reboots during off hours where
possible. The Windows Defender signature updates can be contained internally on file shares, and where
practical, have those files shares on the same or close networking segments as the virtual desktop devices.
7 Note
Some settings in this section are registry-based only and should be incorporated in the base image before
the image is deployed for production use.
The following settings are documented in Performance tuning guidelines for Windows Server.
DisableBandwidthThrottling
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DisableBandwidthThrottling
Applies to Windows 10 and Windows 11. The default is 0. By default, the SMB redirector throttles throughput
across high-latency network connections, in some cases to avoid network-related timeouts. Setting this registry
value to 1 disables this throttling, enabling higher file transfer throughput over high-latency network connections.
Consider setting this value to 1.
FileInfoCacheEntriesMax
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileInfoCacheEntriesMax
Applies to Windows 10 and Windows 11. The default is 64, with a valid range of 1 to 65536. This value is used to
determine the amount of file metadata that can be cached by the client. Increasing the value can reduce network
traffic and increase performance when many files are accessed. Try increasing this value to 1024.
DirectoryCacheEntriesMax
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheEntriesMax
Applies to Windows 10 and Windows 11. The default is 16, with a valid range of 1 to 4096. This value is used to
determine the amount of directory information that can be cached by the client. Increasing the value can reduce
network traffic and increase performance when large directories are accessed. Consider increasing this value to
1024.
FileNotFoundCacheEntriesMax
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileNotFoundCacheEntriesMax
Applies to Windows 10 and Windows 11. The default is 128, with a valid range of 1 to 65536. This value is used to
determine the amount of file name information that can be cached by the client. Increasing the value can reduce
network traffic and increase performance when many file names are accessed. Consider increasing this value to
2048.
DormantFileLimit
HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DormantFileLimit
Applies to Windows 10 and Windows 11. The default is 1023. This parameter specifies the maximum number of
files that should be left open on a shared resource after the application has closed the file. Where many
thousands of clients are connecting to SMB servers, consider reducing this value to 256.: Windows Server 2022,
Windows Server 2019,
You can configure many of these SMB settings by using the Set-SmbClientConfiguration and Set-
SmbServerConfiguration Windows PowerShell cmdlets. Registry-only settings can be configured by using
Windows PowerShell as well, as in the following example:
PowerShell
The Windows Restricted Traffic Limited Functionality Baseline settings are called out in the group policy table
with an asterisk.
Disk cleanup
Disk cleanup can be especially helpful with gold/master image virtual desktop implementations. After the
gold/master image is prepared, updated, and configured, one of the last tasks to perform is disk cleanup. The
optimization scripts on Github.com have PowerShell code to perform common disk cleanup tasks
7 Note
Disk cleanup settings and are in the Settings category "System" called "Storage." By default, Storage Sense
runs when a low disk free space threshold is reached.
To learn more about how to use Storage Sense with Azure custom VHD images, see Prepare and customize
a master VHD image.
For Azure Virtual Desktop session host that use Windows Enterprise or Windows Enterprise multi-session, we
recommend disabling Storage Sense. You can disable Storage Sense in the Settings menu under Storage.
Here are suggestions for various disk cleanup tasks. These should all be tested before implementing:
1. Storage Sense may be utilized manually or automatically. For more information on Storage Sense, see
Manage drive space with Storage Sense .
2. Manually cleanup temporary files and logs. From an elevated command prompt, run these commands:
a. Del C:\*.tmp /s
b. C:\*.etl /s
c. C:\*.evtx /s
PowerShell
Get-ChildItem -Path c:\ -Include *.tmp, *.dmp, *.etl, *.evtx, thumbcache*.db, *.log -File -
Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -ErrorAction SilentlyContinue
3. Delete any unused profiles on the system by running the following command:
For any questions or concerns about the information in this paper, contact your Microsoft account team, research
the Microsoft virtual desktop IT Pro blog , post a message to Microsoft Virtual Desktop forums , or contact
Microsoft for questions or concerns.
Go to Local Computer Policy > Computer Configuration > Administrative Templates > System >
Internet Communication Management > Internet Communication settings.
Turn off access to all Windows Update features by changing the setting from enabled to not
configured.
Go to Local Computer Policy > Computer Configuration > Administrative Templates > Windows
Components > Windows Update.
Remove access to all Windows Update features by changing the setting from enabled to not
configured.
Don't connect to any Windows Update Internet locations by changing the setting from enabled to
not configured.
Go to Local Computer Policy > Computer Configuration > Administrative Templates > Windows
Components > Windows Update > Windows Update for Business.
Select when Quality Updates are received (change from enabled to not configured)
Go to Local Computer Policy > Computer Configuration > Administrative Templates > Windows
Components > Windows Update > Windows Update for Business.
Select when Preview Builds and Feature Updates are received (change from enabled to not
configured)
2. Re-enable services:
3. Edit the Windows registry (warning, be careful when editing the registry).
Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UpdatePolicy\PolicyState .
Change DeferQualityUpdates from '1' to '0'.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UpdatePolicy\Settings
Go to Task Scheduler Library > Microsoft > Windows > InstallService > ScanForUpdates.
Go to Task Scheduler Library > Microsoft > Windows > InstallService > ScanForUpdatesAsUser.
6. If you don't want this device offered Feature Updates, go to Settings > Windows Update > Advanced
options > Choose when updates are installed and manually set the option A feature update includes new
capabilities and improvements. It can be deferred for this many days to any nonzero value, such as 180,
365, and so on.
More information
Learn more about Microsoft's VDI architecture at our Azure Virtual Desktop documentation .
If you need more help with troubleshooting sysprep, check out Sysprep fails after you remove or update
Microsoft Store apps that include built-in Windows images .
Feedback
Was this page helpful? Yes No
Remote Desktop clients for Remote
Desktop Services and remote PCs
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
With Microsoft Remote Desktop clients, you can connect to Remote Desktop Services
from Windows Server and remote PCs, and use and control desktops and apps that your
admin has made available to you. There are clients available for many different types of
devices on different platforms and form factors, such as desktops and laptops, tablets,
smartphones, and through a web browser. Using your web browser on desktops and
laptops, you can connect without having to download and install any software.
There are many features you can use to enhance your remote experience, such as:
Some features are only available with certain clients, so it's important to check Compare
the features of the Remote Desktop clients to understand the differences when
connecting to Remote Desktop Services or remote PCs.
Tip
You can also use most versions of the Remote Desktop client to also connect to
Azure Virtual Desktop, as well as to Remote Desktop Services in Windows Server or
to a remote PC. If you want information on Azure Virtual Desktop instead, see
Remote Desktop clients for Azure Virtual Desktop.
Here's a list of the Remote Desktop client apps and our documentation for connecting
to Remote Desktop Services or remote PCs, where you can find download links, what's
new, and learn how to install and use each client.
ノ Expand table
Remote Desktop client Documentation and download links Version
information
Windows Store Remote Connect to Remote Desktop Services and remote What's new
Desktop app PCs with the Windows Store Remote Desktop app
for Windows
Feedback
Was this page helpful? Yes No
Get started with the Remote Desktop
app for Windows
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use the Remote Desktop app for Windows to work with Windows apps and PCs
remotely from a different Windows device.
Use the following information to get started. Be sure to check out the FAQ if you have
any questions.
Tip
) Important
We're no longer updating the Remote Desktop app for Windows with new features
and support for Azure Virtual Desktop will be removed in the future.
For the best Azure Virtual Desktop experience that includes the latest features and
updates, we recommend you download the Windows Desktop client instead.
Need to edit these settings? Tap the overflow menu (...) next to the name of the PC, and
then tap Edit.
Want to delete the connection? Again, tap the overflow menu (...), and then tap
Remove.
Add a workspace
Workspaces are RemoteApp programs, session-based desktops, and virtual desktops
published by your admin using Remote Desktop Services.
To add a workspace:
1. On the Connection Center screen, tap + Add, and then tap Workspaces.
2. Enter the Feed URL provided by your admin and tap Find feeds.
3. When prompted, provide the credentials to subscribe to the feed.
To delete workspaces:
1. In the Connection Center, tap the overflow menu (...) next to the workspace.
2. Tap Remove.
Now you can start the PC connection directly from your Start menu by tapping it.
7 Note
You can also add a gateway when you add a new connection.
Server name – The name of the computer you want to use as a gateway. The
server name can be a Windows computer name, an Internet domain name, or
an IP address. You can also add port information to the server name (for
example: RDGateway:443 or 10.0.0.1:443).
User account - Select or add a user account to use with the Remote PC
Gateway you're connecting to. You can also select Use desktop user account
to use the same credentials that you used for the remote PC connection.
4. Tap Save.
Managed items
User account - Allows you to add, edit, and delete user accounts saved in the
client. You can also update the password for an account after it's changed.
Gateway - Allows you to add, edit, and delete gateway servers saved in the client.
Group - Allows you to add, edit, and delete groups saved in the client. You can
also group connections here.
Session settings
Start connections in full screen - When enabled, anytime a connection is
launched, the client will use the entire screen of the current monitor.
Start each connection in a new window - When enabled, each connection is
launched in a separate window, allowing you to place them on different monitors
and switch between them using the taskbar.
When resizing the app: - Allows you control over what happens when the client
window is resized. Defaults to Stretch the content, preserving aspect ratio.
Use keyboard commands with: - Lets you specify where keyboard commands like
WIN or ALT+TAB are used. The default is to only send them to the session when
the connection is in full screen.
Prevent the screen from timing out - Allows you to keep the screen from timing
out when a session is active. Preventing timeout is helpful when the connection
doesn't need interaction for long periods of time.
App settings
Show PC Previews - Lets you see a preview of a PC in the Connection Center
before you connect to it. This setting is on by default.
Help improve Remote Desktop - Sends anonymous data to Microsoft. We use this
data to improve the client. To learn more about how we treat this anonymous and
private data, see the Microsoft Privacy Statement . This setting is on by default.
Username - The name of the user to save for use with a remote connection.
You can enter the user name in any of the following formats: user_name,
domain\user_name, or [email protected].
Password - The password for the user you specified. This field can be left
blank to be prompted for a password during the connection.
4. Tap Save.
Connection bar
The connection bar gives you access to additional navigation controls. By default, the
connection bar is placed in the middle of the top of the screen. Tap and drag the bar to
the left or right to move it.
Pan Control - The pan control enables the screen to be enlarged and moved
around. Pan control is only available on touch-enabled devices and using the direct
touch mode.
To enable or disable the pan control, tap the pan icon in the connection bar to
display the pan control. The screen will zoom in while the pan control is active.
Tap the pan icon in the connection bar again to hide the control and return the
screen to its original resolution.
To use the pan control, tap and hold the pan control and then drag in the
direction you want to move the screen.
To move the pan control, double-tap and hold the pan control to move the
control on the screen.
Additional options - Tap the additional options icon to display the session
selection bar and command bar.
Keyboard - Tap the keyboard icon to display or hide the on-screen keyboard. The
pan control is displayed automatically when the keyboard is displayed.
Command bar
Tap the ... on the connection bar to display the command bar on the right side of the
screen.
Home - Use the Home button to return to the connection center from the
command bar.
You can also use the back button for the same action. If you use the back
button, your active session won't be disconnected, allowing you to launch
additional connections.
Disconnect - Use the Disconnect button to disconnect from the session. Your apps
will remain active as long as the session is still active on the remote PC.
Full-screen - Enters or exits full screen mode.
Touch or Mouse - You can switch between the mouse modes (Direct Touch and
Mouse Pointer).
Direct touch: Passes all of the touch contacts to the session to be interpreted
remotely.
Used in the same way you would use Windows with a touch screen.
Mouse pointer: Transforms your local touch screen into a large touchpad, letting
you move a mouse pointer in the session.
Used in the same way you would use Windows with a touchpad.
7 Note
In Windows 8 or later, the native touch gestures are supported in Direct Touch
mode.
ノ Expand table
Mouse Left-click and Double-tap and hold with one finger, then drag
pointer drag
Mouse Right-click and Double-tap and hold with two fingers, then drag
pointer drag
Mouse Mouse wheel Tap and hold with two fingers, then drag up or down
pointer
Mouse Zoom With two fingers, pinch to zoom out and move fingers apart
pointer to zoom in
Give us feedback
Have a feature suggestion or want to report a problem? Tell us with the Feedback
Hub .
You can also give us feedback by selecting the ellipsis button (...) in the client app, then
selecting Feedback, as shown in the following image.
7 Note
To best help you, we need you to give us as detailed information about the issue as
possible. For example, you can include screenshots or a recording of the actions
you took leading up to the issue. For more tips about how to provide helpful
feedback, see Feedback.
Feedback
Was this page helpful? Yes No
What's new in the Remote Desktop app
for Windows
Article • 07/03/2024
In this article you'll learn about the latest updates for the Remote Desktop app for
Windows. To learn more about using the Remote Desktop app for Windows with
Remote Desktop Services, see Get started with the Microsoft Store Client.
) Important
We're no longer updating the Remote Desktop app for Windows with new features.
ノ Expand table
Updated Store description to mention the end of Azure Virtual Desktop support.
Fixed the vulnerability known as CVE-2023-28290 .
Rewrote the client to use the same underlying RDP core engine as the iOS, macOS,
and Android clients.
Added support for the Azure Resource Manager-integrated version of Azure
Virtual Desktop.
Added support for x64 and ARM64.
Updated the side panel design to full screen.
Added support for light and dark modes.
Added functionality to subscribe and connect to sovereign cloud deployments.
Added functionality to enable backup and restore of workspaces (bookmarks) in
release to manufacturing (RTM).
Updated functionality to use existing Azure Active Directory (Azure AD) tokens
during the subscription process to reduce the number of times users must sign in.
Updated subscription can now detect whether you're using Azure Virtual Desktop
or Azure Virtual Desktop (classic).
Fixed issue with copying files to remote PCs.
Fixed commonly reported accessibility issues with buttons.
A limit of up to 20 credentials per app is allowed.
Audio from the session now continues to play even when the app is minimized or
in the background.
Fixed an issue where the toggle keys (caps lock, num lock, and so on) went out of
sync between the local and remote PCs.
Performance improvements on 64-bit devices.
Fixed a crash that occurred whenever the app was suspended.
You can now copy files between local and remote PCs.
You can now use your email address to access remote resources (if enabled by
your admin).
You can now change user account assignments for remote resource feeds.
The app now shows the proper icon for .rdp files assigned to this app in File
Explorer instead of a blank default icon.
You can now set a display name for user accounts so you can save the same
username with different passwords.
It's now possible to select an existing user account when adding Remote
Resources.
Fixed an issue where the client wasn't terminating correctly.
The client now properly handles being suspended when secondary windows are
open.
Additional bug fixes.
Updates for version 10.1.1088
Published: November 6, 2018
Bug fixes.
Feedback
Was this page helpful? Yes No
Get started with the Android client
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use the Remote Desktop client for Android to work with Windows apps and
desktops directly from your Android device or a Chromebook that supports the Google
Play Store.
This article will show you how to get started using the client. If you have any additional
questions, make sure to check our FAQ.
Tip
7 Note
Curious about the new releases for the Android client? Check out What's new
for the Android client.
The Android client supports devices running Android 9 and later, as well as
Chromebooks with ChromeOS 53 and later. Learn more about Android
applications on Chrome at Chrome OS Systems Supporting Android Apps .
Before you add a connection, if you haven't done so already, set up your PC to accept
remote connections.
2. Enter the name of the remote PC into PC name. This name can be a Windows
computer name, an Internet domain name, or an IP address. You can also append
port information to the PC name (for example, MyDesktop:3389 or 10.0.0.1:3389).
This field is the only required field.
3. Select the User name you use to access the Remote PC.
Select Enter every time for the client to ask for your credentials every time
you connect to the remote PC.
Select Add user account to save an account that you use frequently so you
don't have to enter credentials every time you sign in. To learn more about
user accounts, see Manage your user accounts.
4. You can also tap on Show additional options to set the following optional
parameters:
Want to remove the connection? Again, tap the More options menu (...), and then tap
Remove.
Tip
If you get an error name "0xf07" that says something like "We couldn't connect to
the remote PC because the password associated with the user account has
expired," try again with a new password.
1. In the Connection Center, tap +, and then tap Remote Resource Feed.
2. In the Feed URL field, enter the URL for the feed you want to add. This URL can be
either a URL or an email address.
If you use a URL, use the one your admin gave you.
If you use an email address, enter your email address. Entering your email
address tells the client to search for a URL associated with your email address
if your admin configured the server that way.
3. Tap Next.
4. Provide your sign-in information when prompted. The credentials you should use
can vary based on the deployment and can include:
1. In the Connection Center, tap the overflow menu (...) next to the remote resource.
2. Tap Remove.
3. Confirm you've removed the resource.
To add a widget:
Now you can start the remote desktop connection directly from your home screen by
tapping it.
7 Note
If you rename the desktop connection in the Remote Desktop client, its pinned
label won't update.
Show desktop previews lets you see a preview of a desktop in the Connection
Center before you connect to it. This setting is enabled by default.
Pinch to zoom remote session lets you use pinch-to-zoom gestures. If the app
you're using through Remote Desktop supports multi-touch (introduced in
Windows 8), disable this feature.
Enable Use scancode input when available if your remote app doesn't respond
properly to keyboard input sent as scancode. Input is sent as unicode when
disabled.
Help improve Remote Desktop sends anonymous data about how you use
Remote Desktop for Android to Microsoft. We use this data to improve the client.
To learn more about our privacy policy and what kinds of data we collect, see the
Microsoft Privacy Statement . This setting is enabled by default.
Orientation sets the preferred orientation (landscape or portrait) for your session.
7 Note
Resolution sets the remote resolution you want to use for desktop connections
globally. If you have already set a custom resolution for an individual connection,
this setting won't change that.
7 Note
When you change the display settings, the changes only apply to new
connections you make after the you changed the setting. To apply your
changes to the session you're currently connected to, refresh your session by
disconnecting and reconnecting.
Enter the name of the computer you want to use as a gateway into Server
name. This name can be a Windows computer name, an Internet domain
name, or an IP address. You can also add port information to the server name
(for example: RDGateway:443 or 10.0.0.1:443).
Select the User account you'll use to access the RD Gateway.
Select Use desktop user account to use the same credentials that you
specified for the remote PC.
Select Add user account to save an account that you use frequently so
you don't have to enter credentials every time you sign in. For more
information, see Manage your user accounts.
To delete an RD Gateway:
1. In the Connection Center, tap Settings, and then tap User accounts.
2. Tap + to add a new user account.
3. Enter the following information:
The User Name to save for use with a remote connection. You can enter the
user name in any of the following formats: user_name, domain\user_name, or
[email protected].
The Password for the user you specified. Every user account that you want to
save to use for remote connections needs to have a password associated with
it.
4. When you're done, tap Save.
1. In the Connection Center, tap Settings, and then tap User accounts.
2. Tap and hold a user account in the list to select it. You can select multiple users at
the same time.
3. Tap the trash can to delete the selected user.
To start a session:
1. Tap the name of your Remote Desktop connection to start the session.
2. If you're asked to verify the certificate for the remote desktop, tap Connect. You
can also select Don't ask me again for connections to this computer to always
accept the certificate by default.
Pan Control: The pan control enables the screen to be enlarged and moved
around. Pan control is only available for direct touch.
To show the pan control, tap the pan icon in the connection bar to display the
pan control and zoom the screen. Tap the pan icon again to hide the control
and return the screen to its original size.
To use the pan control, tap and hold it, then drag it in the direction you want to
move the screen.
To move the pan control, double-tap and hold it to move the control around on
the screen.
Additional options: Tap the additional options icon to display the session selection
bar and command bar.
Keyboard: Tap the keyboard icon to display or hide the keyboard. The pan control
is displayed automatically when the keyboard is displayed.
Use the session selection bar
You can have multiple connections open to different PCs at the same time. Tap the
connection bar to display the session selection bar on the left side of the screen. The
session selection bar lets you view your open connections and switch between them.
When you're connected to remote resources, you can switch between apps within that
session by tapping the expander menu ( > ) and choosing from the list of available
items.
To start a new session within your current connection, tap Start New, then choose from
the list of available items.
7 Note
Native touch gestures are supported in Direct Touch mode in Windows 8 or later.
ノ Expand table
Direct touch Right-click Tap with one finger and hold, then release
Mouse Mouse action Gesture
mode
Mouse Zoom Use two fingers and pinch to zoom out or move fingers apart
pointer to zoom in.
Mouse Left-click and Double-tap and hold with one finger, then drag
pointer drag
Mouse Right-click and Double-tap and hold with two fingers, then drag
pointer drag
Mouse Mouse wheel Tap and hold with two fingers, then drag up or down
pointer
To join the Beta, download our Beta client and give consent to access preview versions
and download the client. You'll receive preview versions directly through the Google
Play Store.
Feedback
Was this page helpful? Yes No
What's new in the Remote Desktop
client for Android and Chrome OS
Article • 07/03/2024
In this article you'll learn about the latest updates for the Remote Desktop client for
Android and Chrome OS. To learn more about using the Remote Desktop client for
Android and Chrome OS with Remote Desktop Services, see Get started with the
Android client.
ノ Expand table
Added support for client-side IMEs when using built-in and onscreen keyboards.
Added a prompt for credentials when subscribing to a workflow.
Improved Azure Virtual Desktop workspace download performance to prevent
throttling.
Fixed an issue where incorrect command icons would appear in the UI.
Updates for version 10.0.9
Published: 2/2/2021
Changed the client icon to distinguish it from the new client currently in preview.
Prepared the client to support settings and connections transfer to the new client.
Feedback
Was this page helpful? Yes No
Get started with the iOS client
Article • 08/09/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use the Remote Desktop client for iOS to work with Windows apps, resources,
and desktops from your iOS device (iPhones and iPads).
Use the following information to get started. Be sure to check out the FAQ if you have
any questions.
Tip
7 Note
Curious about the new releases for the iOS client? Check out What's new for
Remote Desktop on iOS?.
The iOS client supports devices running iOS 14.x and newer.
1. Download the Microsoft Remote Desktop client from the iOS App Store or
iTunes .
2. Set up your PC to accept remote connections.
Beta client
If you want to help us test new builds before they're released, you should download our
beta client. Organizations can use the beta client to validate new versions for their users
before they're generally available. You can download the beta client for iOS and iPadOS
from TestFlight. The beta client shouldn't be used in production. To get started, see
Microsoft Remote Desktop for iOS .
) Important
The Remote Desktop app is changing to Windows App. To ensure you can validate
the upcoming Windows App update before it's released into the store, the
Windows App preview is now available in the Remote Desktop Beta channels where
you can test the experience of updating from Remote Desktop to Windows App. To
learn more about Windows App, see Get started with Windows App to connect to
devices and apps.
Add a PC
After you've downloaded the client and configured your PC to accept remote
connections, it's time to actually add a PC.
To add a PC:
Need to edit these settings? Press and hold the desktop you want to edit, then tap the
settings icon.
Add a workspace
To get a list of managed resources you can access on your iOS, add a workspace by
subscribing to the feed provided by your admin.
To add a workspace:
1. On the Connection Center screen, tap +, and then tap Add workspace.
2. In the Feed URL field, enter the URL for the feed you want to add. This URL can be
either a URL or an email address.
If you use a URL, use the one your admin gave you.
If you use an email address, enter your email address. Entering your email
address tells the client to search for a URL associated with your email address
if your admin configured the server that way.
3. Tap Next.
4. Provide your credentials when prompted.
For User name, give the user name of an account with permission to access
resources.
For Password, give the password for the account.
You may also be prompted to give additional information depending on the
settings your admin configured authentication with.
5. Tap Save.
After you've finished, the Connection Center should display the remote resources.
Once subscribed to a feed, the feed content will update automatically on a regular basis.
Resources may be added, changed, or removed based on changes made by your
administrator.
1. In the Connection Center, tap Settings, and then tap User Accounts.
2. Tap Add User Account.
3. Enter the following information:
User Name - The name of the user to save for use with a remote connection.
You can enter the user name in any of the following formats: user_name ,
domain\user_name , or [email protected] .
4. Tap Save.
1. In the Connection Center, tap Settings, and then tap User Accounts.
2. Select the account you would like to delete.
3. Tap Delete.
Gateway name – The name of the computer you want to use as a gateway.
The gateway name can be a Windows computer name, an Internet domain
name, or an IP address. You can also add port information to the server name
(for example, RDGateway:443 or 10.0.0.1:443).
User name - The user name and password to be used for the Remote
Desktop gateway you're connecting to. You can also select Use connection
credentials to use the same user name and password that you used for the
remote desktop connection.
Connection bar
The connection bar gives you access to additional navigation controls.
Pan Control: The pan control enables the screen to be enlarged and moved
around. Pan control is only available using direct touch.
To enable or disable the pan control, tap the pan icon in the connection bar to
display the pan control. The screen will zoom in while the pan control is active.
the pan icon in the connection bar again to hide the control and return the
screen to its original resolution.
To use the pan control, tap and hold the pan control. While holding, drag your
fingers in the direction you want to move the screen.
To move the pan control, double-tap and hold the pan control to move the
control on the screen.
Connection name: The current connection name is displayed. Tap the connection
name to display the session selection bar.
Keyboard: Tap the keyboard icon to display or hide the keyboard. The pan control
is displayed automatically when the keyboard is displayed.
Move the connection bar: Tap and hold the connection bar. While holding the bar,
drag it over to its new location. Let go of the bar to place it at the new location.
Session selection
You can have multiple connections open to different PCs at the same time. Tap the
connection bar to display the session selection bar on the left-hand side of the screen.
The session selection bar enables you to view your open connections and switch
between them.
To switch between apps in an open remote resource session, tap the expander
menu and choose an app from the list.
Tap Start New to start a new session, then choose a session from the list of
available sessions.
Tap the X icon on the left side of the session tile to disconnect from your session.
Command bar
The command bar replaced the Utility bar starting in version 8.0.1. You can use the
command bar to switch between mouse modes and return to the connection center.
7 Note
In Windows 8 or later, the native touch gestures are supported in Direct Touch
mode. For more information on Windows 8 gestures, see Touch: Swipe, tap, and
beyond .
ノ Expand table
Mouse Mouse operation Gesture
mode
Mouse Left-click and Tap and hold with one finger, then drag
pointer drag
Mouse Right-click and Double-tap and hold with two fingers, then drag
pointer drag
Mouse Mouse wheel Double-tap and hold with two fingers, then drag up or down
pointer
Mouse Zoom With two fingers, pinch to zoom out and spread fingers apart
pointer to zoom in
Mouse input
The client has Bluetooth mouse support for iOS 13 and iPadOS as an accessibility
feature. You can use Swiftpoint GT or ProPoint mice for deeper mouse integration. The
client also supports external keyboards that are compatible with iOS and iPadOS.
For more information about device support, see What's new in the iOS client and the
iOS App Store .
Camera redirection
Camera redirection protocol (MS-RDPECAM) doesn't support dynamically changing the
camera resolution while the camera is in use, such as when rotating the device. You
need to start and restart the camera. For example, in the camera app, assuming you're
using the front camera, change to the rear camera, then back to the front camera.
For on-screen keyboards, use the button on the right edge of the bar above the
keyboard to switch between the standard and additional keyboard.
If Bluetooth is enabled on your iOS device, the client automatically detects the Bluetooth
keyboard.
While certain key combinations might not work as expected in a remote session, many
of the common Windows key combinations, such as CTRL+C, CTRL+V, and ALT+TAB will
work.
Tip
Questions and comments are always welcome. However, if you post support
requests or product feedback in this article's comments section, we won't be able
to respond to your feedback. If you need help or want to troubleshoot your client,
we highly recommend you go to the Remote Desktop client forum and start a new
thread.
Feedback
Was this page helpful? Yes No
What's new in the Remote Desktop
client for iOS and iPadOS
Article • 07/03/2024
In this article you'll learn about the latest updates for the Remote Desktop client for iOS
and iPadOS. To learn more about using the Remote Desktop client for iOS and iPadOS
with Remote Desktop Services, see Get started with the iOS client.
ノ Expand table
Added support for the new iPad models released in May 2024.
Bug fixes.
7 Note
As of this release, only iOS 16 and iPadOS 16 and later are supported.
7 Note
Added support for dual monitors when using iPads with Stage Manager.
Addressed reported accessibility bugs.
Fixed some keyboard mappings that stopped working after the iOS 17 update.
Added support for displaying sessions on an external monitor. You can use this
new feature with iPad and iPhone using AirPlay or a physical cable.
Added support for location redirection. To use this feature, you need access to
your device location, and your session hosts must be running Windows 11 or later.
Fixed an issue with IPv6 address resolution that was blocking connectivity.
Addressed a deadlock that could occur in server redirection scenarios.
We changed the connection bar to always start expanded by default. You can
minimize the connection bar by dragging it to a corner of the screen. To return the
connection bar to its regular size, drag it to the center of the screen.
You can now dismiss all in-app messages by swiping downwards.
Fixed an issue that caused graphics to look distorted in Lock to Landscape mode.
Updates for version 10.4.7
Published: May 17, 2023
In this release we made some tweaks around the behavior of the connection bar on
iPads and fixed some bugs to keep things running smoothly.
We fixed an issue that caused the connection bar to get stuck under the Stage
Manager ellipsis menu.
The connection bar will now be docked on the right side of the screen when you
turn your iPad on. The iOS client will also save the position you dock your screen in
across all your iPad and iPhone devices.
We moved the Add a PC or Workspace button to the center of the toolbar at the
bottom of the screen.
In this release, we removed the global prompt for camera and microphone access when
you first open and run the iOS client. Instead, whenever a connection bookmark or
published resource requests access, you'll receive a prompt asking whether you want to
give permission.
We also fixed some bugs and added some small additional features:
7 Note
As of this release, only iOS 15 and iPadOS 15 and later are supported.
Fixed a WebSocket transport bug that affected some Azure Virtual Desktop
deployments
Addressed accessibility compliance issues.
In this release, we made targeted bug fixes and performance improvements, and also
added new features. Here's what we included:
You can now use Apple Pencil to draw, write, and interact with remote sessions.
You can now see a live preview of the current active session when switching to the
Connection Center from a remote session.
Gather logs for troubleshooting by going to Settings > Troubleshooting.
Review app highlights from previous versions by going to Settings > About >
Version Highlights.
We made some small appearance changes to the connection bar user interface.
We fixed issues that affected locking to landscape or portrait on iOS 16.
In this release, we resolved some bugs that impacted Azure Virtual Desktop deployment
connectivity. We also fixed an issue that caused external keyboard input to stop working
when you press Command+Tab to switch out of and return to the app.
This is a significant update with some new feature additions and lots of bug fixes and
improvements.
The biggest change in this release is that you can now dynamically change the
orientation of the remote session to either landscape or portrait mode while connected
to a machine running Windows 8.1, Windows Server 2012 R2 or later. You can set your
orientation preferences in Settings > Display.
The in-session immersive switcher has a revamped look and feel, and can
accommodate both landscape and portrait orientation.
The on-screen keyboard has been redesigned to support portrait orientation.
The connecting UI now supports for both landscape and portrait orientation.
The PC tab of the connection center now supports high-resolution thumbnails and
portrait snapshots.
7 Note
This release removes support for iOS 13 and is only compatible with iOS 14 and 15.
In this release we added support for the iPad Mini 6 and addressed an issue with Slide
Over windows and keyboard interaction. Thanks for all the feedback. We're working
hard to make this app great!
In this release, we added support for time zone redirection. This new feature fixes an
issue in Windows 11 remote sessions that caused the screen to flicker, making the
session unusable.
In this release, we made some significant updates to the shared underlying code that
powers the Remote Desktop experience across all our clients. We also added some new
features and addressed bugs and crashes that were showing up in error reporting.
You can now collapse the connection bar by moving it into one of the four corners
of the screen.
On iPads and large iPhones you can dock the connection bar to the left or right
edge of the screen.
You can now see the zoom slider panel by pressing and holding the connection
bar magnification button. The new zoom slider controls the magnification level of
the session in both touch and mouse pointer mode.
We also addressed some accessibility bugs and the following two issues:
The client now validates the PC name in the Add/Edit PC UI to make sure the name
doesn't contain illegal characters.
Addressed an issue where the UI would stop resolving a workspace name during
subscription.
In this release, we fixed issues that caused crashes and interfered with the "Display
Zoom View" setting. We also tweaked the "Use Full Display" setting to only appear on
applicable iPads and adjusted the available resolutions for iPhones and iPads.
In this release, we addressed some bugs affecting users running iOS 14 and iPadOS 14.
In this release, we addressed some compatibility issues with iOS and iPadOS 14. In
addition, we made the following fixes and feature updates:
Addressed crashes on iOS and iPadOS 14 that happened when entering input on
keyboard.
Added the Cmd+S and Cmd+N shortcuts to access the "Add Workspace" and
"Add PC" processes, respectively.
Added the Cmd+F shortcut to invoke Search UI in the Connection Center.
Added the "Expand All" and "Collapse All" commands to the Workspaces tab.
Resolved a bug that caused a 0xD06 protocol error to happen while running
Outlook as a RemoteApp.
The on-screen keyboard will now disappear when you scroll through search results
in the Connection Center.
Updated the animation used when hovering over workspace icons with a mouse or
trackpad pointer on iPadOS 14.
We put together some bug fixes and small feature updates for this release. Here's what's
new:
Addressed an issue where the client would report a 0x5000007 error message
when trying to connect to an RD Gateway server.
User account passwords updated in the credential UI are now saved after
successfully signing in.
Addressed an issue where range and multi-select with the mouse or trackpad
(Shift+click and Ctrl+click) didn't work consistently.
Addressed a bug where apps displayed in the in-session switcher UI were out of
sync with the remote session.
Made some cosmetic changes to the layout of Connection Center workspace
headers.
Improved visibility of the on-screen keyboard buttons for dark backdrops.
Fixed a localization bug in the disconnect dialog.
We put together some bug fixes and feature updates for this release. Here's what's new:
The input mode (Mouse Pointer or Touch mode) is now global across all active PC
and RemoteApp connections.
Fixed an issue that prevented microphone redirection from working consistently.
Fixed a bug that caused audio output to play from the iPhone earpiece instead of
the internal speaker.
The client now supports automatically switching audio output between the iPhone
or iPad internal speakers, bluetooth speakers, and AirPods.
Audio now continues to play in the background when switching away from the
client or locking the device.
The input mode automatically switches to Touch mode when using a SwiftPoint
mouse on iPhones or iPads (not running iPadOS, version 13.4 or later).
Addressed graphics output issues that occurred when the server was configured to
use AVC444 full screen mode.
Fixed some VoiceOver bugs.
Panning around a zoomed in session works when using an external mouse or
trackpad now works differently. To pan in a zoomed-in session with an external
mouse or trackpad, select the pan knob, then drag your mouse cursor away while
still holding the mouse button. To pan around in Touch mode, press on the pan
knob, then move your finger. The session will stick to your finger and follow it
around. In Mouse Pointer mode, push the virtual mouse cursor against the sides of
the screen.
Fixed a crash that occurred for some users when subscribing to an Azure Virtual
Desktop feed using non-brokered authentication.
Fixed the layout of workspace icons on the iPhone X, iPhone XS, and iPhone 11
Pro.
If you're using iPadOS 13.4 or later, can now control the remote session with a
mouse or trackpad.
The client now supports the following Apple Magic Mouse 2 and Apple Magic
Trackpad 2 gestures: left-click, left-drag, right-click, right-drag, horizontal and
vertical scrolling, and local zooming.
For external mice, the client now supports left-click, left-drag, right-click, right-
drag, middle-click, and vertical scrolling.
The client now supports keyboard shortcuts that use Ctrl, Alt, or Shift keys with the
mouse or trackpad, including multi-select and range-select.
The client now supports the "Tap-to-Click" feature for the trackpad.
We updated the Mouse Pointer mode's right-click gesture to press-and-hold (not
press-and-hold-and-release). On the iPhone client we added taptic feedback when
we detect the right-click gesture.
Added an option to disable NLA enforcement under iOS Settings > RD Client.
Mapped Control+Shift+Escape to Ctrl+Shift+Esc, where Escape is generated using
a remapped key on iPadOS or Command+.
Mapped Command+F to Ctrl+F.
Fixed an issue where the SwiftPoint middle mouse button didn't work in iPadOS
version 13.3.1 or earlier and iOS.
Fixed some bugs that prevented the client from recognizing the "rdp:" URI.
Addressed an issue where the in-session Immersive Switcher UI showed outdated
app entries if a disconnect was server-initiated.
The client now supports the Azure Resource Manager-integrated version of Azure
Virtual Desktop.
In this update we added the ability to sort the PC list view (available on iPhone) by name
or time last connected.
We put together some bug fixes and feature updates for this release. Here's what's new:
Launched RDP files are now automatically imported (look for the toggle in General
settings).
You can now launch iCloud-based RDP files that haven't been downloaded in the
Files app yet.
The remote session can now extend underneath the Home indicator on iPhones
(look for the toggle in Display settings).
Added support for typing composite characters with multiple keystrokes, such as é.
Added support for the iPad on-screen floating keyboard.
Added support for adjusting properties of redirected cameras from a remote
session.
Fixed a bug in the gesture recognizer that caused the client to become
unresponsive when connected to a remote session.
You can now enter App Switching mode with a single swipe up (except when
you're in Touch mode with the session extended into the Home indicator area).
The Home indicator will now automatically hide when connected to a remote
session, and will reappear when you tap the screen.
Added a keyboard shortcut to get to app settings in the Connection Center
(Command + ,).
Added a keyboard shortcut to refresh all workspaces in the Connection Center
(Command + R).
Hooked up the system keyboard shortcut for Escape when connected to a remote
session (Command + .).
Fixed scenarios where the Windows on-screen keyboard in the remote session was
too small.
Implemented auto-keyboard focus throughout the Connection Center to make
data entry more seamless.
Pressing Enter at a credential prompt now results in the prompt being dismissed
and the current flow resuming.
Fixed a scenario where the client would crash when pressing Shift + Option + Left,
Up, or Down arrow key.
Fixed a crash that occurred when removing a SwiftPoint device.
Fixed other crashes reported to us by users since the last release.
Support for launching connections from RDP files and RDP URIs.
Workspace headers are now collapsible.
Zooming and panning at the same time is now supported in Mouse Pointer mode.
A press-and-hold gesture in Mouse Pointer mode will now trigger a right-click in
the remote session.
Removed force-touch gesture for right-click in Mouse Pointer mode.
The in-session switcher screen now supports disconnecting, even if no apps are
connected.
Light dismiss is now supported in the in-session switcher screen.
PCs and apps are no longer automatically reordered in the in-session switcher
screen.
Enlarged the hit test area for the PC thumbnail view ellipses menu.
The Input Devices settings page now contains a link to supported devices.
Fixed a bug that caused the Bluetooth permissions UI to repeatedly appear at
launch for some users.
Fixed other crashes reported to us by users since the last release.
Feedback
Was this page helpful? Yes No
Get started with the macOS client
Article • 08/09/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use the Remote Desktop client for Mac to work with Windows apps, resources,
and desktops from your Mac computer. Use the following information to get started -
and check out the FAQ if you have questions.
Tip
7 Note
Curious about the new releases for the macOS client? Check out What's new
for Remote Desktop on Mac?
The Mac client runs on computers running macOS 10.10 and newer.
The information in this article applies primarily to the full version of the Mac
client - the version available in the Mac AppStore. Test-drive new features by
downloading our preview app here: beta client release notes .
1. Download the Microsoft Remote Desktop client from the Mac App Store .
2. Set up your PC to accept remote connections. (If you skip this step, you can't
connect to your PC.)
3. Add a Remote Desktop connection or a remote resource. You use a connection to
connect directly to a Windows PC and a remote resource to use a RemoteApp
program, session-based desktop, or a virtual desktop published on-premises using
RemoteApp and Desktop Connections. This feature is typically available in
corporate environments.
What about the Mac beta client?
We're testing new features on our preview channel on AppCenter. Want to check it out?
Go to Microsoft Remote Desktop for Mac and select Download. You don't need to
create an account or sign into AppCenter to download the beta client. The beta client
shouldn't be used in production.
If you already have the client, you can check for updates to ensure you have the latest
version. In the beta client, select Microsoft Remote Desktop Beta at the top, and then
select Check for updates.
) Important
The Remote Desktop app is changing to Windows App. To ensure you can validate
the upcoming Windows App update before it's released into the store, the
Windows App preview is now available in the Remote Desktop Beta channels where
you can test the experience of updating from Remote Desktop to Windows App. To
learn more about Windows App, see Get started with Windows App to connect to
devices and apps.
Add a workspace
Subscribe to the feed your admin gave you to get the list of managed resources
available to you on your macOS device.
To subscribe to a feed:
1. Select Add feed on the main page to connect to the service and retrieve your
resources.
2. In the Feed URL field, enter the URL for the feed you want to add. This URL can be
either a URL or an email address.
If you use a URL, use the one your admin gave you.
If you use an email address, enter your email address. Entering your email
address tells the client to search for a URL associated with your email address
if your admin configured the server that way.
3. Select Subscribe.
4. Sign in with your user account when prompted.
After you've signed in, you should see a list of available resources.
Once you've subscribed to a feed, the feed's content will update automatically regularly.
Resources may be added, changed, or removed based on changes made by your
administrator.
The URL displays the link to the RD Web Access server that gives you access to
RemoteApp and Desktop Connections.
The configured RemoteApp and Desktop Connections are listed.
1. In the Connection Center select +, and then select Add Remote Resources.
2. Enter information for the remote resource:
Feed URL - The URL of the RD Web Access server. You can also enter your
corporate email account in this field – this tells the client to search for the RD
Web Access Server associated with your email address.
User name - The user name to use for the RD Web Access server you are
connecting to.
Password - The password to use for the RD Web Access server you are
connecting to.
3. Select Save.
Server name – The name of the computer you want to use as a gateway. This
can be a Windows computer name, an Internet domain name, or an IP
address. You can also add port information to the server name (for example:
RDGateway:443 or 10.0.0.1:443).
User name - The user name and password to be used for the Remote
Desktop gateway you are connecting to. You can also select Use connection
credentials to use the same user name and password as those used for the
remote desktop connection.
User Name - The name of the user to save for use with a remote connection.
You can enter the user name in any of the following formats: user_name,
domain\user_name, or [email protected].
Password - The password for the user you specified. Every user account that
you want to save to use for remote connections needs to have a password
associated with it.
Friendly Name - If you are using the same user account with different
passwords, set a friendly name to distinguish those user accounts.
4. Select Save, then select Settings.
7 Note
In order to use this feature, the administrator needs to set the appropriate settings
on the server.
The Command key on the Mac keyboard equals the Windows key.
To perform actions that use the Command button on the Mac, you will need to use
the control button in Windows (for example Copy = Ctrl+C).
The function keys can be activated in the session by pressing additionally the FN
key (for example, FN+F1).
The Alt key to the right of the space bar on the Mac keyboard equals the Alt
Gr/right Alt key in Windows.
By default, the remote session will use the same keyboard locale as the OS you're
running the client on. (If your Mac is running an en-us OS, it will be used for the remote
sessions as well.) If the OS keyboard locale is not used, check the keyboard setting on
the remote PC and change it manually. See the Remote Desktop Client FAQ for more
information about keyboards and locales.
) Important
To learn more about this feature, check out Remote Desktop Gateway Pluggable
Authentication and Authorization Sample .
Feedback
Was this page helpful? Yes No
What's new in the Remote Desktop
client for macOS
Article • 07/03/2024
In this article you'll learn about the latest updates for the Remote Desktop client for
macOS. To learn more about using the Remote Desktop client for macOS with Remote
Desktop Services, see Get started with the macOS client.
ノ Expand table
Updated the client connection path to fall back to TLS when NTLM isn't available in
the context of Network Level Authentication (NLA).
Applied a workaround to address a black screen when screen sharing via Microsoft
Teams redirection.
Resolved issues with connections that were routed via a Remote Desktop Services
gateway behind an F5 web app filter.
Fixed bugs in the single sign-on protocol connection sequence that were breaking
connectivity.
Improved diagnostics sent during connections to Azure Virtual Desktop.
) Important
Starting with version 10.9.6, the macOS client only supports macOS 12 and later.
Resolved some of the top crashes reported by customers from our telemetry.
Fixed microphone redirection on macOS 14.
Sorted out daylight savings time issues for time zone redirection scenarios.
Added watermarking support for Azure Virtual Desktop scenarios.
Resolved an issue that caused workspace resource icons to be partially obscured
by a white or black rectangle. If you encounter this issue, you can force a
workspace refresh by selecting Help > Troubleshooting > Force Refresh All
Workspaces.
Fixed an issue that caused printer redirection to not work for connections between
macOS Sonoma and Windows 10 or later.
Updates for version 10.9.3
Published: October 2, 2023
Addressed Proof Key for Code Exchange is required message users receive when
refreshing Azure Virtual Desktop workspaces after upgrading from versions 10.9.0
and 10.9.1.
In this release, we added two new features for Azure Virtual Desktop and addressed a
number of reported bugs and incidents.
Added support for RDP Shortpath for public networks for Azure Virtual Desktop
connections.
Integrated an Azure Virtual Desktop account profile switcher into the Connection
Center.
Improved diagnostics sent during Azure Virtual Desktop connections.
Added support for video mirroring in Teams redirection.
7 Note
This release isn't compatible with macOS 10.14 and macOS 10.15.
Fixed connectivity issue that affected connections with Windows XP and Windows
Vista.
Addressed an issue that caused diagnostics reporting for Azure Virtual Desktop
connections to be inaccurate.
Integrated support for the new Remote Desktop Services (RDS) Azure Active
Directory (Azure AD) Auth Protocol for authentication and session security.
Added deterministic progress UI for Azure Virtual Desktop workspace refresh.
Resolved some of the most common crashes reported by debug telemetry.
Fixed a bug that caused vertical lines to appear in the remote session rendering.
Addressed a scenario where the app would stop responding when running Slack.
Addressed issue with full-screen scenarios that happened when users disabled the
Displays have separate Spaces setting.
Fixed an issue that resulted in the caps lock state syncing incorrectly between
client and server.
Performance and reliability updates to Teams redirection
Updates to improve Azure Virtual Desktop connectivity and diagnostics.
Fixed a few bugs, cleaned up some underlying code, and made changes to prepare
for future updates.
Added a button to the General Preferences dialog that allows you to clear stored
PC thumbnails.
We've also made some additional fixes and performance improvements, including the
following:
In this release, we fixed some customer-reported bugs and issues reported by telemetry.
Two of the impacted feature areas include Teams redirection and multi-monitor support.
A custom app switcher which spans multiple sessions for RemoteApp scenarios
(triggered by the Option+Tab keyboard combination).
Support for the in-session redirection of PIV smart cards (such as Yubikey).
We've also:
Added support for audio and video stream optimizations when connecting to
Azure Virtual Desktop session hosts that support Teams redirection. Learn more at
Use Microsoft Teams on Azure Virtual Desktop.
Made updates to improve connectivity, performance and diagnostic metrics when
connecting to Azure Virtual Desktop deployments.
With respect to bugs and smaller features, the following list summarizes some
highlights:
Added support for eTags in Azure Virtual Desktop workspace refresh scenarios to
improve sync times.
The read-only column in the folder redirection selection UI has been resized to
show the full column header.
Fixed an issue that resulted in the Outlook client showing the incorrect time or
time zone for certain calendar entries.
Resolved discrepancies with the reporting of device physical width and height
across Retina and non-Retina scenarios.
Updated the client to trigger an auto-reconnect in Azure Virtual Desktop scenarios
when a 0x3 error is generated by the Gateway.
Resolved an issue where the mouse cursor on a high DPI monitor is larger than a
regular monitor.
Updated the client to terminate auto-reconnect if the session window is closed
after waking from sleep.
Addressed an issue where the mapped hotkeys CMD+C , CMD+V , and CMD+F didn't
work in nested sessions.
Hid the Import from Remote Desktop 8 option if there is no data to import.
In this release, we made some changes to improve connection reliability for Azure
Virtual Desktop scenarios.
Updates for version 10.7.5
Published: January 25, 2022
Fixed an issue that caused display configuration to not work properly when using
the client on 2021 MacBook Pro 14" and 16" devices with multiple monitors. This
issue mainly affected devices with external monitors positioned above the
MacBook display.
Fixed an issue that caused the client to crash when used on earlier versions of
macOS 12
Fixed customer-reported smart card and folder redirection issues.
Addressed full screen display issues with 2021 MacBook Pro 14" and 16" models.
Better handle load-balanced Remote Desktop Gateway configurations.
Unfortunately, the 10.7.2 update disabled smart card redirection for some users when
they'd try to reconnect to their sessions. As a result, we've released this update to
address the issue.
Worked around a 0x907 (mismatched certificate) error code that was caused by
third-party infrastructure returning an incorrect certificate in redirection
scenarios.
Fixed the root cause of a 0x207 (handshake failure) error code that appeared
when users accidentally tried to connect with an incorrect password to a pre-
Windows 8 server with Network Level Authentication (NLA) enabled.
Resolved a 0x1107 (invalid workstation) error code that appeared when Active
Directory workstation logon restrictions were set.
Updated the default icon for published desktops and worked around an issue that
caused smart card redirection to stop working with recently patched versions of
Windows.
Enabled connections to Windows Server 2003 servers that have Transport Layer
Security (TLS) enabled for Remote Desktop connections.
Addressed a 0x3000066 error message that appeared in Remote Desktop Gateway
scenarios, and aligned TLS version usage with the Windows Remote Desktop client.
Fixed an issue that caused the client to return a 0x907 error code when processing
a server authentication certificate with a validity lifetime of over 825 days.
Fixed an issue that caused the client to return a 0x507 error code.
Enabled support for the AVC420 codec on Apple Silicon.
Enabled Smart card redirection (requires macOS 11.2 or later) on Apple Silicon.
Removed a double prompt for credentials that occurred in some scenarios when
users tried to connect with a Remote Desktop Gateway.
In this update, we fixed an issue that caused the client to stop responding when
connecting to a Remote Desktop Gateway.
Updates for version 10.6.0
Published: April 19, 2021
In this release we made some significant updates to the shared underlying code that
powers the Remote Desktop experience across all our clients. We've also added some
new features and addressed bugs and crashes that were showing up in error reports.
) Important
As of this update, the macOS client requires macOS version 10.14 or later to run.
7 Note
This release is the last release that will be compatible with macOS version 10.13.
Updates for version 10.5.1
Published: January 29, 2021
Addressed an issue where the UI would stop resolving a workspace name during
subscription.
Fixed an in-session bug where graphics updates would stall while the client
continued to send input.
Resolved reliability issues identified through crash reporting.
You can now edit the display, device, and folder redirection settings of published
PC connections.
RemoteApp windows now shrink to the dock when minimized.
Added a Connection Information dialog that displays the current bandwidth and
round-trip time.
Added support for Remote Desktop Gateway consent and admin messages.
Fixed an issue where an RDP file specifying a gatewayusagemethod value of 0 or 4
was incorrectly imported.
The Edit Workspace sheet now shows the exact time at which the workspace was
last updated.
Removed trace spew that was output when using the --script parameter.
Addressed an issue where the client would return a 0x30000066 error when
connecting using a Remote Desktop Gateway server.
Fixed an issue that caused the client to repeatedly prompt users for credentials if
Extended Protection for Authentication was set on the server.
Addressed reliability issues that users identified through crash reporting.
Addressed keyboard and VoiceOver-related accessibility bugs.
In this release, we made substantial updates to the underlying code for the Remote
Desktop experience across all our clients. We've also added some new features and
addressed bugs and crashes that were showing up in error reporting. Here are some
changes you may notice:
In this release, we made some changes to improve interoperability with the Azure Virtual
Desktop service . In addition, we've included the following updates:
7 Note
This is the last release that will be compatible with macOS 10.12.
With this update, you can switch between Scancode (Ctrl+Command+K) and Unicode
(Ctrl+Command+U) modes when entering keyboard input. Unicode mode allows
extended characters to be typed using the Option key on a Mac keyboard. For example,
on a US Mac keyboard, Option+2 will enter the trademark (™) symbol. You can also
enter accented characters in Unicode mode. For example, on a US Mac keyboard,
entering Option+E and the A key at the same time will enter the character á on your
remote session.
Copying things from the remote session to a network share or USB drive no longer
creates empty files.
Specifying an empty password in a user account no longer causes a double
certificate prompt.
Addressed an issue that created zero-length files whenever you copied a folder
from the remote session to the local machine using file copy and paste.
Redirected folders can now be marked as read-only to prevent their contents from
being changed in the remote session.
We addressed a 0x607 error that appeared when connecting using RPC over
HTTPS Remote Desktop Gateway scenarios.
Fixed cases where users were double-prompted for credentials.
Fixed cases where users received the certificate warning prompt twice.
Added heuristics to improve trackpad-based scrolling.
The client no longer shows the Saved Desktops group if there are no user-created
groups.
Updated UI for the tiles in PC view.
Fixes to address crashes sent to us via application telemetry.
Added user defaults to disable smart card, clipboard, microphone, camera, and
folder redirection:
ClientSettings.DisableSmartcardRedirection
ClientSettings.DisableClipboardRedirection
ClientSettings.DisableMicrophoneRedirection
ClientSettings.DisableCameraRedirection
ClientSettings.DisableFolderRedirection
Resolved an issue that was causing programmatic session window resizes to not be
detected.
Fixed an issue where the session window contents appeared small when
connecting in windowed mode (with dynamic display enabled).
Fixed a bug that caused an incorrect device name to be sent to the remote session
(breaking licensing in some third-party apps).
Cleaned up some shutdown code to ensure the client closes more reliably.
In this release, we fixed a bug that made the display low resolution while connecting to
a session
Addressed connectivity issues with Remote Desktop Gateway servers that were
using 4096-bit asymmetric keys.
Fixed a bug that caused the client to randomly stop responding when
downloading feed resources.
Fixed a bug that caused the client to crash while opening.
Fixed a bug that caused the client to crash while importing connections from
Remote Desktop, version 8.
Updates for version 10.3.0
Published: August 27, 2019
Fixed a hang that occurred when connecting via a Remote Desktop Gateway.
Added a privacy notice to the Add Feed dialog.
Resolved random disconnects (with error code 0x904) that took place when
connecting via a Remote Desktop Gateway.
Fixed a bug that caused the resolutions list in application preferences to be empty
after installation.
Fixed a bug that caused the client to crash if certain resolutions were added to the
resolutions list.
Addressed an ADAL authentication prompt loop when connecting to Azure Virtual
Desktop deployments.
Fixed a Remote Desktop Gateway connectivity issue that can occur when server
redirection takes place.
We also addressed a Remote Desktop Gateway regression caused by the 10.2.8
update.
Resolved connectivity issues that surfaced when using a Remote Desktop Gateway.
Fixed incorrect certificate warnings that were displayed when connecting.
Addressed some cases where the menu bar and dock would needlessly hide when
launching a RemoteApp.
Reworked the clipboard redirection code to address crashes and hangs that have
been plaguing some users.
Fixed a bug that caused the Connection Center to needlessly scroll when launching
a connection.
Updates for version 10.2.7
Published: February 6, 2019
In this release, we addressed graphics mis-paints (caused by a server encoding bug) that
appeared when using AVC444 mode.
Added support for the AVC (420 and 444) codec, available when connecting to
current versions of Windows 10.
In Fit to Window mode, a window refresh now occurs immediately after a resize to
ensure that content is rendered at the correct interpolation level.
Fixed a layout bug that caused feed headers to overlap for some users.
Cleaned up the Application Preferences UI.
Polished the Add/Edit Desktop UI.
Made lots of fit and finish adjustments to the Connection Center tile and list views
for desktops and feeds.
7 Note
There is a bug in macOS 10.14.0 and 10.14.1 that can cause the
.com.microsoft.rdc.application-data_SUPPORT/_EXTERNAL_DATA folder (nested deep
inside the ~/Library folder) to consume a large amount of disk space. To resolve
this issue, delete the folder content and upgrade to macOS 10.14.2. Note that a
side-effect of deleting the folder contents is that snapshot images assigned to
bookmarks will be deleted. These images will be regenerated when reconnecting to
the remote PC.
Added support for the remoteapplicationcmdline RDP file setting for RemoteApp
scenarios.
The title of the session window now includes the name of the RDP file (and server
name) when launched from an RDP file.
Fixed reported Remote Desktop Gateway performance issues.
Fixed reported Remote Desktop Gateway crashes.
Fixed issues where the connection would hang when connecting through a Remote
Desktop Gateway.
Better handling of a RemoteApp in full-screen by intelligently hiding the menu bar
and dock.
Fixed scenarios where a RemoteApp remained hidden after being launched.
Addressed slow rendering updates when using Fit to Window with hardware
acceleration disabled.
Handled database creation errors caused by incorrect permissions when the client
starts up.
Fixed an issue where the client was consistently crashing at launch and not starting
for some users.
Fixed a scenario where connections were incorrectly imported as full-screen from
Remote Desktop 8.
A brand new Connection Center that supports drag and drop, manual arrangement
of desktops, resizable columns in list view mode, column-based sorting, and
simpler group management.
The Connection Center now remembers the last active pivot (Desktops or Feeds)
when closing the app.
The credential prompting UI and flows have been overhauled.
Remote Desktop Gateway feedback is now part of the connecting status UI.
Settings import from the version 8 client has been improved.
RDP files pointing to RemoteApp endpoints can now be imported into the
Connection Center.
Retina display optimizations for single monitor Remote Desktop scenarios.
Support for specifying the graphics interpolation level (which affects blurriness)
when not using Retina optimizations.
256-color support to enable connectivity to Windows 2000.
Fixed clipping of the right and bottom edges of the screen when connecting to
Windows 7, Windows Server 2008 R2 and earlier.
Copying a local file into Outlook (running in a remote session) now adds the file as
an attachment.
Fixed an issue that was slowing down pasteboard-based file transfers if the files
originated from a network share.
Addressed a bug that was causing to Excel (running in a remote session) to hang
when saving to a file on a redirected folder.
Fixed an issue that was causing no free space to be reported for redirected folders.
Fixed a bug that caused thumbnails to consume too much disk storage on macOS
10.14.
Added support for enforcing Remote Desktop Gateway device redirection policies.
Fixed an issue that prevented session windows from closing when disconnecting
from a connection using Remote Desktop Gateway.
If Network Level Authentication (NLA) is not enforced by the server, you will now
be routed to the sign-in screen if your password has expired.
Fixed performance issues that surfaced when lots of data was being transferred
over the network.
Smart card redirection fixes.
Support for all possible values of the EnableCredSspSupport and Authentication
Level RDP file settings if the ClientSettings.EnforceCredSSPSupport user default
key (in the com.microsoft.rdc.macos domain) is set to 0.
Support for the Prompt for Credentials on Client RDP file setting when NLA is not
negotiated.
Support for smart card-based sign-in using smart card redirection at the Winlogon
prompt when NLA is not negotiated.
Fixed an issue that prevented downloading feed resources that have spaces in the
URL.
Enabled connectivity to Azure Active Directory (Azure AD) joined PCs. To connect
to an Azure AD joined PC, your username must be in one of the following formats:
AzureAD\user or AzureAD\user@domain .
Addressed some bugs affecting the usage of smart cards in a remote session.
Added support for changing the remote resolution by resizing the session window!
Fixed scenarios where remote resource feed download would take an excessively
long time.
Resolved the 0x207 error that could occur when connecting to servers not patched
with the CredSSP encryption oracle remediation update (CVE-2018-0886).
Feedback
Was this page helpful? Yes No
Get started with the web client
Article • 07/03/2024
The Remote Desktop web client lets you use a compatible web browser to access your
organization's remote resources (apps and desktops) published to you by your admin.
You'll be able to interact with the remote apps and desktops like you would with a local
PC no matter where you are, without having to switch to a different desktop PC. Once
your admin sets up your remote resources, all you need are your domain, user name,
password, the URL your admin sent you, and a supported web browser, and you're good
to go.
Tip
7 Note
By signing in to the web client, you agree that your PC complies with your
organization's security policy.
After you sign in, the client will take you to the All Resources tab, which contains all
items published to you under one or more collapsible groups, such as the "Work
Resources" group. You'll see several icons representing the apps, desktops, or folders
containing more apps or desktops that the admin has made available to the work
group. You can come back to this tab at any time to launch additional resources.
To start using an app or desktop, select the item you want to use, enter the same user
name and password you used to sign in to the web client if prompted, and then select
Submit. You might also be shown a consent dialog to access local resources, like
clipboard and printer. You can choose to not redirect either of these, or select Allow to
use the default settings. Wait for the web client to establish the connection, and then
start using the resource as you would normally.
When you're finished, you can end your session by either selecting the Sign Out button
in the toolbar at the top of your screen or closing the browser window.
ノ Expand table
Alt+Page down Switches between programs from right to left in the remote
session. (Windows shortcut is Alt+Shift+Tab.)
1. Start the printing process as you would normally for the app you want to print
from.
2. When prompted to choose a printer, select Remote Desktop Virtual Printer.
3. After choosing your preferences, select Print.
4. Your browser will generate a PDF file of your print job.
5. You can choose to either open the PDF and print its contents to your local printer
or save it to your PC for later use.
Follow these steps to transfer files from your local computer to the remote session:
1. Before you connect to the remote session, go to the web client Settings panel.
2. In Select Remote Keyboard Layout section, expand the drop-down menu and
select the keyboard you want to use in the remote session. Azure Virtual Desktop
web client settings options:
Auto: This configuration will send KeyCodes on key press, which means the
local key is directly sent to the remote machine. For this option, the local
machine keyboard layout is important and should match the layout on all the
hops taken to the remote machine.
Remote: This configuration will send Scan Codes to the remote machine. For
this option, the local machine keyboard layout is not as important, but the
keyboard layout on all other hops taken to the remote machine should match
the selected layout.
Language specific: If you select a specific language and the language pack is
installed on the remote machine, that language will automatically be selected
on new Windows sessions only. For example, if you use English UK, you can
select it from the drop down. Make sure to sign out of ALL the Windows user
sessions you're trying to connect to. When opening a new session, all the
hops should automatically default to using the English UK layout.
3. If you are using either an IME-based keyboard or a keyboard with alternate layout,
select either Remote OR pick any of the languages from the list.
4. Connect to the remote session.
The web client will suppress the local IME window when you're focused on the remote
session. If you change the IME settings after you've already connected to the remote
session, the setting changes won't have any effect. The web client doesn't support IME
input while using a private browsing window. Additionally, IMEs do not work with the
Auto setting.
7 Note
If the language pack isn't installed on the host virtual machine, the remote session
will default to the English (United States) keyboard.
7 Note
Enabling native display resolution with a high-DPI display may cause increased CPU
or network usage.
1. In your session, go to the upper-right corner of the taskbar and select Settings.
2. Set Enable native display resolution to On.
7 Note
RDP files have a limited lifespan. We recommend you download the RDP file every
time you need to use a resource
1. In the web client, go to the upper-right corner of the taskbar and select the
settings (gear) icon.
2. Under Resource Launch method, select Download the RDP file.
3. Select the resource you want to open (for example, Excel) to download the RDP
file.
4. Once the download is finished, select the downloaded RDP file to open the
resource.
Feedback
Was this page helpful? Yes No
What's new in the web client
Article • 07/03/2024
We regularly update the Remote Desktop web client, adding new features and fixing
issues. Here's where you can find the latest updates.
7 Note
We've changed the versioning system for the web client. Starting with version
1.0.18.0, all web client release versions will contain numbers (in the format of
"W.X.Y.Z"). Release numbers for the Remote Desktop web client will always end
with a 0 (for example, W.X.Y.0). Each Azure Virtual Desktop web client release will
change the last digit until the next Remote Desktop web client release (for example,
1.0.18.1).
Added Web client keyboard shortcuts for switching between programs. For more
information, see Keyboard shortcuts.
The client now supports native resolution on high-DPI devices. For more
information, see Enable native display resolution in remote sessions.
Updated full screen mode icon behavior to disable the icon when you press the
F11 key to enter full screen mode.
Removed support for Internet Explorer and other deprecated browsers.
Fixed an issue where some keys weren’t working correctly on the Japanese
keyboard layout.
Bug fixes and security improvements for file transfer.
Bug fixes.
Version 1.0.26.0 is the final version of the client that supports Internet Explorer 11
and WinXP.
) Important
Added support for redirecting local microphone input to the remote session.
Fixed issues with AltGr and several other keyboard bugs.
Accessibility improvements.
) Important
Added support for using an Input Method Editor (IME) in the remote session to
input complex characters.
Fixed a regression where users couldn't copy and paste into the remote session on
macOS devices.
Fixed a regression where local Windows Key was sent to the remote session on
Firefox.
Added link to RDWeb password change when enabled by your administrator.
Added support for connections to Windows 7 and Windows Server 2008 R2 hosts.
Fixed an issue where certain app icons were shown as transparent tiles.
Fixed connection issues for Internet Explorer browser on Windows 7.
Fixed unexpected disconnects that happened when the browser was resized.
Accessibility improvements.
Updated third-party libraries.
Added Resource Launch Method configuration in the Settings tab, enabling users
to either open resources in the browser or download an .rdp file to handle with
another client. This setting may be configured by your admin. Details regarding
admin configurations for this feature can be found in the web client setup
documentation.
Fixed color rendering issues, enabling more vivid colors in your remote session.
Revised error messages related to remote resource feed errors.
Added support for more office shortcuts, such as paste special (Ctrl+Alt+V).
Added keyboard shortcut for users to invoke the Windows Key in the remote
session (Alt+F3)
Updated error message for users attempting to authenticate using an expired
password.
Refreshed feed UI on the All Resources page.
Resolved overlapping dialogues that occurred during session reconnect.
Fixed remote resource icon sizing in the resource taskbar.
Feedback
Was this page helpful? Yes No
Use the Remote Desktop Connection
app to connect to a remote PC using
single sign-on with Microsoft Entra
authentication
Article • 07/03/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016
You can use the Remote Desktop Connection app (MSTSC) in Windows to connect to a
remote PC using single sign-on with Microsoft Entra authentication. When you're
signed-in to your local device with your Microsoft Entra account and you connect to a
remote PC, your credentials pass through and automatically sign you in.
Prerequisites
To connect to a remote PC using single sign-on with Microsoft Entra authentication, you
need:
The remote PC and your local device must be running one of the following
operating systems:
Windows 11 with 2022-10 Cumulative Updates for Windows 11 (KB5018418)
or later installed.
Windows 10, version 20H2 or later with 2022-10 Cumulative Updates for
Windows 10 (KB5018410) or later installed.
Windows Server 2022 with 2022-10 Cumulative Update for Microsoft server
operating system (KB5018421) or later installed.
Remote Desktop needs to be enabled in your remote PC. You can follow the steps
in Enable Remote Desktop on your PC to enable Remote Desktop.
The remote PC must be Microsoft Entra joined or Microsoft Entra hybrid joined.
There's no requirement for the local device to be joined to a domain or Microsoft
Entra. As a result, this method allows you to connect to the remote PC from:
Microsoft Entra joined or Microsoft Entra hybrid joined devices.
Active Directory domain joined devices.
Workgroup devices.
If you're accessing an Azure VM, ensure the Microsoft Entra account has been
assigned the Virtual Machine Administrator Login or Virtual Machine User Login
role. For more information, see Steps to assign an Azure role.
7 Note
1. Launch the Remote Desktop Connection app on your local device from Windows
Search , or by running mstsc.exe from a command prompt.
2. Select Show Options to expand the Remote Desktop Connection client, then select
the Advanced tab.
3. Check the box Use a web account to sign in to the remote computer. This option
is equivalent to the enablerdsaadauth RDP property. For more information, see
Supported RDP properties with Remote Desktop Services.
4. Select the General tab and enter the NetBIOS domain name or fully qualified
domain name (FQDN) of the remote PC in the Computer field. The name must
match the hostname of the remote PC in Microsoft Entra ID and be network
addressable, resolving to the IP address of the remote PC. You can't use an IP
address.
5. Select Connect.
Disconnecting the session also ensures that when the connection is relaunched after a
period of inactivity, Microsoft Entra ID reevaluates the applicable conditional access
policies.
Next steps
Learn about how client features compare to each other when connecting to
remote PCs.
Feedback
Was this page helpful? Yes No
Uninstall and reinstall Remote Desktop
Connection
Article • 07/03/2024
You can now uninstall the built-in Remote Desktop Connection app from the Windows
operating system. This article shows not only how to uninstall the app, but also how to
reinstall it should you change your mind about removing it later.
) Important
When you uninstall Remote Desktop Connection, you also become unable to use
the RemoteApp and Desktop Connections control panel.
Prerequisites
In order to uninstall and reinstall Remote Desktop Connection, you must use Windows
11 23H2 or later.
GUI
1. From the Start menu, search for the Settings app and open it.
3. Find or search for Remote Desktop Connection, select the three dots to the
right-hand side, then select Uninstall.
5. Restart your machine if the app prompts you in order to complete the
installation.
2. Open the file to run the installer, then follow all instructions in the workflow until
setup is complete.
Feedback
Was this page helpful? Yes No
Remote Desktop client - supported
configuration
Article • 07/03/2024
Learn which PCs you can access by using supported configurations for Remote Desktop
clients.
Windows 11 Pro
Windows 11 Enterprise
Windows 10 Pro
Windows 10 Enterprise
Windows Server 2022
Windows Server 2019
Windows Server 2016
7 Note
Windows SKUs that aren't listed in this section, such as Windows 10 Home, aren't
compatible with connecting remotely.
Feedback
Was this page helpful? Yes No
Enable Remote Desktop on your PC
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
You can use Remote Desktop to connect to and control your PC from a remote device
by using a Microsoft Remote Desktop client (available for Windows, iOS, macOS, and
Android). When you allow remote connections to your PC, you can use another device
to connect to your PC and have access to all of your apps, files, and network resources
as if you were sitting at your desk.
7 Note
You can use Remote Desktop to connect to Professional and Enterprise SKUs of
Windows. You can't connect to computers running a Home edition, such as
Windows 10 Home.
To connect to a remote PC, that computer must be turned on, it must have a network
connection, Remote Desktop must be enabled, you must have network access to the
remote computer (this could be through the Internet), and you must have permission to
connect. For permission to connect, you must be on the list of users. Before you start a
connection, it's a good idea to look up the name of the computer you're connecting to
and to make sure Remote Desktop connections are allowed through its firewall.
If you need to connect to your PC from outside of the network your PC is running on,
you can use port forwarding or set up a VPN. For more information, see Allow access to
your PC from outside your PC's network.
On your Mac, iOS, or Android device, open the Remote Desktop app (available for free
from the app stores). Add the name of the remote PC, and then wait for the connection
to complete.
Be aware that when you enable access to Remote Desktop, you're granting anyone in
the Administrators group, as well as any additional users you select, the ability to
remotely access their accounts on the computer.
You should ensure that every account that has access to your PC is configured with a
strong password.
Feedback
Was this page helpful? Yes No
Remote Desktop - Allow access to your
PC from outside your PC's network
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
When you connect to your PC by using a Remote Desktop client, you're creating a peer-
to-peer connection. This means you need direct access to the PC (sometimes called "the
host"). If you need to connect to your PC from outside of the network your PC is running
on, you need to enable that access. You have a couple of options: use port forwarding or
set up a VPN.
Specific steps for enabling port forwarding depend on the router you're using, so you'll
need to search online for your router's instructions. For a general discussion of the
steps, check out wikiHow to Set Up Port Forwarding on a Router .
PC internal IP address: Look in Settings > Network & Internet > Status > View
your network properties. Find the network configuration with an "Operational"
status and then get the IPv4 address.
Your public IP address (the router's IP). There are many ways to find this - you can
search (in Bing or Google) for "my IP" or view the Wi-Fi network properties (for
Windows 10).
Port number being mapped. In most cases this is 3389 - that's the default port
used by Remote Desktop connections.
2 Warning
After you map the port, you'll be able to connect to your host PC from outside the local
network by connecting to the public IP address of your router (the second bullet above).
The router's IP address can change - your internet service provider (ISP) can assign you a
new IP at any time. To avoid running into this issue, consider using Dynamic DNS - this
lets you connect to the PC using an easy to remember domain name, instead of the IP
address. Your router automatically updates the DDNS service with your new IP address,
should it change.
With most routers you can define which source IP or source network can use port
mapping. So, if you know you're only going to connect from work, you can add the IP
address for your work network - that lets you avoid opening the port to the entire
public internet. If the host you're using to connect uses dynamic IP address, set the
source restriction to allow access from the whole range of that particular ISP.
You might also consider setting up a static IP address on your PC so the internal IP
address doesn't change. If you do that, then the router's port forwarding will always
point to the correct IP address.
Use a VPN
If you connect to your local area network by using a virtual private network (VPN), you
don't have to open your PC to the public internet. Instead, when you connect to the
VPN, your RD client acts like it's part of the same network and be able to access your PC.
There are a number of VPN services available - you can find and use whichever works
best for you.
Feedback
Was this page helpful? Yes No
Change the listening port for Remote
Desktop on your computer
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
When you connect to a computer (either a Windows client or Windows Server) through
the Remote Desktop client, the Remote Desktop feature on your computer "hears" the
connection request through a defined listening port (3389 by default). You can change
that listening port on Windows computers by modifying the registry.
The next time you connect to this computer by using the Remote Desktop connection,
you must type the new port. If you're using a firewall, make sure to configure your
firewall to permit connections to the new port number.
You can check the current port by running the following PowerShell command:
PowerShell
For example:
PowerShell
PortNumber : 3389
PSPath :
Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl
Set\Control\Terminal Server\WinStations\RDP-Tcp
PSParentPath :
Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl
Set\Control\Terminal Server\WinStations
PSChildName : RDP-Tcp
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
You can also change the RDP port by running the following PowerShell command. In
this command, we'll specify the new RDP port as 3390.
PowerShell
$portvalue = 3390
Feedback
Was this page helpful? Yes No
Compare Remote Desktop app features
across platforms and devices
Article • 01/15/2025
Tip
This article is shared for services and products that use the Remote Desktop
Protocol (RDP) to provide remote access to Windows desktops and apps.
Use the buttons at the top of this article to select what you want to connect to so
the article shows the relevant information.
The Remote Desktop app is available on Windows, macOS, iOS and iPadOS, Android and
Chrome OS, and in a web browser. However, support for some features differs across
these platforms. This article details which features are supported on which platforms.
There are two versions of the Remote Desktop app for Windows, which are both
supported for connecting to Remote Desktop Services and remote PCs:
Remote Desktop app from the Microsoft Store. This version is no longer being
developed and is referred to in this article as Windows (RD Store).
Experience
The following table compares which Remote Desktop app experience features are
supported on which platforms:
ノ Expand table
Appearance (dark or ❌ ✅ ✅ ✅ ✅ ✅
light)
Integrated apps ✅¹ ❌ ❌ ❌ ❌ ❌
Feature Windows Windows macOS iOS/ Android/ Web
(MSTSC) (RD iPadOS Chrome browser
Store) OS
Localization ✅ ✅ ❌ ✅ ❌ ✅
Search ❌ ❌ ✅ ✅ ✅ ✅
URI schemes ❌ ❌ ✅² ✅² ✅² ❌
1. When subscribed to Remote Desktop Services using the RemoteApp and Desktop
Connections Control Panel applet.
2. Legacy RDP URI scheme only.
The following table provides a description for each of the experience features:
ノ Expand table
Feature Description
Appearance (dark or light) Change the appearance of the Remote Desktop app to be light or
dark.
Integrated apps Individual apps using RemoteApp are integrated with the local
device as if they're running locally.
Pin to Start Menu Pin your favorite devices and apps to the Windows Start Menu for
quick access.
Uniform Resource Identifier Start the Remote Desktop app or connect to a remote session with
(URI) schemes specific parameters and values with a URI.
Display
The following table compares which display features are supported on which platforms:
ノ Expand table
Feature Windows Windows macOS iOS/ Android/ Web browser
(MSTSC) (RD Store) iPadOS Chrome OS
Dynamic resolution ❌ ✅ ✅ ✅ ✅ ✅
External monitor ✅ ❌ ✅ ✅ ❌ ❌
Multiple monitors¹ ✅ ❌ ✅ ❌ ❌ ❌
Selected monitors ✅ ❌ ❌ ✅ ❌ ❌
Smart sizing ✅ ✅ ✅ ❌ ❌ ❌
1. Up to 16 monitors.
The following table provides a description for each of the display features:
ノ Expand table
Feature Description
Dynamic The resolution and orientation of local displays is dynamically reflected in the
resolution remote session for desktops. If the session is running in windowed mode, the
desktop is dynamically resized to the size of the window.
Selected Specifies which local displays to use for the remote session.
displays
Smart sizing A desktop in windowed mode is dynamically scaled to the window's size.
Redirection
The following sections detail the redirection support available on each platform.
Tip
Device redirection
The following table shows which local devices you can redirect to a remote session on
each platform:
ノ Expand table
Cameras ✅ ❌ ✅ ✅ ✅ ✅¹
Local drive/storage ✅ ❌ ✅ ✅ ✅ ✅²
Microphones ✅ ✅ ✅ ✅ ✅ ✅
Printers ✅ ❌ ✅³ ❌ ❌ ✅⁴
Scanners⁵ ✅ ❌ ❌ ❌ ❌ ❌
Smart cards ✅ ❌ ✅ ❌ ❌ ❌
Speakers ✅ ✅ ✅ ✅ ✅ ✅
The following table provides a description for each type of device you can redirect:
ノ Expand table
Cameras Redirect a local camera to use with apps like Microsoft Teams.
Device type Description
Microphones Redirect a local microphone to use with apps like Microsoft Teams.
Input redirection
The following table shows which input methods you can redirect:
ノ Expand table
Keyboard ✅ ✅ ✅ ✅ ✅ ✅
Keyboard input ✅ ✅ ✅ ❌ ❌ ✅¹
language
Keyboard shortcuts ✅ ✅ ✅ ✅ ✅ ✅
Mouse/trackpad ✅ ✅ ✅ ✅ ✅ ✅
Multi-touch ✅ ✅ ❌ ✅ ✅ ❌
Pen ✅ ❌ ❌ ✅ ✅ ✅
Touch ✅ ✅ ❌ ✅ ✅ ✅
The following table provides a description for each type of input you can redirect:
ノ Expand table
Port redirection
The following table shows which ports you can redirect:
ノ Expand table
Serial ✅ ❌ ❌ ❌ ❌ ❌
USB ✅ ❌ ❌ ❌ ❌ ❌
The following table provides a description for each port you can redirect:
ノ Expand table
Serial Redirect serial (COM) ports on the local device to the remote session.
USB Redirect supported USB devices on the local device to the remote session.
Other redirection
The following table shows which other features you can redirect:
ノ Expand table
Clipboard - bidirectional ✅ ✅ ✅ ✅¹ ✅² ✅²
Feature Windows Windows macOS iOS/ Android/ Web
(MSTSC) (RD iPadOS Chrome browser
Store) OS
Clipboard - ✅ ✅ ✅ ✅ ✅ ✅
unidirectional³
Location ✅⁴ ❌ ❌ ✅ ❌ ✅
Third-party virtual ✅ ❌ ❌ ❌ ❌ ❌
channel plugins
Time zone ✅ ✅ ✅ ✅ ✅ ✅
WebAuthn ✅ ❌ ❌ ❌ ❌ ❌
The following table provides a description for each other redirection feature you can
redirect:
ノ Expand table
Feature Description
Clipboard - Redirect the clipboard on the local device is to the remote session and
bidirectional from the remote session to the local device.
Clipboard - Control the direction in which the clipboard can be used and restrict the
unidirectional types of data that can be copied.
Location The location of the local device can be available in the remote session.
Third-party virtual Enables third-party virtual channel plugins to extend Remote Desktop
channel plugins Protocol (RDP) capabilities.
Time zone The time zone of the local device can be available in the remote session.
ノ Expand table
Connection ✅ ❌ ✅ ❌ ✅
information
ノ Expand table
Feature Description
Feedback
Was this page helpful? Yes No
Tip
This article is shared for services and products that use the Remote Desktop
Protocol (RDP) to provide remote access to Windows desktops and apps.
The Remote Desktop Protocol (RDP) has a number of properties you can set to
customize the behavior of a remote session, such as for device redirection, display
settings, session behavior, and more.
The following sections contain each RDP property available and lists its syntax,
description, supported values, the default value, and connections to which services and
products you can use them with.
How you use these RDP properties depends on the service or product you're using:
ノ Expand table
Azure Virtual Desktop Host pool RDP properties. To learn more, see Customize RDP properties
for a host pool.
7 Note
For each RDP property, replace <value> with an allowed value for that property.
Connections
Here are the RDP properties that you can use to configure connections.
alternate shell
authentication level
Default value: 3
Applies to:
Remote Desktop Services
Remote PC connections
disableconnectionsharing
Syntax: disableconnectionsharing:i:<value>
Description: Determines whether the client reconnects to any existing
disconnected session or initiate a new connection when a new connection is
launched.
Supported values:
0 : Reconnect to any existing session.
1 : Initiate new connection.
Default value: 0
Applies to:
Remote Desktop Services
domain
Syntax: domain:s:<value>
Description: Specifies the name of the Active Directory domain in which the user
account that will be used to sign in to the remote computer is located.
Supported values:
A valid domain name, such as CONTOSO .
Default value: None.
Applies to:
Remote Desktop Services
Remote PC connections
enablecredsspsupport
Syntax: enablecredsspsupport:i:<value>
Description: Determines whether the client will use the Credential Security Support
Provider (CredSSP) for authentication if it's available.
Supported values:
0 : RDP won't use CredSSP, even if the operating system supports CredSSP.
1 : RDP will use CredSSP if the operating system supports CredSSP.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
enablerdsaadauth
Syntax: enablerdsaadauth:i:<value>
Description: Determines whether the client will use Microsoft Entra ID to
authenticate to the remote PC. When used with Azure Virtual Desktop, this
provides a single sign-on experience. This property replaces the property
targetisaadjoined.
Supported values:
0 : Connections won't use Microsoft Entra authentication, even if the remote PC
supports it.
1 : Connections will use Microsoft Entra authentication if the remote PC
supports it.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
full address
gatewaycredentialssource
Syntax: gatewaycredentialssource:i:<value>
Description: Specifies the authentication method used for Remote Desktop
gateway connections.
Supported values:
0 : Ask for password (NTLM).
1 : Use smart card.
3 : Prompt the user for their credentials and use basic authentication.
4 : Allow user to select later.
5 : Use cookie-based authentication.
Default value: 0
Applies to:
Remote Desktop Services
gatewayhostname
Syntax: gatewayhostname:s:<value>
Description: Specifies the host name of a Remote Desktop gateway.
Supported values:
A valid hostname, IPv4 address, or IPv6 address.
Default value: None.
Applies to:
Remote Desktop Services
gatewayprofileusagemethod
Syntax: gatewayprofileusagemethod:i:<value>
Description: Specifies whether to use the default Remote Desktop gateway
settings.
Supported values:
0 : Use the default profile mode, as specified by the administrator.
Default value: 0
Applies to:
Remote Desktop Services
gatewayusagemethod
Syntax: gatewayusagemethod:i:<value>
Description: Specifies whether to use a Remote Desktop gateway for the
connection.
Supported values:
0 : Don't use a Remote Desktop gateway.
1 : Always use a Remote Desktop gateway.
RD Session Host.
3 : Use the default Remote Desktop gateway settings.
4 : Don't use a Remote Desktop gateway, bypass gateway for local addresses.
kdcproxyname
Syntax: kdcproxyname:s:<value>
Description: Specifies the fully qualified domain name of a KDC proxy.
Supported values:
A valid path to a KDC proxy server, such as kdc.contoso.com .
Default value: None.
Applies to:
Azure Virtual Desktop. For more information, see Configure a Kerberos Key
Distribution Center proxy.
promptcredentialonce
Syntax: promptcredentialonce:i:<value>
Description: Determines whether a user's credentials are saved and used for both
the Remote Desktop gateway and the remote computer.
Supported values:
0 : Remote session doesn't use the same credentials.
1 : Remote session does use the same credentials.
Default value: 1
Applies to:
Remote Desktop Services
targetisaadjoined
Syntax: targetisaadjoined:i:<value>
Description: Allows connections to Microsoft Entra joined session hosts using a
username and password. This property is only applicable to non-Windows clients
and local Windows devices that aren't joined to Microsoft Entra. It is being
replaced by the property enablerdsaadauth.
Supported values:
0 : Connections to Microsoft Entra joined session hosts will succeed for
Windows devices that meet the requirements, but other connections will fail.
1 : Connections to Microsoft Entra joined hosts will succeed but are restricted to
entering user name and password credentials when connecting to session hosts.
Default value: 0
Applies to:
Azure Virtual Desktop. For more information, see Microsoft Entra joined session
hosts in Azure Virtual Desktop.
username
Syntax: username:s:<value>
Description: Specifies the name of the user account that will be used to sign in to
the remote computer.
Supported values:
Any valid username.
Default value: None.
Applies to:
Remote Desktop Services
Session behavior
Here are the RDP properties that you can use to configure session behavior.
autoreconnection enabled
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
bandwidthautodetect
Syntax: bandwidthautodetect:i:<value>
Description: Determines whether or not to use automatic network bandwidth
detection.
Supported values:
0 : Don't use automatic network bandwidth detection.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
compression
Syntax: compression:i:<value>
Description: Determines whether bulk compression is enabled when transmitting
data to the local device.
Supported values:
0 : Disable bulk compression.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
networkautodetect
Syntax: networkautodetect:i:<value>
Description: Determines whether automatic network type detection is enabled.
Supported values:
0 : Disable automatic network type detection.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
videoplaybackmode
Syntax: videoplaybackmode:i:<value>
Description: Determines whether the connection will use RDP-efficient multimedia
streaming for video playback.
Supported values:
0 : Don't use RDP efficient multimedia streaming for video playback.
1 : Use RDP-efficient multimedia streaming for video playback when possible.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
Device redirection
Here are the RDP properties that you can use to configure device redirection. To learn
more, see Redirection over the Remote Desktop Protocol.
audiocapturemode
Syntax: audiocapturemode:i:<value>
Description: Indicates whether audio input redirection is enabled.
Supported values:
0 : Disable audio capture from a local device.
1 : Enable audio capture from a local device and redirect it to a remote session.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure audio and video redirection over the
Remote Desktop Protocol.
audiomode
Syntax: audiomode:i:<value>
Description: Determines whether the local or remote machine plays audio.
Supported values:
0 : Play sounds on the local device.
1 : Play sounds in a remote session.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure audio and video redirection over the
Remote Desktop Protocol.
camerastoredirect
Syntax: camerastoredirect:s:<value>
Description: Configures which cameras to redirect. This setting uses a semicolon-
delimited list of KSCATEGORY_VIDEO_CAMERA interfaces of cameras enabled for
redirection.
Supported values:
* : Redirect all cameras.
To learn how to use this property, see Configure camera, webcam, and video capture
redirection over the Remote Desktop Protocol.
devicestoredirect
Syntax: devicestoredirect:s:<value>
Description: Determines which peripherals that use the Media Transfer Protocol
(MTP) or Picture Transfer Protocol (PTP), such as a digital camera, are redirected
from a local Windows device to a remote session.
Supported values:
* : Redirect all supported devices, including ones that are connected later.
Default value: *
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure Media Transfer Protocol and Picture
Transfer Protocol redirection on Windows over the Remote Desktop Protocol.
drivestoredirect
Syntax: drivestoredirect:s:<value>
Description: Determines which fixed, removable, and network drives on the local
device will be redirected and available in a remote session.
Supported values:
Empty: Don't redirect any drives.
* : Redirect all drives, including drives that are connected later.
To learn how to use this property, see Configure fixed, removable, and network drive
redirection over the Remote Desktop Protocol.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure camera, webcam, and video capture
redirection over the Remote Desktop Protocol.
keyboardhook
Syntax: keyboardhook:i:<value>
Description: Determines whether Windows key combinations ( Windows , Alt + Tab )
are applied to a remote session.
Supported values:
0 : Windows key combinations are applied on the local device.
RemoteApp when in focus. We recommend you use this value only when
publishing the Remote Desktop Connection app ( mstsc.exe ) from the host pool
on Azure Virtual Desktop. This value is only supported when using the Windows
client.
Default value: 2
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
redirectclipboard
Syntax: redirectclipboard:i:<value>
Description: Determines whether to redirect the clipboard.
Supported values:
0 : Clipboard on local device isn't available in remote session.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure clipboard redirection over the Remote
Desktop Protocol.
redirectcomports
Syntax: redirectcomports:i:<value>
Description: Determines whether serial or COM ports on the local device are
redirected to a remote session.
Supported values:
0 : Serial or COM ports on the local device aren't available in a remote session.
1 : Serial or COM ports on the local device are available in a remote session.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure serial or COM port redirection over the
Remote Desktop Protocol.
1 : Medium compression.
2 : Low compression video with high picture quality.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure camera, webcam, and video capture
redirection over the Remote Desktop Protocol.
redirectlocation
Syntax: redirectlocation:i:<value>
Description: Determines whether the location of the local device is redirected to a
remote session.
Supported values:
0 : A remote session uses the location of the remote computer or virtual
machine.
1 : A remote session uses the location of the local device.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure location redirection over the Remote
Desktop Protocol.
redirectprinters
Syntax: redirectprinters:i:<value>
Description: Determines whether printers available on the local device are
redirected to a remote session.
Supported values:
0 : The printers on the local device aren't redirected to a remote session.
1 : The printers on the local device are redirected to a remote session.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure printer redirection over the Remote
Desktop Protocol.
redirectsmartcards
Syntax: redirectsmartcards:i:<value>
Description: Determines whether smart card devices on the local device will be
redirected and available in a remote session.
Supported values:
0 : Smart cards on the local device aren't redirected to a remote session.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure smart card redirection over the Remote
Desktop Protocol.
redirectwebauthn
Syntax: redirectwebauthn:i:<value>
Description: Determines whether WebAuthn requests from a remote session are
redirected to the local device allowing the use of local authenticators (such as
Windows Hello for Business and security keys).
Supported values:
0 : WebAuthn requests from a remote session aren't sent to the local device for
authentication.
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure WebAuthn redirection over the Remote
Desktop Protocol.
usbdevicestoredirect
Syntax: usbdevicestoredirect:s:<value>
Description: Determines which supported USB devices on the client computer are
redirected using opaque low-level redirection to a remote session.
Supported values:
* : Redirect all USB devices that aren't already redirected by high-level
redirection.
{*Device Setup Class GUID*} : Redirect all devices that are members of the
Default value: *
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
To learn how to use this property, see Configure USB redirection on Windows over the
Remote Desktop Protocol.
Display settings
Here are the RDP properties that you can use to configure display settings.
desktop size id
1 : 800×600
2 : 1024×768
3 : 1280×1024
4 : 1600×1200
desktopheight
Syntax: desktopheight:i:<value>
Description: Specifies the resolution height (in pixels) of a remote session.
Supported values:
Numerical value between 200 and 8192 .
Default value: None. Match the local device.
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
desktopscalefactor
Syntax: desktopscalefactor:i:*value*
Description: Specifies the scale factor of the remote session to make the content
appear larger.
Supported values:
Numerical value from the following list: 100 , 125 , 150 , 175 , 200 , 250 , 300 , 400 ,
500
7 Note
desktopwidth
Syntax: desktopwidth:i:<value>
Description: Specifies the resolution width (in pixels) of a remote session.
Supported values:
Numerical value between 200 and 8192 .
Default value: None. Match the local device.
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
dynamic resolution
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
maximizetocurrentdisplays
Syntax: maximizetocurrentdisplays:i:<value>
Description: Determines which display a remote session uses for full screen on
when maximizing. Requires use multimon set to 1 . Only available on Windows
App for Windows and the Remote Desktop app for Windows.
Supported values:
0 : Session is full screen on the displays initially selected when maximizing.
1 : Session dynamically is full screen on the displays the session window spans
when maximizing.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
screen mode id
Default value: 2
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
selectedmonitors
Syntax: selectedmonitors:s:<value>
Description: Specifies which local displays to use in a remote session. The selected
displays must be contiguous. Requires use multimon set to 1 . Only available on
Windows App for Windows, the Remote Desktop app for Windows, and the inbox
Remote Desktop Connection app on Windows.
Supported values:
A comma separated list of machine-specific display IDs. You can retrieve
available IDs by running mstsc.exe /l from the command line. The first ID listed
is set as the primary display in a remote session.
Default value: None. All displays are used.
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
singlemoninwindowedmode
Syntax: singlemoninwindowedmode:i:<value>
Description: Determines whether a multi display remote session automatically
switches to single display when exiting full screen. Requires use multimon set to 1.
Only available on Windows App for Windows and the Remote Desktop app for
Windows.
Supported values:
0 : A remote session retains all displays when exiting full screen.
1 : A remote session switches to a single display when exiting full screen.
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
smart sizing
Default value: 0
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
use multimon
Default value: 1
Applies to:
Azure Virtual Desktop
Remote Desktop Services
Remote PC connections
RemoteApp
Here are the RDP properties that you can use to configure RemoteApp behavior for
Remote Desktop Services.
remoteapplicationcmdline
Syntax: remoteapplicationcmdline:s:<value>
Description: Optional command line parameters for the RemoteApp.
Supported values:
Valid command-line parameters for the application.
Default value: None.
Applies to:
Remote Desktop Services
remoteapplicationexpandcmdline
Syntax: remoteapplicationexpandcmdline:i:<value>
Description: Determines whether environment variables contained in the
RemoteApp command line parameters should be expanded locally or remotely.
Supported values:
0 : Environment variables should be expanded to the values of the local device.
session.
Default value: 1
Applies to:
Remote Desktop Services
remoteapplicationexpandworkingdir
Syntax: remoteapplicationexpandworkingdir:i:<value>
Description: Determines whether environment variables contained in the
RemoteApp working directory parameter should be expanded locally or remotely.
Supported values:
0 : Environment variables should be expanded to the values of the local device.
session.
The RemoteApp working directory is specified through the shell working
directory parameter.
Default value: 1
Applies to:
Remote Desktop Services
remoteapplicationfile
Syntax: remoteapplicationfile:s:<value>
Description: Specifies a file to be opened in the remote session by the RemoteApp.
For local files to be opened, you must also enable drive redirection for the source
drive.
Supported values:
A valid file path in the remote session.
Default value: None.
Applies to:
Remote Desktop Services
remoteapplicationicon
Syntax: remoteapplicationicon:s:<value>
Description: Specifies the icon file to be displayed in Windows App or the Remote
Desktop app while launching a RemoteApp. If no file name is specified, the client
will use the standard Remote Desktop icon. Only .ico files are supported.
Supported values:
A valid file path to an .ico file.
Default value: None.
Applies to:
Remote Desktop Services
remoteapplicationmode
Syntax: remoteapplicationmode:i:<value>
Description: Determines whether a connection is started as a RemoteApp session.
Supported values:
0 : Don't launch a RemoteApp session.
Default value: 1
Applies to:
Remote Desktop Services
remoteapplicationname
Syntax: remoteapplicationname:s:<value>
Description: Specifies the name of the RemoteApp in Windows App or the Remote
Desktop app while starting the RemoteApp.
Supported values:
A valid application display name, for example Microsoft Excel .
Default value: None.
Applies to:
Remote Desktop Services
remoteapplicationprogram
Syntax: remoteapplicationprogram:s:<value>
Description: Specifies the alias or executable name of the RemoteApp.
Supported values:
A valid application name or alias, for example EXCEL .
Default value: None.
Applies to:
Remote Desktop Services
Feedback
Was this page helpful? Yes No
This document defines the format of Uniform Resource Identifiers (URIs) for Remote
Desktop. These URI schemes allow for Remote Desktop clients to be invoked with
various commands.
7 Note
The ms-rd URI scheme is currently only supported with the Windows Desktop client
(MSRDC).
The ms-rd URI provides the option to specify a command for the client and a set of
parameters specific to the command using the following format:
ms-rd:command?parameters
Parameters uses the query string format of key=value pair separated by & to provide
additional information for the given command:
param1=value1¶m2=value2&…
Subscribe
This command launches the client and starts the subscription process.
Command name: subscribe
Command parameters:
ノ Expand table
Example: ms-rd:subscribe?url=https://contoso.com
7 Note
The following URI scheme is only supported with the clients for macOS, iOS, and
Android devices. It is being replaced by the new ms-rd URI above.
The RDP attributes are separated by the ampersand symbol (&). For example, when
connecting to a PC, the string is:
rdp://full%20address=s:mypc:3389&audiomode=i:2&disable%20themes=i:1
This table gives a complete list of supported attributes that may be used with the iOS,
Mac, and Android Remote Desktop clients. (An "x" in the platform column indicates the
attribute is supported. The values denoted by chevrons (<>) represent the values that
are supported by the Remote Desktop clients.)
ノ Expand table
alternate shell=s:<string> x x x
audiomode=i:<0, 1, or 2> x x x
desktopheight=i:<value in pixels> x
desktopwidth=i:<value in pixels> x
domain=s:<string> x x x
full address=s:<string> x x x
gatewayhostname=s:<string> x x x
gatewayusagemethod=i:<1 or 2> x x x
loadbalanceinfo=s:<string> x x x
redirectprinters=i:<0 or 1> x
remoteapplicationcmdline=s:<string> x x x
remoteapplicationmode=i:<0 or 1> x x x
remoteapplicationprogram=s:<string> x x x
username=s:<string> x x x
Feedback
Was this page helpful? Yes No
Frequently asked questions about
the Remote Desktop clients
FAQ
Now that you've set up the Remote Desktop client on your device (Android, Mac, iOS, or
Windows), you may have questions. Here are answers to the most commonly asked
questions about the Remote Desktop clients.
Setting up
Connections, gateway, and networks
Web client
Monitors, audio, and mouse
Mac hardware
Specific error messages
The majority of these questions apply to all of the clients, but there are a few client
specific items.
If you have additional questions that you'd like us to answer, leave them as feedback on
this article.
Setting up
Which PCs can I connect to?
Check out the supported configuration article for information about what PCs you can
connect to.
First, have you seen the Remote Desktop Setup Wizard? It walks you through getting
your PC ready for remote access. Download and run that tool on your PC to get
everything set.
7 Note
Make note of the name of this PC under How to connect to this PC. You'll need this to
configure the clients.
You can grant permission for specific users to access this PC - to do that, click Select
users that can remotely access this PC. Members of the Administrators group
automatically have access.
For Windows 8.1, follow the instructions to allow remote connections in Connect to
another desktop using Remote Desktop Connections .
The remote PC can't be found. Make sure you have the right PC name, and then
check to see if you entered that name correctly. If you still can't connect, try using
the IP address of the remote PC instead of the PC name.
There's a problem with the network. Make sure you have internet connection.
4. Under Allowed apps and features, select Remote Desktop, and then tap or
click OK.
If you're using a different firewall, make sure the port for Remote Desktop
(usually 3389) is open.
Remote connections might not be set up on the remote PC. To fix this, scroll back
up to How do I set up a PC for Remote Desktop? question in this topic.
The remote PC might only allow PCs to connect that have Network Level
Authentication set up.
The remote PC might be turned off. You can't connect to a PC that's turned off,
asleep, or hibernating, so make sure the settings for sleep and hibernation on the
remote PC are set to Never (hibernation isn't available on all PCs.).
) Important
Using the PC name requires your network to resolve the name correctly
through DNS. In many home networks, you have to use the IP address instead
of the host name to connect.
7 Note
Windows XP Home, Windows Media Center Edition, Windows Vista Home and
Windows 7 Home or Starter aren't supported without 3rd party software.
The 3G network blocks or corrupts VPN. There are several 3G providers in the
world who seem to block or corrupt 3G traffic. Verify VPN connectivity works
correctly for over a minute.
L2TP or PPTP VPNs. If you're using L2TP or PPTP in your VPN, please set Send All
Traffic to ON in the VPN configuration.
VPN is misconfigured. A misconfigured VPN server can be the reason why the
VPN connections never worked or stopped working after some time. Ensure
testing with the iOS device's web browser or a PC or Mac on the same network if
this happens.
Web client
Which browsers can I use?
The web client supports Microsoft Edge, Mozilla Firefox (v55.0 and later), Safari, and
Google Chrome.
1. Right-click the remote desktop that you want to enable multiple screens for, and
then click Edit.
2. Enable Use all monitors and Full screen.
Is AirPrint supported?
No, the Remote Desktop client doesn't support AirPrint. (This is true for both Mac and
iOS clients.)
You're using a keyboard that the remote session doesn't recognize. When Remote
Desktop doesn't recognize the keyboard, it defaults to the language last used with
the remote PC.
You're connecting to a previously disconnected session on a remote PC and that
remote PC uses a different keyboard language than the language you're currently
trying to use.
You can fix this issue by manually setting the keyboard language for the remote session.
See the steps in the next section.
If your Mac keyboard layout is set to the PC version of the language keyboard (for
example, French – PC) all your keys should be mapped correctly and your keyboard
should just work.
If your Mac keyboard layout is set to the Mac version of a keyboard (for example,
French) the remote session will map you to the PC version of the French language. Some
of the Mac keyboard shortcuts you're used to using on OSX won't work in the remote
Windows session.
If your keyboard layout is set to a layout the remote session cannot match at all, your
remote session will default to give you the language you last used with that PC. In this
case, or in cases where you need to change the language of your remote session to
match your Mac keyboard, you can manually set the keyboard language in the remote
session to the language that is the closest match to the one you wish to use as follows.
Use the following instructions to change the keyboard layout inside the remote desktop
session:
On Windows 10 or Windows 8:
1. From inside the remote session, open Region and Language. Click Start > Settings
> Time and Language. Open Region and Language.
2. Add the language you want to use. Then close the Region and Language window.
3. Now, in the remote session, you'll see the ability to switch between languages. (In
the right side of the remote session, near the clock.) Click the language you want
to switch to (such as Eng).
You might need to close and restart the application you're currently using for the
keyboard changes to take effect.
Specific errors
Why do I get an "Insufficient privileges" error?
You aren't allowed to access the session you want to connect to. The most likely cause is
that you're trying to connect to an admin session. Only administrators are allowed to
connect to the console. Verify that the console switch is off in the advanced settings of
the remote desktop. If this isn't the source of the problem, please contact your system
administrator for further assistance.
The remote PC name is the same as the name of the gateway. Then, when you try
to connect to the remote PC, the connection goes to the gateway instead, which
you probably don't have permission to access. If you need to connect to the
gateway, don't use the external gateway name as PC name. Instead use "localhost"
or the IP address (127.0.0.1), or the internal server name.
Your user account isn't a member of the user group for remote access.
Feedback
Was this page helpful? Yes No
Privacy settings for managed apps and
desktops
Article • 11/01/2024 •
Applies ✅ Windows Server 2025, ✅ Windows Server 2022, ✅ Windows Server 2019, ✅
to: Windows Server 2016, ✅ Windows 11, ✅ Windows 10
7 Note
Using managed resources in regions other than the United States may result in
data transfer to the United States.
These are some of the Windows 10 privacy settings you can configure in your managed
desktop:
Speech recognition
Find my device
Inking & typing
Advertising ID
Location
Diagnostic data
Tailored experiences
You can always review the information collected and sent to Microsoft by accessing your
Privacy Dashboard .
1. From the remote desktop, select the Windows button on the taskbar or press the
Windows key on your keyboard to open the Start menu.
2. Select the gear icon to open Settings.
3. Search for the names of the configurable privacy settings listed earlier in this topic
to learn more about it.
7 Note
If your IT Administrator has configured the managed desktop to not retain user
configuration settings between connections, any changes you make to these
settings won't be saved.
Feedback
Was this page helpful? Yes No
Remote Desktop Web Access FAQ
FAQ
This article provides answers to some of the most common questions about Remote
Desktop Web Access (RD Web Access). The RD Web Access website enables you to use a
Web browser to access RemoteApp and Desktop Connections.
Contact your Active Directory administrator to reset your password, and if needed,
unlock your account.
If an administrator enabled password reset, follow the link to change your expired
password. You need to enter your old password, then your new password, and confirm
the new password.
How does an administrator enable
password reset?
Administrators can enable remote users to change their own password from within the
RD Web access interface if it's expired.
) Important
This option isn't helpful for users who forgot their password since the old password
still needs to be entered before selecting a new password. For forgotten passwords,
you must contact your Active Directory administrator.
When you open the password reset page there's a user interface where you enter your
current password, new password, and confirm the new password.
7 Note
If the remote server is running in Azure, you need create an endpoint for public
port 443 in the Azure management portal so that users can access the RD Web
Access portal.
1. Enter Ctrl+Alt+Del.
2. Select Change a password.
3. Enter in the old password, then the new password, and confirm the new password.
Contact your administrator if you can't change your password, don't know the password
requirements, or you can't sign in.
What is RemoteApp?
Using RemoteApp, you can access programs on a remote computer through Remote
Desktop Services. Although the programs are running on a remote computer,
RemoteApp programs behave as if they're running on your local computer. For example,
a RemoteApp program has its own entry in the taskbar, and you can resize, minimize, or
maximize the program window.
If you're using a work computer assigned to you and that you don't share with other
people, click This is a private computer.
To protect against unauthorized access, RD Web Access sessions automatically end after
a period of inactivity. If your RD Web Access session ends, you need to sign in again.
The administrator sets how long a session lasts.
Feedback
Was this page helpful? Yes No
Cannot connect to RDS because no RD
Licensing servers are available
Article • 01/20/2025
This article helps you troubleshoot the "No licenses available" error in a deployment that
includes a Remote Desktop Session Host (RDSH) server and a Remote Desktop Licensing
server.
Symptoms
Clients cannot connect to Remote Desktop Services, and they display messages that
resemble the following:
Output
The remote session was disconnected because there are no Remote Desktop
License Servers available to provide a license.
Output
Sign in to the RD Session Host as a domain administrator and open the RD License
Diagnoser. Look for messages like the following:
Output
The grace period for the Remote Desktop Session Host server has expired, but
the RD Session Host server hasn't been configured with any license servers.
Connections to the RD Session Host server will be denied unless a license
server is configured for the RD Session Host server.
Output
Cause
These issue could be caused by the following user messages:
The remote session was disconnected because there are no Remote Desktop client
access licenses available for this computer.
The remote session was disconnected because there are no Remote Desktop
License Servers available to provide a license.
If the RD License Diagnoser lists other problems, such as "The RDP protocol component
X.224 detected an error in the protocol stream and has disconnected the client," there
might be a problem that affects the license certificates. Such problems tend to be
associated with user messages, such as the following:
Because of a security error, the client could not connect to the Terminal server. After
making sure that you are signed in to the network, try connecting to the server again.
7 Note
For more information about this configuration, see Activate the Remote
Desktop Services license server.
The license server has a client access license (CAL) for each user and device that
can connect to RDS.
7 Note
For more information about this configuration, see Install RDS client access
licenses on the Remote Desktop license server.
The configuration of the licenses should resemble the following screenshot. There
should be a green check mark beside the license server name, and the numbers in
the columns should reflect the numbers of total and available licenses.
The RDS deployment uses the correct license server, licensing mode, and policy
settings. The details of the configuration depend on the type of deployment that
you have:
Configure licensing for an RDS deployment that includes the Remote Desktop
Connection Broker (RD Connection Broker) role.
Configure licensing for an RDS deployment that includes only the Remote
Desktop Session Host (RD Session Host) role and the RD Licensing role.
2. In Server Manager, select Remote Desktop Services > Overview > Edit
Deployment Properties > RD Licensing.
3. Select the Remote Desktop licensing mode (either Per User or Per Device, as
appropriate for your deployment).
7 Note
If you use domain-joined servers for your RDS deployment, you can use both
Per User and Per Device CALs. If you use workgroup servers for your RDS
deployment, you have to use Per Device CALs In that case, Per User CALs are
not permitted.
3. In the policy list, right-click Use the specified Remote Desktop license servers, and
then select Properties.
4. Select Enabled, and then enter the name of the license server under License
servers to use. If you have more than one license server, use commas to separate
their names.
5. Select OK.
6. In the policy list, right-click Set the Remote Desktop licensing mode, and then
select Properties.
7. Select Enabled.
8. Under Specify the licensing mode for the Remote Desktop Session Host server,
select Per Device or Per User, as appropriate for your deployment.
Check for blocked ports between the Remote
Desktop Services servers
Make sure that the required ports are open on the firewalls between the RD Session
Host and the RD Licensing server.
For lists of the ports that have to be open between the different RDS components, see:
For more information, see "Your session will be disconnected in 60 minutes" message
when you connect to RDS.
Assign this right to Authenticated Users, Domain Computers, or Session Host computer
account if Everyone isn't assigned.
For more information, see Access this computer from the network - security policy
setting.
) Important
Follow this section's instructions carefully. Serious problems can occur if the
registry is modified incorrectly. Before you start modifying the registry, back up the
registry so that you can restore it in case something goes wrong.
To resolve this problem, back up and then remove the X509 Certificate registry keys,
restart the computer, and then reactivate the RD Licensing server. Follow these steps.
7 Note
Certificate
X509 Certificate
X509 Certificate ID
X509 Certificate2
Additional troubleshooting methods
If you verify that the licensing configuration is correct, but the system still isn't correctly
issuing CALs, follow these steps:
The top window of the RD Licensing Diagnoser lists problems that the diagnoser has
detected. For example, you might see a message that resembles the following:
Licenses are not available for this Remote Desktop Session Host server, and RD
Licensing Diagnoser has identified licensing problems for the RD Session Host
Server
The RD Licensing Diagnoser Information section shows more information about the
problem, including its possible causes and the steps to follow to remediate it.
ノ Expand table
The following table shows which RDS CAL and license server versions are compatible
with one another.
ノ Expand table
Feedback
Was this page helpful? Yes No