Это можно сделать с помощью WMI. В частности, в .NET вы захотите использовать WMI.NET . Чтобы найти конкретное значение, которое вы ищете, я рекомендую вам использовать этот инструмент:
http://thepowershellguy.com/blogs/posh/archive/2007/03/22/powershell-wmi-explorer-part-1.aspx
Это позволяет вам просматривать корень и футзим CIMV2 с запросом до тех пор, пока вы не убедитесь, что он правильный, а затем просто вставьте запрос в код WMI.NET.
Это будет выглядеть примерно так: это :
WqlObjectQuery wqlQuery = new WqlObjectQuery("SELECT * FROM Win32_LogicalDisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wqlQuery);
foreach (ManagementObject disk in searcher.Get())
{
Console.WriteLine(disk.ToString());
}