Scope – Lab, PoC, break-fix.
Not a licensing substitute. Buy & install CALs before production rollout.
(Get-CimInstance -Namespace root/CIMV2/TerminalServices `
-Class Win32_TerminalServiceSetting).GetGracePeriodDays().DaysLeft| Scenario | Command |
|---|---|
| Local box (SYSTEM) | psexec -s -i reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /f |
| Local box (explicit \localhost) | psexec \\localhost -s -i reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /f |
| Remote host | psexec \\SRV-RDS01 -u DOMAIN\Admin -p **** -s -i reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /f |
What the command does:
Runs reg delete as NT AUTHORITY\SYSTEM, removing the binary value that stores the grace-period timer.
Restart-Service TermService -Force # faster
#—or—
Restart-Computer -Force # safer if other RDS pieces are mis-behaving(Get-CimInstance -Namespace root/CIMV2/TerminalServices `
-Class Win32_TerminalServiceSetting).GetGracePeriodDays().DaysLeft
# → ~120iex "& { iwr -useb 'https://gist.githubusercontent.com/.../reset-rds-lab.ps1' }"(Replace with your own hosted script containing the above steps.)
-
Install-WindowsFeature RDS-Licensing -IncludeManagementTools -
Activate the license server in Remote Desktop Licensing Manager
-
Install RDS CALs
-
On each Session Host:
(Get-WmiObject -Namespace root\cimv2\TerminalServices ` -Class Win32_TerminalServiceSetting).SetSpecifiedLicenseServerList("RDS-LIC01.domain.local") (Get-WmiObject -Namespace root\cimv2\TerminalServices ` -Class Win32_TerminalServiceSetting).ChangeMode(4) # 4 = Per User, 2 = Per Device
- StarWind blog – “Reset 120-Day RDS Grace Period on Windows Server 2022”
GetGracePeriodDaysmethod (WMI) – Microsoft Docs- WMIC is deprecated – use CIM / PowerShell instead