Fix it now
Event 1128 says the RD Licensing grace period has expired and the Session Host has not registered with a licence server holding installed licences. Event 1129 is the warning that it is about to. A Session Host runs for 120 days without a licence server; after that it refuses sessions.
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetGracePeriodDays()
$obj.GetSpecifiedLicenseServerList()
$obj.LicensingType
- Read the grace period days first. If you are seeing 1129 rather than 1128 you still have time, and that changes how urgently you work.
- On the Session Host open Server Manager, Remote Desktop Services, Overview and run the RD Licensing Diagnoser. It names the missing piece in one line.
- If there is no licence server, add the Remote Desktop Licensing role service to a server, then Server Manager, Tools, Remote Desktop Services, Remote Desktop Licensing Manager, and Action, Activate Server.
- Install the CALs you bought: Action, Install Licenses, then choose the licence programme and enter the agreement or licence number.
- Point the host at the server:
Set-RDLicenseConfiguration -LicenseServer lic.contoso.local -Mode PerDevice -ConnectionBroker cb.contoso.local, or set the two Licensing policies and rungpupdate /force.
Check the licence server’s Windows Server version before you buy. CALs install only on a licence server running the same version or later.
If the Diagnoser reports no issues and users can connect, you are done. If not, the next section explains what the host is actually waiting for.
Why it happens
A newly built RD Session Host accepts connections for 120 days with no licence server and no CALs at all. That is a grace period, not a licence, and Microsoft is explicit about what happens when it ends: clients must have a valid RDS CAL issued by a licence server before they can sign in to a remote session. Users who connected yesterday are refused today, and nothing about the server has changed.
The two events tell you where in that window you are, and they are not the same event twice. Event 1128 reads “The RD Licensing grace period has expired and the service has not registered with a license server with installed licenses”. Event 1129 reads “The RD Licensing grace period is about to expire on <date>” with the same explanation following. Both are written by Microsoft-Windows-TerminalServices-RemoteConnectionManager, and both note that a Session Host can operate without a licence server for 120 days after initial start up.
So 1129 is a warning with a date on it. If that is what your log shows, you have a planning problem rather than an outage, and the date tells you how long you have to solve it. 1128 means the window has closed.
Two licence-server events complete the picture, and they explain why a deployment with a licence server can still fail. Event 22 says the licence server has no RDS CALs installed and registered with the Microsoft Clearinghouse for that product, so it cannot issue CALs of that type to the Session Host. Event 26 says all available CALs of that type for that product have been removed and must be re-registered through RD Licensing Manager. Both are on the licence server, in the TerminalServices-Licensing log, and both mean the same practical thing: the server exists but has nothing to hand out.
There is no licence server at all
You have this one if 1128 or 1129 on the host, and the RD Licensing Diagnoser reports no licence server configured.
- Add the Remote Desktop Licensing role service to a server through Server Manager, Add Roles and Features.
- Open Server Manager, Tools, Remote Desktop Services, Remote Desktop Licensing Manager, select the server and choose Action, Activate Server.
- Complete the wizard with your company information, choosing Automatic connection if the server has outbound access on TCP 443 to the Microsoft Clearinghouse.
- Install the CAL packs with Action, Install Licenses.
The licence server holds no CALs for that product
You have this one if Event 22 on the licence server: no RDS CALs installed and registered with the Clearinghouse for the product the host is asking about.
- Open Remote Desktop Licensing Manager on the licence server and read the installed CAL packs by product and version.
- Buy and install CALs matching the products your Session Hosts run.
- Confirm the licence server’s own Windows Server version is the same as the CALs or later, or the packs cannot be installed at all.
The CALs were removed from the licence server
You have this one if Event 26: all available CALs of a type and product on the licence server have been removed.
- Open Remote Desktop Licensing Manager and re-register the RDS CALs, which is the remedy Microsoft names in the event text.
- Check whether the licensing database was rebuilt or the server reinstalled – that is the usual reason CALs disappear.
- Confirm the issued counts return before telling users to reconnect.
The licensing mode does not match the CALs you own
You have this one if A licence server with CALs installed, a host configured to use it, and sessions still refused.
- Read the mode on the host:
$obj.LicensingTypefrom the WMI object, or the LicensingMode registry value – 2 is Per Device, 4 is Per User. - Set it to match the CAL type you actually bought with
Set-RDLicenseConfiguration -Mode PerDeviceor-Mode PerUser. - Re-run the RD Licensing Diagnoser and reconnect a test user.
A Per Device host will not consume User CALs and a Per User host will not consume Device CALs. This mismatch is free to fix and frequently mistaken for a shortage.
The host cannot reach the licence server
You have this one if The host names a licence server, and the Diagnoser reports it as unavailable.
- Confirm the Remote Desktop Licensing service is running on the licence server.
- Open RPC between them: TCP 135 plus the dynamic range TCP 49152 to 65535 on Windows Server 2008 and later.
- Confirm name resolution for the licence server from the host, and use its fully qualified name in the configuration.
Full reference
Reading the grace period
wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL GetGracePeriodDays
This is the number that decides how you handle the ticket. Days remaining means you are looking at Event 1129 and you can plan the purchase properly. Zero means Event 1128, and users are already being refused.
Which event is on which machine
| Event | Source | Where | What it says |
|---|---|---|---|
| 1128 | TerminalServices-RemoteConnectionManager | RD Session Host | The grace period has expired and the service has not registered with a licence server with installed licences |
| 1129 | TerminalServices-RemoteConnectionManager | RD Session Host | The grace period is about to expire on a named date, with the same explanation |
| 22 | TerminalServices-Licensing | Licence server | No RDS CALs installed and registered with the Clearinghouse for that product |
| 26 | TerminalServices-Licensing | Licence server | All available CALs of that type and product have been removed; re-register them |
Where the configuration actually lives
| Path | Values | Notes |
|---|---|---|
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services |
LicenseServers, LicensingMode | Set by Group Policy. Takes precedence |
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core |
LicensingMode | Set by the Remote Desktop Services console |
HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers |
SpecifiedLicenseServers | Set by the console |
LicensingMode is 2 for Per Device and 4 for Per User. The precedence order is domain Group Policy, then local policy, then the console setting, which is why a change made in the console can appear to do nothing on a host inside a GPO scope.
Choosing between User and Device CALs
| Per Device | Per User | |
|---|---|---|
| Assigned to | A physical device | A user in Active Directory |
| Tracking | Works regardless of Active Directory membership | Cannot be tracked within a workgroup |
| Revocation | Up to 20 per cent of installed CALs may be revoked | Cannot be revoked |
| Temporary CALs | 90 days validity on first sign-in | Not available |
| Permanent CAL validity | 52 to 89 days before renewal | 60 days before renewal, 90 before reassignment |
| Over-allocation | Cannot be over-allocated | Can be, in breach of the agreement |
Version rules that decide what you can buy
- RDS CALs must be compatible with the Windows Server version the user or device connects to. Later CALs work against earlier Session Hosts; earlier CALs do not work against later ones.
- The licence server itself must run the same version of Windows Server as the CALs, or later. Windows Server 2025 CALs need a Windows Server 2025 licence server.
- Check the licence server’s version before ordering. This is the rule that turns a purchase into an upgrade project, and finding out afterwards is expensive.
- RDS CALs sit on top of Windows Server CALs. They do not replace them.
When a licence is the actual fix
Once 1128 appears, the deployment has been running on a trial and the trial has ended. RDS CALs are the fix and no configuration change substitutes for them. Two things decide what to order. First, the mode: Device CALs suit shift work and shared machines where several people use one terminal through the day; User CALs suit staff who connect from more than one device each. A host set to one mode will not consume CALs of the other, so buy to match the mode you run. Second, and easily missed, the version: CALs install only on a licence server running the same Windows Server version as the CALs or later, so check that server’s version before ordering rather than after. Send us your Session Host and licence server versions, your licensing mode and your user or device count, and Arco will supply RDS CAL packs that will actually install, along with the agreement details the Install Licenses wizard asks for.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
Event ID 1128 |
TerminalServices-RemoteConnectionManager on the Session Host: the RD Licensing grace period has expired and the service has not registered with a licence server with installed licences. A Session Host operates without one for 120 days after initial start up | Microsoft Learn |
Event ID 1129 |
The same source: the RD Licensing grace period is about to expire on the named date. This is the advance warning, not the expiry | Microsoft Learn |
Event ID 22 |
TerminalServices-Licensing on the licence server: no RDS CALs are installed and registered with the Microsoft Clearinghouse for that product, so none can be issued to the Session Host | Microsoft Learn |
Event ID 26 |
TerminalServices-Licensing: all available RDS CALs of that type for that product have been removed from the licence server. Use RD Licensing Manager to re-register them | Microsoft Learn |
Confirm the fix worked
GetGracePeriodDays()is no longer counting down towards zero on the Session Host, because the host is now getting CALs.- The RD Licensing Diagnoser on the Session Host reports no issues.
- Remote Desktop Licensing Manager shows the CAL packs installed and the issued count rising as users connect.
- The licensing mode on the host matches the CAL type installed on the server.
- A test user connects and stays connected, and Event 1128 stops recurring.
Questions people ask about this
Can the 120-day grace period be extended?
No. It is a fixed window that begins when the Session Host first starts, and there is no supported way to extend or reset it. Anything that claims to is tampering with licensing state.
I am seeing 1129 rather than 1128. How urgent is this?
Less urgent, and the event tells you exactly how much less: 1129 is the warning that the grace period is about to expire and names the date. Use the time to buy the right CALs for the right licence server version rather than rushing.
We have a licence server and CALs and it still fails. Why?
Check the mode. A host set to Per Device will not consume User CALs and vice versa, and that mismatch produces refusals on a server with plenty of licences. Check the CAL version too – CALs older than the Session Host’s Windows Server version do not work.
Which CALs should we buy?
Device CALs where machines are shared by shifts; User CALs where people connect from several devices each. Buy the version matching your newest Session Host, and check that your licence server can hold them – it must run the same Windows Server version as the CALs or later.
Do RDS CALs replace Windows Server CALs?
No. RDS CALs are additional to Windows Server CALs, not a substitute for them. Both are needed for users or devices connecting to a Remote Desktop Services deployment.
