Get-S2DPhysicalDiskInventory
Inventories all physical disks in the S2D cluster with health, capacity, and wear data.
Synopsis
Queries each cluster node for physical disk properties, reliability counters, and storage pool membership. Classifies each disk as Cache or Capacity tier, detects symmetry anomalies across nodes, and surfaces firmware inconsistencies.
Pool-member disks are deduplicated by UniqueId — because Get-PhysicalDisk on any S2D node returns ALL pool-member disks globally, querying each node individually would otherwise inflate the count by NodeCount×. Node ownership is resolved via Get-StorageNode associations.
Requires an active session from Connect-S2DCluster, or use -CimSession for a direct ad-hoc call.
Syntax
Get-S2DPhysicalDiskInventory
[-NodeName <string[]>]
[-CimSession <CimSession>]Parameters
-NodeName
| Type | string[] |
| Required | No |
| Default | all nodes |
Limit results to one or more specific node names. Example: -NodeName "node01", "node02".
-CimSession
| Type | CimSession |
| Required | No |
| Default | uses module session |
Override the module session and target this CimSession directly. Useful for ad-hoc calls without a full Connect-S2DCluster session.
Outputs
PSCustomObject[] — one object per physical disk.
Key properties returned per disk:
| Property | Description |
|---|---|
NodeName | Cluster node the disk belongs to |
FriendlyName | Disk model/friendly name |
SerialNumber | Disk serial number |
UniqueId | Globally unique disk identifier |
MediaType | NVMe, SSD, or HDD |
Role | Cache or Capacity |
SizeBytes | Raw size in bytes |
Size | S2DCapacity object (TiB + TB dual display) |
HealthStatus | Healthy, Warning, Unhealthy |
OperationalStatus | WMI operational status |
WearPercentage | Percentage of life consumed (NVMe/SSD) |
IsPoolMember | $true if this disk is a storage pool member |
FirmwareVersion | Disk firmware version |
BusType | NVMe, SATA, SAS, etc. |
CanPool | Whether the disk is eligible to be added to a pool |
Examples
All pool-member disks:
Connect-S2DCluster -ClusterName "tplabs-clus01" -Credential $cred
Get-S2DPhysicalDiskInventorySummary table:
Get-S2DPhysicalDiskInventory | Format-Table NodeName, FriendlyName, Role, Size, HealthStatus, WearPercentageFilter to specific nodes:
Get-S2DPhysicalDiskInventory -NodeName "node01", "node02"Show only unhealthy disks:
Get-S2DPhysicalDiskInventory | Where-Object HealthStatus -ne 'Healthy'Check wear on all NVMe drives:
Get-S2DPhysicalDiskInventory |
Where-Object MediaType -eq 'NVMe' |
Select-Object NodeName, FriendlyName, SerialNumber, WearPercentage |
Sort-Object WearPercentage -Descending