0aa8fe6
这次没有正文改动。
这是 windows/远程桌面 120 天宽限期重置.md 的改动记录。后台每次保存都会留一份快照,
这里显示的是快照之间的差异,不会混入其他文章的改动。
还没有后台修改记录。
下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。
0aa8fe6
这次没有正文改动。
032d400
@@ -0,0 +1,91 @@ +--- +tags: [远程桌面, RDP, Windows Server, 授权] +order: 10 +--- + +# 远程桌面 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 角色后计时可能被重置,别指望一次操作永久有效。