超过 100 个 Windows 注册表项在短时间内不断发生变化

超过 100 个 Windows 注册表项在短时间内不断发生变化

出于好奇心并作为备份尝试,我将整个 PC 注册表导出到几个文本文件中,所有文件都排列在 git 存储库中(以便能够轻松跟踪注册表更改)。

更具体地说,我使用一个简单的 PowerShell 脚本实现了它的自动化:

reg export HKEY_CLASSES_ROOT ./HKEY_CLASSES_ROOT.reg /y
Get-Content ./HKEY_CLASSES_ROOT.reg | Set-Content -Encoding utf8 ./HKEY_CLASSES_ROOT.txt #convert to git friendly encoding
git add *.txt
git commit -m "$($date.ToString("yyyy-MM-dd"))"

到目前为止一切顺利,但是当我开始比较提交时,我注意到了一件奇怪的事情git diff

即使我在提交之间没有对系统进行任何更改,注册表中似乎仍然会出现 100 多个不同的更改,在很短的时间内(几分钟),但每次这些变化的数量大致相同:

  • HKEY_CLASSES_ROOT\Local Settings => 始终有 32 个已更改的注册表项

  • HKEY_CURRENT_USER\SOFTWARE => 26 次更改

  • HKEY_LOCAL_MACHINE\SOFTWARE => 27 个更改

  • HKEY_LOCAL_MACHINE\SYSTEM => 25 个更改

  • HKEY_USERS => 10 个更改

更改密钥的示例:

  • HKEY_CLASSES_ROOT\本地设置\软件\微软\的Windows\CurrentVersion\AppModel\SystemAppData\Microsoft.MicrosoftOfficeHub_8wexyz\HAM\AUI\Microsoft.MicrosoftOfficeHub\V1\LU

  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\OneDrive\帐户

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack\AsimovUploader

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\SecureTimeLimits

  • HKEY_USERS\S-1-5-21-xyz-1001\SOFTWARE\Microsoft\OneDrive\帐户

改变的值的示例如下所示git diff

 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W32Time\SecureTimeLimits]
-"SecureTimeEstimated"=hex(b):6d,a3,54,d2,b8,3b,d8,01
-"SecureTimeHigh"=hex(b):6d,0b,19,34,c1,3b,d8,01
-"SecureTimeLow"=hex(b):6d,3b,90,70,b0,3b,d8,01
+"SecureTimeEstimated"=hex(b):8a,2e,04,38,ba,3b,d8,01
+"SecureTimeHigh"=hex(b):8a,96,c8,99,c2,3b,d8,01
+"SecureTimeLow"=hex(b):8a,c6,3f,d6,b1,3b,d8,01

我知道其中一些键包含日期(例如 LastUpdate),但为什么每次导出注册表时,即使在很短的时间间隔内,这么多键(100 多个)都不同?感觉其中一些更改只是随机值,而不是计时器。

这是正常的吗?我正在运行 Windows 10 Professional。

答案1

Windows 持续报告其正在做的事情,注册表是其最常用的机制之一。

例如,注册表是资源监视器显示的信息的主要来源之一。您可以在文章中找到技术细节 关于性能计数器。这样的计数器非常多,其中许多计数器每秒都会改变多次。

然而,性能并不是唯一不断变化的信息——一些驱动程序还会不断更新注册表中的状态和数据。

但请放心,一直进行如此多的变化是很正常的,这并不被视为性能问题。

相关内容