How to Check Hard Drive Health and Operational Status in Windows 11 Using PowerShell Get-PhysicalDisk

Storage device failures often develop gradually through accumulating bad sectors, controller timeouts, or flash degradation. While third-party drive inspection tools exist, Windows 11 includes enterprise-grade storage diagnostics within PowerShell via the native Storage module. The Get-PhysicalDisk cmdlet provides an immediate, hardware-level diagnostic report on physical drives connected to your system, detailing health status, operational condition, interface bus types, and media architectures without requiring external software installations.

Why Use PowerShell Get-PhysicalDisk for Storage Diagnostics?

Unlike standard File Explorer properties that only reflect logical volume capacity and filesystem flags (such as NTFS or exFAT), Get-PhysicalDisk communicates directly with the Windows Storage Spaces and disk subsystem drivers. It queries hardware controllers to extract low-level operational indicators, distinguishing between mechanical hard drives (HDDs), solid-state drives (SSDs), and non-volatile memory express (NVMe) devices. System administrators and power users rely on this cmdlet to detect failing drives before unrecoverable data loss occurs.

Launching PowerShell with Administrative Privileges

Querying physical storage controllers requires elevated security permissions. To launch an administrative PowerShell session in Windows 11:

  1. Right-click the Start button on the taskbar (or press Windows Key + X).
  2. Select Terminal (Admin) or PowerShell (Admin) from the Power User menu.
  3. Click Yes when prompted by User Account Control (UAC).

Running the Basic Get-PhysicalDisk Diagnostic Query

In the elevated terminal window, type the following cmdlet and press Enter:

Get-PhysicalDisk

PowerShell outputs a tabular inventory of all internal and external physical storage drives connected to your motherboard:

Number FriendlyName              SerialNumber    MediaType CanPool OperationalStatus HealthStatus Usage            Size
------ ------------              ------------    --------- ------- ----------------- ------------ -----            ----
0      Samsung SSD 980 PRO 1TB   S5GXNF0R123456X SSD       False   OK                Healthy      Auto-Select 931.51 GB
1      WDC WD20EZAZ-00GGJB0      WD-WCC4M1234567 HDD       False   OK                Healthy      Auto-Select   1.82 TB

Interpreting HealthStatus and OperationalStatus Indicators

Evaluating the health of your storage relies on two critical columns returned by the cmdlet:

  • HealthStatus:
    • Healthy: The drive controller reports nominal operational telemetry and passes internal self-tests without critical errors.
    • Warning: The disk has encountered recoverable errors, spare block reallocation thresholds, or elevated thermal metrics. Create an immediate data backup.
    • Unhealthy: Severe hardware degradation, persistent bad blocks, or impending controller failure has occurred. Replace the drive promptly.
  • OperationalStatus:
    • OK: The drive operates normally and accepts read/write instructions without interruption.
    • Degraded: The drive experiences degraded throughput, communication drops, or failing array parity.
    • Predictive Failure: The S.M.A.R.T. subsystem has flagged impending mechanical or flash cell exhaustion.
    • Lost Communication: The operating system cannot maintain a steady data bus connection to the controller.

Extracting Detailed Drive Specifications and Bus Types

To inspect connection bus architectures (such as NVMe, SATA, or USB) alongside physical drive model numbers, format the output with targeted properties:

Get-PhysicalDisk | Select-Object DeviceId, FriendlyName, MediaType, BusType, OperationalStatus, HealthStatus, Size

This command reveals whether an SSD communicates across the high-speed PCIe NVMe bus or a legacy SATA interface, which is particularly useful when auditing hardware configurations on newly assembled systems.

Filtering for Unhealthy or Failing Storage Disks

If you manage multiple drives and want a command that highlights only drives requiring urgent attention, pipe Get-PhysicalDisk through a filter condition:

Get-PhysicalDisk | Where-Object { $_.HealthStatus -ne 'Healthy' -or $_.OperationalStatus -ne 'OK' }

If this query returns no output, all connected physical drives are functioning in a healthy state with zero hardware warnings flagged by Windows 11.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.