|
2011/03/29(Tue) 01:09:20 編集(投稿者)
■No58188 (たか@WEB屋 さん) に返信 >>> 最初に発見したハードディスクのボリュームラベルを取得して WMI ベースで問い合わせるならこんな感じ。
// MediaType = 12 は固定ディスク var wql = "SELECT DeviceID, VolumeSerialNumber FROM Win32_LogicalDisk WHERE MediaType = 12";
using(var query = new ManagementObjectSearcher(wql)) using(var disks = query.Get()) { foreach( var mo in disks ) { object dev = mo["DeviceID"]; object vol = mo["VolumeSerialNumber"]; Console.WriteLine("{0} - {1}", dev, vol); mo.Dispose(); return (string)vol; } } return null;
> 気に入って一人で複数購入してくれる人も結構いてうまく回ってますよ HDD シリアルとは異なり、HDD のボリュームシリアルは、 単体では固有キーになりえませんので注意してください。 (MACアドレスなど、他のキーと組み合わせて使う分には良いですが)
たとえばディスクイメージをコピーした場合、ボリュームシリアルも複製されます。
それゆえメーカー製PCの場合、同系統の型番だと、複数台の PC で ボリュームシリアルが同一になっていることも、さほど珍しくありません。 複数台の PC を一括導入した事業所などでライセンスされた場合、 それらが同じ文字列を返してくる可能性があることを考慮しておきましょう。
|