// GetLogicalDiskReport.cs // // Reports Logical Disks via WMI (Win32_LogicalDisk). // // Requires the System.Management package: // dotnet new console -o LogicalDiskReport // dotnet add package System.Management // (replace the generated Program.cs with this file, then dotnet run) // On .NET Framework, System.Management is already available — just // add a reference to it in your project. using System; using System.Management; var searcher = new ManagementObjectSearcher("SELECT DeviceID, VolumeName, Size, FreeSpace, DriveType FROM Win32_LogicalDisk"); int count = 0; foreach (ManagementObject item in searcher.Get()) { Console.WriteLine($"DeviceID: {item["DeviceID"]}"); Console.WriteLine($"VolumeName: {item["VolumeName"]}"); Console.WriteLine($"Size: {item["Size"]}"); Console.WriteLine($"FreeSpace: {item["FreeSpace"]}"); Console.WriteLine($"DriveType: {item["DriveType"]}"); Console.WriteLine(new string('-', 40)); count++; } if (count == 0) { Console.WriteLine("No Logical Disks found."); } else { Console.WriteLine($"\n{count} Logical Disks found."); }