如何排查 EC2 Windows 实例的时间问题?

上次更新时间:2021 年 6 月 24 日

我想要将 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上的时间设置永久性更改为我的本地时区。但我无法在我的实例上更改时间和日期。如何解决此问题?

简短描述

以下是发生在 Windows 实例上的与时间相关的常见问题:

  • 由于以下原因无法通过系统设置或控制面板更改时间:
    Set Time Zone Automatically(自动设置时区)选项为灰色。
    在尝试通过控制面板更改时间设置时显示 You do not have permission to perform this task(您无权限执行此任务)的错误消息。
  • 时间更改在系统重启后失效。
  • Amazon Time Sync Service 比其他原子钟慢 X 分钟。

最佳做法是为您的实例使用协调世界时间 (UTC) 以避免人为错误。在您的实例上使用 UTC 还有利于跨 AWS CloudWatch 日志、指标、本地日志和其他服务进行同步。您可以在必要时使用不同的时区满足自身需求。

解决方法

无法通过系统设置或控制面板更改时间

Amazon 提供 Amazon Time Sync Service,可通过全部 EC2 实例进行访问。如果您无法更改时区和时间/日期,使用命令提示符窗口配置您的实例上的 Amazon Time Sync Service。

在开始前,使用以下步骤来验证本地组策略编辑器中的 Prohibit access to Control Panel and PC settings(禁止访问控制面板和 PC 设置)策略已被禁用:

  1. 打开本地组策略编辑器
  2. 选择 User Configuration(用户配置)、Administrative Templates(管理模板)、Control Panel(控制面板)。
  3. 高亮显示 Prohibit access to Control Panel and PC settings(禁止访问控制面板和 PC 设置),然后选择 Edit policy setting(编辑策略设置)。
  4. 选择 Disabled(已禁用)。

使用命令提示符更改时区

在验证策略设置后,您可以从命令提示符窗口更改时区

使用命令提示符更改时间和日期设置

  1. 以管理员身份运行命令提示符窗口。
  2. 在命令提示符窗口中输入时间日期,然后选择 OK(确定)。
  3. 在提示符中输入新的时间或日期。
    HH: MM: SS AM/PM 格式输入新的时间。例如,08:35:00 AM。
    mm-dd-yyyy 格式输入新的日期。例如,01-01-2021。

新的时间和日期设置将立即生效。

或者,您也可以使用外部网络时间协议 (NTP) 源。如需了解更多信息,见配置网络时间协议 (NTP)

注意:由于 Citrix Xen 来宾代理服务可能导致时间同步问题,因此最好的做法是更新 Citrix PV 驱动程序至 Amazon PV 驱动程序

时间更改在系统重启后失效

如果您运行的是 Windows Server 2008 或更高版本,添加 RealTimeIsUniversal 注册表项,以便在重启后保留新的时间。

若您的实例是加入到 AWS Managed Microsoft AD 目录的,更改实例上的时间设置以使用域控制器作为时间源,从而避免时间偏移。时间偏移会因为 Kerberos 限制而中断身份验证。这可能导致记录日志到实例时出现问题。为防止发生此情况,确保在重启实例前启用 RealTimeIsUniversal 注册表项。

Amazon Time Sync Service 比其他原子钟慢 X 分钟

要将 Amazon Time Sync Service 重新同步到您的实例,请执行以下操作:

1.    运行以下命令,重置 NTP 服务器以指向 Amazon Time Sync Service 服务器:

w32tm /config /manualpeerlist:”169.254.169.123,0x9” /syncfromflags:manual /update

2.    运行以下命令:

net stop w32time
w32tm /unregister

3.    在实例的 Start(开始)菜单中,选择 Run(运行),然后输入 services.msc。验证 Windows 时间已被删除。

4.    运行以下命令:

W32tm /register
Net start w32time
w32tm /query /configuration /verbose
w32tm /resync /rediscover and w32tm /resync /force
w32tm /query /status /verbose
w32tm /stripchart /computer:169.254.169.123 /period:5
w32tm /query /source

注意:如果您看到本地 CMOS 时钟,等待几分钟,然后再次运行 w32tm /query /source 命令以验证它的源。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?