1

我想知道是否有任何可能导致 Windows 安装日期更改 - 特别是 Win32_OperatingSystem 类中的 InstallDate。我们使用 C# 中的 ManagementObjectSearcher 来获取各种系统信息以用于许可目的,并且在某些计算机上,Windows 安装日期已无明显原因更改。

我一直试图找出它从何处获取安装日期信息的确切位置,以便确定安装新的服务包或 .net 版本是否可能导致此问题,但无济于事。

不幸的是,我们甚至看不到它的变化,因为信息是散列的(好吧,我们可能会看到它已经变成了什么,但我们不得不再次打扰客户)。

我想可能发生的另一件事是日期时间从一种格式到另一种格式的转换可能由于某种原因而发生了变化,但我无法解决它是否可能。这就是我们正在做的事情:

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
foreach (ManagementObject wmi_Windows in searcher.Get())
{                   
  try
  {
    s = wmi_Windows["InstallDate"].ToString();
    DateTime dc = ToDateTime(s);
    WindowsInfo.InstallDate = dc.AddTicks(-TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Ticks).ToLocalTime().ToString();
     break;
   }
   catch (Exception ex)
   {
     //stuff here
   }
 }
4

1 回答 1

1

Win32_OperatingSystem WMI 类的属性返回的值InstallDate是从 Key 中检索的,此 windows 注册表值存储为自 1970 年 1 月 1 日以来的秒数。如果您修改该 windows 注册表值,然后再次运行 WMI 查询,您将获取修改后的值。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

于 2012-05-30T03:56:19.000 回答