我想知道是否有任何可能导致Windows安装日期发生更改的内容 - 特别是Win32_OperatingSystem类中的InstallDate。 我们在C#中使用ManagementObjectSearcher来获取用于许可目的的各种系统信息,并且在某些计算机上,Windows安装日期已经发生了变化,没有明显的原因。
我一直在努力找出它获取安装日期信息的确切位置,以便在安装新的Service Pack或.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
}
}
答案 0 :(得分:1)
从InstallDate
密钥检索Win32_OperatingSystem WMI类的属性HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
返回的值,此Windows注册表值存储为自1970年1月1日以来的秒数如果您修改该Windows注册表值,然后再次运行WMI查询,您将获得修改后的值。