自动夏令时调整:Windows在哪里/如何记住它已经进行了时间转移?


1

有谁知道Windows记得夏令时调整的“实际状态”?

我的问题与整个硬盘被“写保护”的信息亭系统有关。(我说的是EWF写过滤器,这不是硬件写保护。但是所有写入的内容都存储在RAM中,并且在计算机关闭时会被遗忘)。

当Windows将夏季更改为冬季(夏令时)或其他方式时,必须记住这一转变已经完成。否则,每次计算机启动时它都会改变时间。我试着为我的系统解决这个问题。

我想在时间改变时手动将此信息写入硬盘(基于文件的写过滤器)。但我无法找到存储信息的文件或注册表项。有没有人以前解决过这个问题?

问候

编辑:更清楚:我希望防止写过滤系统在日期大于最新夏令时转换时每次重启时转移时间。Windows必须有一个标记/标记/文件,它记得“我已经做了转变”。


值得指出的是。通常,大多数管理员会做的是,解冻HDD并允许此更改,然后再次冻结HDD。我认为您仍然必须对此设备应用安全更新吗?如果您不能这样做,请考虑切换到UTC,并允许您首先避免夏令时调整。
Ramhound 2016年

这就是它现在的工作方式。但是这些系统没有连接到可靠的能源,因此一年两次有些系统出现故障......安全更新是部署新映像的问题。我不能在凌晨2点完成这一切。感谢您对此主题的非常好的评论,您对注册表项的提示非常有帮助!
Nibbels 2016年

第二种选择是编写自己的应用程序,它确定是否应该应用夏令时,这可能是一个简单的任务,当用户访问机器时启动服务。我确实可以通过没有管理员权限的应用程序修改TimeZoneInformation,除非因组策略拒绝访问(虽然很容易解决)
Ramhound 2016年

Answers:


1

可以在这里找到 -

 System Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
    Value Name: DynamicDaylightTimeDisabled
    Data Type: REG_DWORD
    Value Data: 0

net stop w32time && net start w32time在cmd中更改此设置后,您可能需要重新启动w32time服务


我想这会禁用自动切换。我真的想让这个自动切换加上“提交”更改标志(或其他)到磁盘。整个磁盘都是写保护的,但我可以定义一个排除列表。如果我知道信息的存储位置,问题就会消失(并可能帮助其他人)。
Nibbels 2016年

您的Reg-Key是否禁用自动切换,或者这是“It is NOT = 0 summertime”的定义?
Nibbels 2016年

@Nibbels -让我们去到文档DynamicDaylightTimeDisabled. This particular key, "Disable automatic set of daylight savings time in Windows 7", with a value of 1. The information you are looking for is stored within the \控制\ TimeZoneInformation` HKEY_LOCAL_MACHINE \系统\ CurrentControlSet
Ramhound

好的,Narzard,谢谢你的回答,但我想这不是我想要的。IMAGE SCREENSHOT这是Ramhound建议的注册表项。我会更深入地研究它。
Nibbels 2016年

msdn.microsoft.com/en-us/library/windows/desktop/...我觉得这个解决方案有一个暗示
Nibbels 2016年

0

计算机时间管理和嵌入式系统(标准版7 SP1)https://msdn.microsoft.com/en-US/library/ff794720 ( v= winembedded.60) .aspx

默认情况下,Microsoft Windows假定存储在CMOS时钟中的日期/时间是本地时间。由于默认日期/时间是本地时间,因此必须定期调整CMOS时钟,以便在DST适用于给定时区配置时考虑DST与标准时间之间的转换。这与其他操作系统形成对比,后者可能假设存储在CMOS时钟中的日期/时间是UTC。CMOS时钟不存储与时区或DST相关的信息。因此,在启用写入筛选器或在单个系统上安装和使用多个操作系统时,这可能会产生问题。

CMOS时钟自动调整:

“调整CMOS时钟后,还将调整ActiveTimeBias注册表项以反映用于配置CMOS时钟的新值。”

那么这是我的答案的解决方案。Windows每年两次通过确认ActiveTimeBias不符合需求来了解它应该重新配置时钟:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"ActiveTimeBias"=dword:ffffff88


0xffffff88 = 2^32 -120minutes = -2h

UTC - (-120 minutes) = Local Time

(我有GMT + 1,等于UTC + 1h,夏令时= + 1h)

  UTC + Bias + (DST?1:0)*DaylightBias = UTC + ActiveTimeBias = LocalTime

如果此公式不为True:则Windows会更正时钟并重写ActiveTimeBias。到目前为止,这是我的问题的答案,我无法解决这么长时间。


我可能必须在此时修复ActiveTimeBias但是:在https://msdn.microsoft.com/en-US/library/ff794720(v=winembedded.60)中有一个注释和Boot-Sequence的图片 。 aspx @“CMOS时钟自动调整”,指出:

“因此,在启用写入过滤器(系统卷)时,记录已更新CMOS时钟所需的注册表更改不会保留。同样,您无法使用注册表过滤器来解决此问题,因为注册表过滤器是没有在启动序列中尽早启用,以防止在先前调整时钟后调整时钟。“

这导致我得出结论,我正在解决错误的Bug?好吧,我有一些XP-Systems,也许只有他们有问题。微软可能会fixed the Time-BugWindows 7 Embedded,但不是在早期版本。我会密切关注这一点。否则这个答案是错误的,我必须查看系统的这种疲劳行为的另一个原因。


你能花一点时间使用报价块吗?在我阅读这篇文章之前,我对这个答案的初步反应是对这个答案的质量进行评论并留下评论。
Ramhound 2016年

对不起,Blockquotes:我会调查一下!
Nibbels 2016年

另外的想法:如果我在我的CMOS时钟中使用UTC(并且Windows会这样做)时钟本身不必每年重写两次)这可能是我遇到的上层问题的最终解决方案。
Nibbels 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.