必须禁用sesystemtimeprivilege权限才能真正阻止普通用户修改系统时间;通过secpol.msc移除users、everyone等非管理员账户的“更改系统时间”权限,保留administrators和system,注销后生效。
要真正阻止普通用户(包括标准账户、域普通用户、来宾账户)修改系统时间,必须从 windows 权限底层切断其调用 setsystemtime api 的能力——核心是禁用 sesystemtimeprivilege(更改系统时间)这一用户权限。仅隐藏界面或关闭自动同步是无效的,powershell(set-date)、命令行(date/time)、wmi 或第三方工具仍可绕过。
移除非管理员用户的“更改系统时间”权限
该操作直接撤销用户调用时间修改接口的资格,是唯一能全面阻断所有修改途径(图形界面、命令行、脚本、服务)的手段。
- 按 Win + R 输入
secpol.msc回车,以管理员身份打开本地安全策略(若提示权限不足,请右键“运行”选择“以管理员身份运行”) - 左侧依次展开 → 本地策略 → 用户权限分配
- 右侧列表中向下滚动,找到并双击“更改系统时间”
- 在弹出窗口中,选中所有非管理员账户条目——包括
Users、Everyone、具体用户名(如Student、Guest),逐个点击“删除” -
务必保留
Administrators和SYSTEM,否则管理员自身也将失去修改权 - 点击“确定”保存。策略无需重启,但需用户重新登录(注销或切换用户)才生效
补充验证与加固建议
权限移除后,普通用户将无法通过任何方式修改时间,但仍建议做以下验证和加固:
- 登录一个标准账户,尝试右键任务栏时间→“调整日期/时间”,应无响应或报错;进入“设置→时间和语言→日期和时间”,手动开关会灰显或点击无效
- 在标准账户下运行 PowerShell,执行
Set-Date "2025-01-01",应提示“拒绝访问”或“权限不足” - 如需同步屏蔽图形入口(如统一终端管理场景),可叠加组策略:
gpedit.msc→ 计算机配置 → 管理模板 → 控制面板 → 日期和时间 → 启用“防止用户调整日期和时间” - 家庭版若无
secpol.msc,可用注册表权限控制替代:定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation,将该键的所有者改为 Administrators,清除继承权限,并拒绝普通用户写入
不复杂但容易忽略:这个权限默认就赋予 Users 组,所以即使没动过策略,普通用户本来就能改时间。关键不是“加限制”,而是“删默认”。











