Cart0

Server · guide · 11 min read

Managing CAL Licenses in Windows Server 2022: Complete Administrator’s Guide

Updated

Managing CAL Licenses in Windows Server 2022: Complete Administrator’s Guide

Short answer: A Windows Server 2022 CAL is the license each user or device needs to access a Windows Server 2022 machine. Remote Desktop users also need an RDS CAL. Only RDS CALs get installed, in Remote Desktop Licensing Manager. A new session host runs on a 120-day grace period, and we'd set up licensing before it ends.

A Windows Server 2022 CAL gives one user or one device the right to connect to the server. CAL stands for Client Access License. Day 121 of an RDS trial, and no license server in sight? Remote Desktop sessions suddenly fail.

The server license covers the server only. Every person or computer that uses its file shares, Active Directory or printers needs a Windows Server CAL. Remote Desktop sessions need an RDS CAL on top.

Choosing between the two kinds of RDS CAL has its own page: RDS CAL Per User vs Per Device.

Here’s how we set up, activate and keep track of both kinds. Plus the mistakes that bite admins during an audit.

Point What to know
Two layers Windows Server CALs (access to the server at all) and RDS CALs (Remote Desktop sessions); RDS CALs come on top and never replace the base CAL
Two flavours Per User and Per Device, in each layer; pick the one that fits how people actually work
What gets installed Only RDS CALs, through the Remote Desktop Licensing role; base CALs are a paper obligation you document yourself
Versions Windows Server 2022 RDS CALs work with session hosts running 2022, 2019 and 2016, not 2025
Grace period With no license server, RDS runs for 120 days and then refuses connections

What a Windows Server 2022 CAL is and who needs one

It lets one named user or one specific device access a server running the Standard or Datacenter edition. We count every user or device that does any of the following.

  • Authenticates to the server.
  • Reads its file shares.
  • Prints through it.
  • Uses its other services.

That holds whether or not anyone ever logs on interactively.

The server license and the CAL are two separate purchases. The first licenses the machine, by core. CALs license the people and computers that talk to it.

Small shops tend to find this out during an audit. Or on the 121st day of an RDS trial.

A few exceptions exist.

Case Rule
Windows Server Essentials editions Licensed for a small, capped number of users and devices; no separate CALs
Administration over Remote Desktop Two simultaneous sessions are included with every server; no RDS CALs needed just to manage the box
Customers or partners outside your organisation An External Connector license can replace individual CALs

Windows Server CALs and RDS CALs

Windows Server CALs cover basic access to the server. RDS CALs cover Remote Desktop sessions on a session host. A user who works in a published desktop needs both.

Only RDS CALs are tracked by Windows itself. Base CALs are never typed into any console, so you prove them with purchase records.

CAL type What it covers Installed in Windows? Enforced?
Windows Server User CAL One person, from any number of devices No No, paper compliance
Windows Server Device CAL One device, used by any number of people No No, paper compliance
RDS Per User CAL Remote Desktop sessions for one user in Active Directory Yes, on the RD license server Tracked, not blocked
RDS Per Device CAL Remote Desktop sessions from one device Yes, on the RD license server Yes, connections fail when none are left
External Connector Unlimited external users of one server No No

User CALs or Device CALs

Buy User CALs when each person works from several devices. Buy Device CALs when several people share one computer.

Situation What it needs
A sales rep with a laptop, a tablet and a phone One User CAL
Three shifts sharing one warehouse terminal One Device CAL
A mixed environment Whichever model needs fewer licenses overall

Count honestly before you order. In typical offices, desk staff with a laptop plus a phone usually tip the sum toward User CALs.

A factory floor is different. Whole shifts share a few terminals there, and that almost always favours Device CALs.

You can mix the two models for base CALs. A single RDS deployment runs in one mode at a time, though.

How to install the Remote Desktop Licensing role

The role is only needed for RDS CALs. Base CALs are never installed anywhere. If you don’t run Remote Desktop Services, skip this whole section.

  1. Sign in to the server with an administrator account.
  2. Open Server Manager, click Manage in the upper-right corner and choose Add Roles and Features.
  3. Pick Role-based or feature-based installation and select the server.
  4. On Server Roles, tick Remote Desktop Services. Click Next until you reach Role Services.
  5. Tick Remote Desktop Licensing and accept the management tools it offers. Then click Install.
  6. Click Close when the progress bar finishes.

The same with PowerShell, run as administrator:

Install-WindowsFeature RDS-Licensing, RDS-Licensing-UI -IncludeManagementTools
Get-WindowsFeature *RDS*

The second line lists the RDS role services. Remote Desktop Licensing should now show as installed.

One license server can serve every session host in the domain. In larger setups, two servers with split CAL packs give you redundancy.

Activating the license server

You do it in Remote Desktop Licensing Manager. The wizard registers the server with the Microsoft Clearinghouse. Directly over the internet, or through a web page opened on another computer.

Until activation succeeds, the server can only hand out temporary licenses. And you can’t install CAL packs.

  1. Open Remote Desktop Licensing Manager from Server Manager, Tools, Remote Desktop Services.
  2. Right-click your server under All servers and select Activate Server.
  3. Choose Automatic connection if the server has internet access. It talks to the Clearinghouse over TCP 443. No internet on the box? Pick Web Browser and finish the form on any PC that’s online.
  4. Fill in the company information and finish the wizard.
  5. In a domain, right-click the server and choose Review Configuration. Click Add to Group.

That last step puts the server into the Terminal Server License Servers group in Active Directory. Per User CAL tracking depends on it.

After activation, we’d run the RD Licensing Diagnoser on the session host. It opens with lsdiag.msc. One window shows whether the host can find the license server, which licensing mode it uses and how many CALs are available.

Installing Windows Server 2022 RDS CALs on the license server

The Install Licenses wizard does it. With an automatic connection, the license server contacts the Microsoft Clearinghouse and adds the pack to its inventory within seconds.

  1. In Remote Desktop Licensing Manager, right-click the activated server and select Install Licenses.
  2. Choose the license program you bought under.
  3. Enter the 25-character license code. For volume licensing, enter the agreement and authorization numbers.
  4. For volume programs, select the product version, the CAL type and the quantity.
  5. Finish the wizard. Then expand the server node and check that the new pack appears, with the right total and available counts.
How you bought License program to choose
A retail pack License Pack (Retail Purchase)
Volume licensing Open License, Enterprise Agreement, or the program on your paperwork

Version rules trip people up more than the wizard does. These RDS CALs install on a license server of the same version or newer. An older license server won’t take them. They cover session hosts from 2016 up to 2022.

Session host version 2025 RDS CAL 2022 RDS CAL 2019 RDS CAL
Windows Server 2025 Yes No No
Windows Server 2022 Yes Yes No
Windows Server 2019 Yes Yes Yes
Windows Server 2016 Yes Yes Yes

Microsoft keeps the full matrix on its RDS client access license page.

The second half of the rule is about the license server. It has to run the same version as the CAL pack or a newer one. A 2019 license server simply won’t take a 2022 pack.

License server version 2025 RDS CAL 2022 RDS CAL 2019 RDS CAL 2016 RDS CAL
Windows Server 2025 Yes Yes Yes Yes
Windows Server 2022 No Yes Yes Yes
Windows Server 2019 No No Yes Yes
Windows Server 2016 No No No Yes

Planning both 2022 and 2025 packs? Then we’d put the license server on 2025 from day one. It takes every pack in the table.

If the hosts move to Windows Server 2025 within a year or two, 2025 RDS CALs bought now save a second purchase.

Need CALs? Our Windows Server 2022 Remote Desktop Services 50 User CAL comes as a genuine license. We email it instantly after payment.

Buying a Windows Server 2022 CAL license: packs and versions

Two shopping lists, really. Base CALs for everyone who touches the server. RDS CALs only for people who work in Remote Desktop sessions.

What you buy Typical pack Goes into a console?
Windows Server 2022 User CAL 1 or 5 users No, keep the invoice
Windows Server 2022 Device CAL 1 or 5 devices No, keep the invoice
Windows Server 2022 RDS User CAL From 1 up to packs of 50 Yes, RD Licensing Manager
Windows Server 2022 RDS Device CAL From 1 up to packs of 50 Yes, RD Licensing Manager

Versions follow one rule. A CAL covers its own server version and older ones. So a 2022 server wants 2022 CALs, or 2025 ones. CALs for 2019 don’t cover it, not even the base kind.

Ten people on Remote Desktop? That’s ten base CALs plus ten RDS CALs. Don’t forget the first part.

Price depends on the channel and the pack size, so check the live figure on the product page. For larger rollouts our Windows Server 2022 RDS 50 Device CAL sits next to the user pack, and every CAL we carry is listed under Windows Server CALs.

Pointing Remote Desktop Services at the license server

There are two routes: the deployment properties in Server Manager, or Group Policy for a standalone session host. Both set the same two things. The license server name, and the licensing mode.

A mode that doesn’t match the installed CALs is the most common reason sessions fail.

In an RDS deployment with a Connection Broker:

  1. Open Server Manager and go to Remote Desktop Services, Overview.
  2. Under Deployment Overview, open Tasks, Edit Deployment Properties.
  3. Select RD Licensing and choose Per User or Per Device. Add the license server by its FQDN.
  4. Click OK. The RD Licensing icon in the deployment diagram should no longer show a warning.

The same thing in PowerShell, handy when you rebuild a broker:

Import-Module RemoteDesktop
Set-RDLicenseConfiguration -LicenseServer "LicenseServer.domain.com" -Mode PerUser -ConnectionBroker "RDBroker.domain.com"
Get-RDLicenseConfiguration -ConnectionBroker "RDBroker.domain.com"

On a standalone session host with no broker, use the local policy editor or a domain GPO.

Item Value
Editor gpedit.msc, or a domain GPO
Path Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Licensing
First setting “Use the specified Remote Desktop license servers”, enabled, with the server name
Second setting “Set the Remote Desktop licensing mode”, set to the type of CAL you bought
Apply gpupdate /force

The 120-day grace period

During the grace period, a new Remote Desktop Session Host accepts connections with no license server at all. After that, users with no valid RDS CAL can’t sign in.

So install and configure licensing well before day 120.

Don’t look for registry tricks that “reset” the grace period. They break the license terms, and Microsoft doesn’t back them. The server then fails again a few months later, at the worst possible moment.

Per Device and Per User CALs after installation

Per Device RDS CALs are handed out and enforced by the license server. Per User CALs are tracked in Active Directory and not enforced. Keeping their number honest is your job.

Point Per Device Per User
Temporary CALs Yes, they last 90 days None
Permanent CAL Valid for a random 52 to 89 days, renews automatically Shows a 60-day expiry that extends while the user keeps signing in
Over-allocation Not possible Possible; nothing blocks it
Revoking Up to 20% of them, when a PC is retired Not available
Reassignment By revoking Not sooner than 90 days, except in special cases such as a long illness
Workgroups Works Can’t be tracked outside a domain

To revoke, right-click the CAL under the server in Remote Desktop Licensing Manager and choose Revoke License.

A workgroup session host should use Per Device RDS CALs.

Per User CALs are never blocked. So a server can happily keep working while you’re out of compliance. That’s exactly what auditors look for.

Tracking Windows Server 2022 CAL usage with PowerShell

The license server exposes two WMI classes. One lists the installed packs. The other lists the CALs already handed out.

Class What it holds
Win32_TSLicenseKeyPack Installed packs
Win32_TSIssuedLicense Issued CALs

Remote Desktop Licensing Manager also builds a Per User usage report. Right-click the server, then Create Report, CAL Usage.

Installed packs and free licenses:

Get-WmiObject -Namespace "Root/CIMV2/TerminalServices" -Class "Win32_TSLicenseKeyPack" -ComputerName "LicenseServer.domain.com" |
    Format-Table KeyPackType, ProductVersion, TotalLicenses, AvailableLicenses -AutoSize

Issued licenses, exported to CSV for the audit folder:

Get-WmiObject -Namespace "Root/CIMV2/TerminalServices" -Class "Win32_TSIssuedLicense" -ComputerName "LicenseServer.domain.com" |
    Export-Csv -Path "C:\LicenseReport.csv" -NoTypeInformation

A warning when fewer than 10% of CALs are left. Schedule it in Task Scheduler, and replace the mail relay with yours.

$LicServer = "LicenseServer.domain.com"
$Packs = Get-WmiObject -Namespace "Root/CIMV2/TerminalServices" -Class "Win32_TSLicenseKeyPack" -ComputerName $LicServer
$Available = ($Packs | Measure-Object -Property AvailableLicenses -Sum).Sum
$Total = ($Packs | Measure-Object -Property TotalLicenses -Sum).Sum
if ($Available -lt ($Total * 0.1)) {
    Send-MailMessage -To "admin@company.com" -From "alerts@company.com" -SmtpServer "mail.company.com" -Subject "Low RDS CAL warning" -Body "Only $Available of $Total RDS CALs left."
}

Several license servers at once:

$LicenseServers = "LicServer1", "LicServer2", "LicServer3"
foreach ($Server in $LicenseServers) {
    Write-Host "License information for $Server" -ForegroundColor Green
    Get-WmiObject -Namespace "Root/CIMV2/TerminalServices" -Class "Win32_TSLicenseKeyPack" -ComputerName $Server |
        Format-Table KeyPackType, TotalLicenses, AvailableLicenses -AutoSize
}

None of this counts base Windows Server CALs. Windows never records them.

For those, a simple spreadsheet does the job: purchases against the number of AD users or managed devices. A dedicated asset tool helps once you pass a few hundred seats.

Fixing common licensing errors

Most errors come from four causes.

Windows Server 2022 CAL licensing errors with their cause, the message you see and what to do about each one.
Illustration: most Windows Server 2022 CAL errors come from an unreachable license server, a wrong mode, the wrong CAL version or a used-up pack.
  • The session host can’t reach the license server.
  • The licensing mode doesn’t match the CAL type.
  • The CALs are the wrong version.
  • The pack is used up.

We’d start every investigation with the RD Licensing Diagnoser on the session host. It usually names the culprit in plain words.

“No Remote Desktop license servers available”

The session host can’t find a license server it trusts. Usually the server name was never set. Or the license server service is stopped. Or a firewall blocks RPC between the two machines.

  • Set the server explicitly, with the cmdlet or the Group Policy setting shown above.
  • Confirm that the Remote Desktop Licensing service, TermServLicensing, is running on the license server.
  • Open RPC traffic between the hosts: TCP 135 plus the dynamic RPC port range.
  • When the hosts sit in another domain, check that the license server is in the Terminal Server License Servers group.

Licenses don’t show up after installation

Packs that seem to install and never appear usually have one of two causes. The server isn’t activated. Or the CAL version is newer than the license server.

Activate first, then add CALs. Keep the license server on a version equal to the CALs, or newer.

Restart-Service TermServLicensing

Still missing after the restart? Rerun the Install Licenses wizard and read any error it shows. Then open the Product Activation portal at aka.ms/aoh, with your license code or agreement number at hand. Volume License Key Management lives there too. Live chat as well, when the case qualifies.

“The remote session was disconnected because there are no Remote Desktop client access licenses available”

This error appears after the grace period. A device or a user asks for a CAL the license server can’t issue.

Typical reason Check
Per Device mode with only Per User CALs installed, or the reverse Compare the mode in deployment properties with the CAL type in Remote Desktop Licensing Manager
2019 CALs in front of a 2022 host Check the pack’s product version against the compatibility table above
Every Per Device CAL already handed out Revoke CALs from retired devices, or add CALs

CALs are used up faster than expected

That almost always comes from Per Device mode with shared or reimaged machines. Each rebuilt PC looks like a new device. Thin clients that are rebuilt nightly are the classic case.

  • Revoke CALs from devices that no longer exist, up to 20% of the Per Device CALs.
  • Re-check whether Per User would fit better now.
  • Look for unknown devices in the issued-licenses export. They sometimes reveal unwanted remote access.

“Too many sessions”, or idle sessions hogging the server

Disconnected sessions don’t free an RDS CAL. They do eat memory, and they can push a host past its session limit. Clearing them gives quick relief while you investigate.

Get-RDUserSession | Where-Object {$_.SessionState -eq "STATE_DISCONNECTED"} |
    ForEach-Object { Invoke-RDUserLogoff -HostServer $_.HostServer -UnifiedSessionID $_.UnifiedSessionId -Force }

For a lasting fix, set time limits for disconnected and idle sessions. They’re in the collection properties, or in Group Policy under the Session Time Limits folder of the Session Host.

Server versions this guide is written for

The steps are written for Windows Server 2022 machines acting as license server and session host, managed from a Windows 11 workstation.

The consoles, the PowerShell module and the Group Policy paths are the same on the 2019 and 2025 releases. The procedure carries over. Only the CAL versions differ, as in the compatibility table.

Role Version Notes
RD license server Windows Server 2022 Standard Automatic activation, domain member
RD Session Host Windows Server 2022 Standard and Datacenter Deployment with Connection Broker and standalone host via Group Policy
Admin workstation Windows 11 Pro 24H2 Remote Desktop client and RSAT

Best practices for managing Windows Server 2022 CALs

It comes down to a few habits. Do this, and an audit becomes an afternoon of printing, not a month of panic.

Area Habit
Inventory One document that lists every CAL purchase: type, version, quantity, license code or agreement number, date and where it’s installed; invoices stored with it
Reconciliation Against the issued-licenses export and the AD user count, at least every quarter
Planning User vs Device re-checked every time the organisation changes shape; growth forecast before the pack runs out
Deployment All session hosts in a farm pointed at the same license server; its configuration documented for disaster recovery; CAL packs split across two activated license servers in larger environments
Compliance Your own audit before anyone else’s; written rules for assigning and reclaiming licenses; records of decommissioned servers; the 90-day reassignment rule for Per User CALs
Security Few people with admin rights on the license server; changes logged; odd usage spikes treated as a security signal too

A move to hot desks or a new shift pattern can flip the User-or-Device answer. And we’d forecast growth before the pack runs dry, not after users call.

On upgrades: servers bought from now on are often Windows Server 2025. Its CALs also cover your 2022 hosts. That makes them the safer purchase if both versions will run side by side.

Our overview of Windows Server 2025 editions and changes helps with that plan.

Technical enforcement differs between CAL types. The legal requirement doesn’t. Every base CAL and every RDS CAL in use must be owned.

Still activating the server itself? Our Windows Server 2022 activation guide covers every edition. The guide to enabling RDP on Windows Server handles the remote access side.

Browse the full range of Windows Server licenses when you plan the next upgrade.

Before an audit: a short checklist

  • Invoices and license codes for every CAL pack, in one folder.
  • A current export of issued RDS CALs.
  • The count of AD users or managed devices, with the date.
  • The licensing mode of each RDS deployment.
  • A note of every Per User reassignment.
  • Records of servers taken out of service.
  • The name of the person who owns the license file.
  • The date of the last reconciliation, written next to the totals.

Typical CAL licensing problems

Sessions stop after 120 days

Symptom: a session host works for four months with no license server, then nobody can sign in. Cause: the grace period ran out. Fix: install the licensing role, add the pack and set the mode. Sessions come back.

Licensing mode doesn’t match the CALs

Per User CALs installed, deployment set to Per Device. Devices keep getting temporary licenses until those run out. One change in the deployment properties ends it.

A 2019 CAL pack on a 2022 session host

An older CAL pack goes in for a new session host. The diagnoser reports no licenses available for that version. A 2022 pack on the same license server is accepted at once.

Reimaged thin clients draining Per Device CALs

Per Device CALs vanish week by week. Thin clients reimaged every night? Each rebuild counts as a new device. A switch to Per User stops the drain. Domain-joined hosts only, though.

Per User CALs on a workgroup server

A session host in a workgroup, with Per User CALs. The license manager can’t track them there. In Per Device mode the counts become clear.

FAQ

Do I need a Windows Server 2022 CAL if users only access file shares?

Yes. Any user or device that authenticates to the server needs a Windows Server CAL. The same goes for its file, print and directory services. RDS CALs come on top, only for Remote Desktop sessions.

Can I use Windows Server 2019 RDS CALs on a Windows Server 2022 session host?

Nope. RDS CALs must be the same version as the session host, or newer. A 2022 host accepts RDS CALs for 2022 or 2025. CALs for 2019 only work with hosts on 2019 and 2016.

Where do I enter Windows Server User CALs?

Nowhere. Base Windows Server CALs aren't installed or enforced by Windows. You keep the purchase records as proof of compliance. Only RDS CALs go into Remote Desktop Licensing Manager.

How many people can use Remote Desktop on Windows Server 2022 without RDS CALs?

Two simultaneous sessions for administration are included. Regular users who work in Remote Desktop sessions need RDS CALs. A new session host works for 120 days, and then we'd expect it to ask for a license server.

Should I buy Per User or Per Device RDS CALs?

Depends. Per User when each person connects from several devices. Per Device when several people share one computer, such as shift workers. On workgroup servers we'd use Per Device, because Per User CALs can't be tracked outside a domain.

Can I move a Per User RDS CAL to a new employee?

Yes. Microsoft's terms expect a license to stay with a user for at least 90 days before you reassign it. Special cases such as a long absence are the exception. We'd keep a note of each reassignment for the audit file.

Do my 2019 user CALs cover a new 2022 server?

Nope. A CAL covers its own server version and older ones. A Windows Server 2022 machine needs 2022 or 2025 CALs, base and RDS alike. The license server for 2022 RDS CALs has to run 2022 or newer too.