# 远程桌面 120 天宽限期重置 ## 场景 Windows Server 装了「远程桌面服务」角色,但没配许可证服务器,或者只是临时用一下。 RDS 会给 120 天宽限期,到期后远程桌面只允许控制台登录,普通用户连不进来。 测试机、临时环境需要把计时重新开始。 !!! note "先说清楚" 这是重置**评估期**,不是拿到授权。生产环境请部署 RD 授权服务器并购买 CAL。 域里如果已经指向了许可证服务器,根本没有宽限期,也不需要这篇的操作。 ## 前置条件 - Windows Server 2012 R2 / 2016 / 2019 / 2022,已装 RDS 会话主机角色 - 本地管理员权限,能改注册表所有者 - 能接受重启(会断开所有在线会话) - 先看当前还剩几天:`lsdiag.msc`(RD 授权诊断器) ## 配置 ### 方法一:PsExec 以 SYSTEM 身份删(推荐) `GracePeriod` 这个键默认只有 SYSTEM 能删,管理员直接删会提示拒绝访问。 ```powershell # 下载 PsExec 后,用 SYSTEM 权限打开注册表编辑器 PsExec64.exe -s -i regedit.exe ``` 在弹出的注册表编辑器里定位到: ``` HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod ``` 右键删掉整个 `GracePeriod` 键(只删里面的 `Tl` 值也可以,但删整个键更干净),然后重启。 ### 方法二:改所有者后手动删 不想用 PsExec 的话: 1. `regedit` → 定位到上面的路径 2. 右键 `GracePeriod` → 权限 → 高级 3. 所有者改成 `Administrators`,勾上「替换子容器和对象的所有者」→ 应用 4. 回到权限页,给 `Administrators` 完全控制 5. 删除这个键 ```powershell # 删完确认一下 Test-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" Restart-Computer ``` 重启后系统会重新创建这个键,计时回到 120 天。 ## 验证 ```powershell # 键被重新创建了,说明生效 Test-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" # 看剩余天数 lsdiag.msc ``` 事件日志里也能看到:`事件查看器 → 应用程序和服务日志 → Microsoft → Windows → TerminalServices-Licensing`。 ## 回滚 没有「回到之前的剩余天数」这种回滚——删掉就是重新计时。真出问题先看服务: ```powershell Get-Service TermService, SessionEnv, UmRdpService | Format-Table Name, Status ``` 要回到合规状态只有一条路:部署授权服务器、装 CAL、指向它。 ## 坑 - **直接删一定失败**:键的所有者是 `NT SERVICE\TrustedInstaller`,Administrators 只有读权限。 - **只删 `Tl` 值有时不生效**,删整个键更保险。 - **必须重启**,删完立刻连是没变化的。 - 域环境里配了许可证服务器的话宽限期是 0 天,这个操作没意义。 - 某些安全软件会把修改这个键当恶意行为拦截,操作前看一眼有没有告警。 - 打补丁或重装 RDS 角色后计时可能被重置,别指望一次操作永久有效。