2012-05-30 70 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

相關問題