Windows 可以通过 Windows 时间服务提供时间 /w32tm

Windows 可以通过 Windows 时间服务提供时间 /w32tm

我有一台 Raspberry Pi 和一台 Windows 10 机器,它们将通过 RJ45 直接连接,并位于同一子网中,以便它们可以通信。它们都将完全离线,无法访问互联网,但 Raspberry Pi 上的时间准确很重要。

我知道 PC 比 Raspberry Pi 更能保持时间,所以我希望可以设置一种方法让 Pi 从 PC 中获取时间。这可能吗?

答案1

Windows 可以通过 Windows 时间服务提供时间 /w32tm

Ryan Sizemore 的旧 MSDN 博客条目关于运行 Windows 作为时间服务器:

最近,一位客户问我是否可以使用 w32time 作为其网络上其他计算机和设备的时间源。Windows 时间服务完全可以充当任何符合 NTPv3 标准的设备的时间源。

运行服务器

  1. 启动 w32tm 服务Start the w32tm service

    您可以Windows TimeServices控制面板区域启动该服务。

  2. 通过提升的命令提示符/powershell 进行验证

    Win+x将为您提供一个选项Command prompt (Admin),您可以在其中输入:

    w32tm /query /configuration
    

    您正在寻找这样一行:

    Enabled: 1 (Local)
    
  3. 如果未启用,您可以查询注册表并在必要时添加正确的键:

    询问:reg query HKLM\system\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

    添加:reg add HKLM\system\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled /t REG_DWORD /d 0x1 /f

    更新:w32tm /config /update

使用 Windows PC 作为 Pi 的时间源

你说你已经知道如何让 Pi 使用特定的地址,但是如果你正在运行基于 Debian 的 Pi 发行版(例如拉斯普比),通常可以使用ntpdate,例如

 # ntpdate windowsPCaddr

当提升权限时(即 root / sudo);windowsPCaddr您已经确定的 Windows PC 的地址在哪里。

故障排除

我能够在全新安装的 Windows 10 上找到并启动该服务。但是你可能会得到

The following error occurred: The serveice has note been started. (0x80070426)

Services在这种情况下,您需要从控制面板部分启动该服务(或者可以从开始菜单中通过搜索“服务”找到它 - 它被列为“桌面应用程序”)。

其他人遇到了以下错误:

w32tm does not exist as an installed service

在这种情况下,要使用的命令是:

w32tm /register

[这是]实际的安装方法(使用以管理员身份运行的命令提示符)。有时您需要重新启动才能使一切正常,但实际上我只是等待了一段时间而没有重新启动。

感谢Tomasz Gandor 的回答

相关内容