2012-05-30 204 views
1

我想知道是否有任何可能导致Windows安装日期改变 - 从Win32_OperatingSystem类专门InstallDate。 我们使用ManagementObjectSearcher在C#中获得许可目的的各种系统信息,并在某些计算机上,Windows安装日期改变没有明显的原因。什么可以导致Windows InstallDate更改?

我一直在试图找出到底是哪里来的,为了获得对安装日期的信息制定出如果要安装新的服务包或.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 
    } 
} 

回答

1

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

+0

谢谢,我已经找到了该注册表项,但不知道是否是那个WMI用的是同一个。这仍然没有解释它可能会如何变化,但... – standgale

+0

据我现在这个值没有修改,当你应用一些Windows更新。所以也许这个值是由用户手动改变的。 – RRUZ

+0

可能一般,但(可惜?)不太可能在软件跳水多个用户有进入注册表! – standgale

相关问题