ボリュームシリアルを取得するために、次のような関数を作成しました。
string drive = Environment.ExpandEnvironmentVariables("%SystemDrive%").Replace(":", "");
string id = getVolumeSerial(drive);
private static string getVolumeSerial(string drive)
{
ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid="""
+ drive + @":""");
disk.Get();
string volumeSerial = disk["VolumeSerialNumber"].ToString();
disk.Dispose();
return volumeSerial;
}
それを含むソフトウェアを30人に展開しましたが、31のコンピューターでは、ManagementObjectの初期化が失敗し、例外が発生します。ボリュームシリアル番号を取得するためのより良い/代替/より信頼性の高い方法はありますか?