On which physical drive is this logical drive?
The easiest and most obvious way would be to use Computer Management.
Computer Management is located through Start > Control Panel > Administrative Tools > Computer Management
From here, find Storage > Disk Management
Alternatively, you can type diskmgmt.msc
in the Run Dialog or from a Command Prompt.
Diskmanagement gives you the information you requested. All drives, with their partitions, and how they are partitioned.
At the bottom of Disk Management, you'll find a graphical overview of the disks. Rightclicking a disk and choosing properties gives you the information for that specific disk.
If you seek a commandline tool that works similar, then diskpart is what you're after.
WMIC answer:
C:\> wmic diskdrive get index,caption
Caption Index
SAMSUNG HD103SJ 1
C300-CTFDDAC128MAG 2
Samsung SSD 850 EVO 500GB 0
C:\> wmic partition get name,diskindex,index,size
DiskIndex Index Name Size
1 0 Disk #1, Partition #0 1000202043392
2 0 Disk #2, Partition #0 128033226752
0 0 Disk #0, Partition #0 104857600
0 1 Disk #0, Partition #1 499529023488
0 2 Disk #0, Partition #2 471859200
The "DiskIndex" values from the second command line up with the "Index" values from the first command. So you can see that disks 1 and 2 each have a single partition, while disk 0 "Samsung SSD 850 EVO 500GB" has three partitions: two small recovery ones and the main system partition.
Mapping the volumes (C:) etc to partitions seems to be impossible without powershell. See https://stackoverflow.com/questions/4822559/powershell-and-wmi-how-to-map-logical-disk-volumes-to-a-hard-disk-or-vice-versa
You can use PowerShell!
To get the info on a drive from a single partition's drive letter:
Get-Disk (Get-Partition -DriveLetter 'C').DiskNumber
It produces output like this:
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
0 WDC WD7500... <redacted> Healthy Online 698.64 GB GPT
You can tack on a | Format-List
to the original command to get an easier-to-read result with more info:
UniqueId : <redacted>
Number : 0
Path : \\?\scsi<redacted>
Manufacturer :
Model : WDC WD7500BPVX-60JC3T0
SerialNumber : <redacted>
Size : 698.64 GB
AllocatedSize : 750151131136
LogicalSectorSize : 512
PhysicalSectorSize : 4096
NumberOfPartitions : 6
PartitionStyle : GPT
IsReadOnly : False
IsSystem : True
IsBoot : True
To get some info on the drive of each partition:
Get-Partition | % {New-Object PSObject -Property @{'PartitionNumber'=$_.PartitionNumber; 'DiskNumber'=$_.DiskNumber; 'DiskModel'=(Get-Disk $_.DiskNumber).Model; 'PartitionSize'=$_.Size; 'DriveLetter'=$_.DriveLetter}}
It produces a collection of PowerShell objects that you can use like those you get out of real cmdlets. When printed to the screen, its output looks like this (some partitions edited out to save vertical space):
DriveLetter :
DiskNumber : 0
DiskModel : WDC WD7500BPVX-60JC3T0
PartitionSize : 681574400
PartitionNumber : 1
DriveLetter : C
DiskNumber : 0
DiskModel : WDC WD7500BPVX-60JC3T0
PartitionSize : 726793488384
PartitionNumber : 4
DriveLetter : D
DiskNumber : 0
DiskModel : WDC WD7500BPVX-60JC3T0
PartitionSize : 21351104512
PartitionNumber : 6