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
}
}