????
Current Path : C:/Windows/SysWOW64/WindowsPowerShell/v1.0/Modules/Storage/ |
Current File : C:/Windows/SysWOW64/WindowsPowerShell/v1.0/Modules/Storage/Storage.format.ps1xml |
<?xml version="1.0" encoding="utf-8"?> <Configuration> <Controls> <Control> <Name>DeviceInformation</Name> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <Text>DeviceNumber : </Text> <ExpressionBinding> <PropertyName>DeviceNumber</PropertyName> </ExpressionBinding> <NewLine/> <Text>DeviceGuid : </Text> <ExpressionBinding> <PropertyName>DeviceGuid</PropertyName> </ExpressionBinding> <NewLine/> <Text>FriendlyName : </Text> <ExpressionBinding> <PropertyName>FriendlyName</PropertyName> </ExpressionBinding> <NewLine/> <Text>SerialNumber : </Text> <ExpressionBinding> <PropertyName>SerialNumber</PropertyName> </ExpressionBinding> <NewLine/> <Text>AdapterSerialNumber : </Text> <ExpressionBinding> <PropertyName>AdapterSerialNumber</PropertyName> </ExpressionBinding> <NewLine/> <Text>FirmwareRevision : </Text> <ExpressionBinding> <PropertyName>FirmwareRevision</PropertyName> </ExpressionBinding> <NewLine/> <Text>BusType : </Text> <ExpressionBinding> <PropertyName>BusType</PropertyName> </ExpressionBinding> <NewLine/> <Text>MediaType : </Text> <ExpressionBinding> <PropertyName>MediaType</PropertyName> </ExpressionBinding> <NewLine/> <Text>IoTimeout : </Text> <ExpressionBinding> <ScriptBlock> if ($_.IoTimeout -gt 0) { $_.IoTimeout.ToString() + " seconds" } else { "Not available" } </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </Control> <Control> <Name>StorageIoDistributionEvent</Name> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <Text>Event time: </Text> <ExpressionBinding> <ScriptBlock> $_.EventTime.ToString('yyyy/MM/dd HH:mm:00') + ", Total Success IO Count: " + [String]::Format('{0:N0}',$_.TotalSuccessCount) </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </Control> </Controls> <ViewDefinitions> <!-- // // Disk // --> <View> <Name>DiskTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_Disk</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Number</Label> <Width>6</Width> </TableColumnHeader> <TableColumnHeader> <Label>Friendly Name</Label> </TableColumnHeader> <TableColumnHeader> <Label>Serial Number</Label> <Width>32</Width> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>Total Size</Label> <Width>12</Width> </TableColumnHeader> <TableColumnHeader> <Label>Partition Style</Label> <Width>10</Width> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Number</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>PartitionStyle</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>DiskListView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_Disk</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>UniqueId</PropertyName> </ListItem> <ListItem> <PropertyName>Number</PropertyName> </ListItem> <ListItem> <PropertyName>Path</PropertyName> </ListItem> <ListItem> <PropertyName>Manufacturer</PropertyName> </ListItem> <ListItem> <PropertyName>Model</PropertyName> </ListItem> <ListItem> <PropertyName>SerialNumber</PropertyName> </ListItem> <ListItem> <Label>Size</Label> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </ListItem> <ListItem> <PropertyName>AllocatedSize</PropertyName> </ListItem> <ListItem> <PropertyName>LogicalSectorSize</PropertyName> </ListItem> <ListItem> <PropertyName>PhysicalSectorSize</PropertyName> </ListItem> <ListItem> <PropertyName>NumberOfPartitions</PropertyName> </ListItem> <ListItem> <PropertyName>PartitionStyle</PropertyName> </ListItem> <ListItem> <PropertyName>IsReadOnly</PropertyName> </ListItem> <ListItem> <PropertyName>IsSystem</PropertyName> </ListItem> <ListItem> <PropertyName>IsBoot</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <!-- // // Partition // --> <View> <Name>PartitionTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_Partition</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>DiskId</PropertyName> <Label>DiskPath</Label> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>PartitionNumber</Label> <Width>16</Width> </TableColumnHeader> <TableColumnHeader> <Label>DriveLetter</Label> <Width>11</Width> </TableColumnHeader> <TableColumnHeader> <Label>Offset</Label> </TableColumnHeader> <TableColumnHeader> <Label>Size</Label> <Width>10</Width> </TableColumnHeader> <TableColumnHeader> <Label>Type</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>PartitionNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>DriveLetter</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Offset</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>Type</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>PartitionListView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_Partition</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>UniqueId</PropertyName> </ListItem> <ListItem> <PropertyName>AccessPaths</PropertyName> </ListItem> <ListItem> <PropertyName>DiskNumber</PropertyName> </ListItem> <ListItem> <PropertyName>DiskPath</PropertyName> </ListItem> <ListItem> <PropertyName>DriveLetter</PropertyName> </ListItem> <ListItem> <PropertyName>Guid</PropertyName> </ListItem> <ListItem> <PropertyName>IsActive</PropertyName> </ListItem> <ListItem> <PropertyName>IsBoot</PropertyName> </ListItem> <ListItem> <PropertyName>IsHidden</PropertyName> </ListItem> <ListItem> <PropertyName>IsOffline</PropertyName> </ListItem> <ListItem> <PropertyName>IsReadOnly</PropertyName> </ListItem> <ListItem> <PropertyName>IsShadowCopy</PropertyName> </ListItem> <ListItem> <PropertyName>IsDAX</PropertyName> </ListItem> <ListItem> <PropertyName>IsSystem</PropertyName> </ListItem> <ListItem> <PropertyName>NoDefaultDriveLetter</PropertyName> </ListItem> <ListItem> <PropertyName>Offset</PropertyName> </ListItem> <ListItem> <PropertyName>OperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>PartitionNumber</PropertyName> </ListItem> <ListItem> <Label>Size</Label> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </ListItem> <ListItem> <PropertyName>Type</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <!-- // // VirtualDisk // --> <View> <Name>VirtualDiskTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_VirtualDisk</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>ResiliencySettingName</Label> </TableColumnHeader> <TableColumnHeader> <Label>FaultDomainRedundancy</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>Size</Label> </TableColumnHeader> <TableColumnHeader> <Label>FootprintOnPool</Label> </TableColumnHeader> <TableColumnHeader> <Label>StorageEfficiency</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>ResiliencySettingName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PhysicalDiskRedundancy</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $footprint = $_.FootprintOnPool; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $footprint -ge 1024 -and $i -lt $postfixes.Length; $i++) { $footprint = $footprint / 1024; } return "" + [System.Math]::Round($footprint,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $efficiency = ""; if ($_.FootprintOnPool -gt 0) { $efficiency = ($_.AllocatedSize / $_.FootprintOnPool).ToString("P"); } return $efficiency </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageTier // --> <View> <Name>StorageTierTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageTier</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>TierClass</Label> </TableColumnHeader> <TableColumnHeader> <Label>MediaType</Label> </TableColumnHeader> <TableColumnHeader> <Label>ResiliencySettingName</Label> </TableColumnHeader> <TableColumnHeader> <Label>FaultDomainRedundancy</Label> </TableColumnHeader> <TableColumnHeader> <Label>Size</Label> </TableColumnHeader> <TableColumnHeader> <Label>FootprintOnPool</Label> </TableColumnHeader> <TableColumnHeader> <Label>StorageEfficiency</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>TierClass</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>MediaType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>ResiliencySettingName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PhysicalDiskRedundancy</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B ", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $footprint = $_.FootprintOnPool; $postfixes = @( "B ", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $footprint -ge 1024 -and $i -lt $postfixes.Length; $i++) { $footprint = $footprint / 1024; } return "" + [System.Math]::Round($footprint,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $efficiency = ""; if ($_.FootprintOnPool -gt 0) { $efficiency = ($_.AllocatedSize / $_.FootprintOnPool).ToString("P"); } return $efficiency </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageFaultDomain // --> <View> <Name>StorageFaultDomainView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageFaultDomain</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Type</Label> <Width>24</Width> </TableColumnHeader> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>PhysicalLocation</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <ScriptBlock> return $_.ClassName.Replace('MSFT_', ''); </ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PhysicalLocation</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // PhysicalDisk // --> <View> <Name>PhysicalDiskTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_PhysicalDisk</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Number</Label> </TableColumnHeader> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>MediaType</Label> </TableColumnHeader> <TableColumnHeader> <Label>CanPool</Label> <Width>9</Width> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>Usage</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>Size</Label> <Width>10</Width> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>DeviceId</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>MediaType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>CanPool</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Usage</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>AdvancedPhysicalDiskTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.PhysicalDiskAdvancedProperties</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>IsPowerProtected</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>IsDeviceCacheEnabled</Label> <Width>24</Width> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <ScriptBlock>$_.PhysicalDisk.FriendlyName</ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock>$_.PhysicalDisk.SerialNumber</ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <PropertyName>IsPowerProtected</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <PropertyName>IsDeviceCacheEnabled</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageError // --> <View> <Name>StorageError_v1TableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.StorageError_v1</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>DeviceGuid</PropertyName> <CustomControlName>DeviceInformation</CustomControlName> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Date</Label> </TableColumnHeader> <TableColumnHeader> <Label>Hour</Label> </TableColumnHeader> <TableColumnHeader> <Label>Command</Label> </TableColumnHeader> <TableColumnHeader> <Label>SrbStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>ScsiStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>SenseKey</Label> </TableColumnHeader> <TableColumnHeader> <Label>SenseCode</Label> </TableColumnHeader> <TableColumnHeader> <Label>SenseCodeQualifier</Label> </TableColumnHeader> <TableColumnHeader> <Label>IoSize</Label> </TableColumnHeader> <TableColumnHeader> <Label>LBA</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:mm:00') return $datetime.ToShortDateString() </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:mm:00') return $datetime.ToShortTimeString() </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return "0x" + [String]::Format('{0:x2}',$_.Command) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return "0x" + [String]::Format('{0:x2}',$_.SrbStatus) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return "0x" + [String]::Format('{0:x2}',$_.ScsiStatus) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return "0x" + [String]::Format('{0:x2}',$_.SenseKey) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return "0x" + [String]::Format('{0:x2}',$_.SenseCode) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return "0x" + [String]::Format('{0:x2}',$_.SenseCodeQualifier) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.IoSize) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.LBA) </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageHistory // --> <View> <Name>StorageHistory_v5TableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.StorageHistory_v5</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>DeviceGuid</PropertyName> <CustomControlName>DeviceInformation</CustomControlName> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Date</Label> </TableColumnHeader> <TableColumnHeader> <Label>Hour</Label> </TableColumnHeader> <TableColumnHeader> <Label>TotalIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxOutstandingCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>AvgIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxIoLatency(us)</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') return $datetime.ToShortDateString() </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') return $datetime.ToShortTimeString() </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.TotalIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <PropertyName>MaxOutstandingCount</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.AvgIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.MaxIoLatency/10) </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>StorageHistory_v11TableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.StorageHistory_v11</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>DeviceGuid</PropertyName> <CustomControlName>DeviceInformation</CustomControlName> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Date</Label> </TableColumnHeader> <TableColumnHeader> <Label>Hour</Label> </TableColumnHeader> <TableColumnHeader> <Label>TotalIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>FailedIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxOutstandingCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>AvgIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>TotalQueueIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>AvgQueueIoWaitTime(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxQueueIoWaitTime(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>QueueIoWaitExceededTimeoutCount</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') return $datetime.ToShortDateString() </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> [DateTime]$datetime = $_.EventTime.ToString('yyyy/MM/dd HH:00:00') return $datetime.ToShortTimeString() </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.TotalIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.FailedIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <PropertyName>MaxOutstandingCount</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.AvgIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.MaxIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.TotalQueueIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.AvgQueueIoWaitTime/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.MaxQueueIoWaitTime/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.QueueIoWaitExceededTimeoutCount) </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageHistoryAggregate // --> <View> <Name>StorageHistoryAggregate_v5TableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.StorageHistoryAggregate_v5</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>DeviceNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>BusType</Label> </TableColumnHeader> <TableColumnHeader> <Label>MediaType</Label> </TableColumnHeader> <TableColumnHeader> <Label>TotalIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>AvgIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>EventCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>16ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>64ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>2s</Label> </TableColumnHeader> <TableColumnHeader> <Label>5s</Label> </TableColumnHeader> <TableColumnHeader> <Label>5+s</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>DeviceNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>BusType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>MediaType</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.TotalIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.AvgIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.MaxIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <PropertyName>EventCount</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[0] -gt 0) { return $_.BucketHighestLatencyCount[0] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[1] -gt 0) { return $_.BucketHighestLatencyCount[1] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[2] -gt 0) { return $_.BucketHighestLatencyCount[2] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[3] -gt 0) { return $_.BucketHighestLatencyCount[3] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[4] -gt 0) { return $_.BucketHighestLatencyCount[4] } </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>StorageHistoryAggregate_v11TableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.StorageHistoryAggregate_v11</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>DeviceNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>BusType</Label> </TableColumnHeader> <TableColumnHeader> <Label>MediaType</Label> </TableColumnHeader> <TableColumnHeader> <Label>TotalIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>FailedIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>TotalQueueIoCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>AvgIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>MaxIoLatency(us)</Label> </TableColumnHeader> <TableColumnHeader> <Label>EventCount</Label> </TableColumnHeader> <TableColumnHeader> <Label>256us</Label> </TableColumnHeader> <TableColumnHeader> <Label>1ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>4ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>16ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>64ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>128ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>256ms</Label> </TableColumnHeader> <TableColumnHeader> <Label>2s</Label> </TableColumnHeader> <TableColumnHeader> <Label>6s</Label> </TableColumnHeader> <TableColumnHeader> <Label>10s</Label> </TableColumnHeader> <TableColumnHeader> <Label>20s</Label> </TableColumnHeader> <TableColumnHeader> <Label>20+s</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>DeviceNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>BusType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>MediaType</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.TotalIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.FailedIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N0}',$_.TotalQueueIoCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.AvgIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> return [String]::Format('{0:N1}',$_.MaxIoLatency/10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <PropertyName>EventCount</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[0] -gt 0) { return $_.BucketHighestLatencyCount[0] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[1] -gt 0) { return $_.BucketHighestLatencyCount[1] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[2] -gt 0) { return $_.BucketHighestLatencyCount[2] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[3] -gt 0) { return $_.BucketHighestLatencyCount[3] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[4] -gt 0) { return $_.BucketHighestLatencyCount[4] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[5] -gt 0) { return $_.BucketHighestLatencyCount[5] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[6] -gt 0) { return $_.BucketHighestLatencyCount[6] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[7] -gt 0) { return $_.BucketHighestLatencyCount[7] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[8] -gt 0) { return $_.BucketHighestLatencyCount[8] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[9] -gt 0) { return $_.BucketHighestLatencyCount[9] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[10] -gt 0) { return $_.BucketHighestLatencyCount[10] } </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> if ($_.BucketHighestLatencyCount[11] -gt 0) { return $_.BucketHighestLatencyCount[11] } </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageIoDistribution // --> <View> <Name>StorageIoDistribution</Name> <ViewSelectedBy> <TypeName>Microsoft.Windows.StorageManagement.StorageIoDistribution</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>EventTime</PropertyName> <CustomControlName>StorageIoDistributionEvent</CustomControlName> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>IO Type</Label> <Alignment>Left</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>IO Size</Label> <Alignment>Left</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>Count</Label> <Alignment>Left</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>256us</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>1ms</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>4ms</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>16ms</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>64ms</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>128ms</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>256ms</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>2s</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>6s</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>10s</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>20s</Label> <Alignment>Right</Alignment> </TableColumnHeader> <TableColumnHeader> <Label>20+s</Label> <Alignment>Right</Alignment> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <ScriptBlock> if ($_.IoSize -eq "4K") { $_.IoType } </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> $_.IoSize </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.IoSizeSuccessCount) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount1) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount2) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount3) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount4) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount5) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount6) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount7) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount8) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount9) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount10) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount11) </ScriptBlock> </TableColumnItem> <TableColumnItem> <ScriptBlock> [String]::Format('{0:N0}',$_.LatencySuccessCount12) </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StoragePool // --> <View> <Name>StoragePoolTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StoragePool</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>IsPrimordial</Label> </TableColumnHeader> <TableColumnHeader> <Label>IsReadOnly</Label> </TableColumnHeader> <TableColumnHeader> <Label>Size</Label> </TableColumnHeader> <TableColumnHeader> <Label>AllocatedSize</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>IsPrimordial</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>IsReadOnly</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $allocatedSize = $_.AllocatedSize; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $allocatedSize -ge 1024 -and $i -lt $postfixes.Length; $i++) { $allocatedSize = $allocatedSize / 1024; } return "" + [System.Math]::Round($allocatedSize,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // ResiliencySetting // --> <View> <Name>ResiliencySettingTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_ResiliencySetting</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>StoragePoolFriendlyName</PropertyName> <Label>StoragePoolFriendlyName</Label> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> <TableColumnHeader> <Label>NumberOfDataCopies</Label> </TableColumnHeader> <TableColumnHeader> <Label>FaultDomainRedundancy</Label> </TableColumnHeader> <TableColumnHeader> <Label>NumberOfColumns</Label> </TableColumnHeader> <TableColumnHeader> <Label>Interleave</Label> </TableColumnHeader> <TableColumnHeader> <Label>NumberOfGroups</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>NumberOfDataCopiesDefault</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PhysicalDiskRedundancyDefault</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>NumberOfColumnsDefault</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>InterleaveDefault</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>NumberOfGroupsDefault</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageEnclosure // --> <View> <Name>StorageEnclosureTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageEnclosure</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> <Width>13</Width> </TableColumnHeader> <TableColumnHeader> <Label>NumberOfSlots</Label> <Width>14</Width> </TableColumnHeader> <TableColumnHeader> <Label>ElementTypesInError</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>NumberOfSlots</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock> $ElementTypesInError = @( ); foreach ( $status in $_.SlotOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "Slot"; break; } } foreach ( $status in $_.PowerSupplyOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "PowerSupply"; break; } } foreach ( $status in $_.FanOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "Fan"; break; } } foreach ( $status in $_.TemperatureSensorOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "TemperatureSensor"; break; } } foreach ( $status in $_.VoltageSensorOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "VoltageSensor"; break; } } foreach ( $status in $_.CurrentSensorOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "CurrentSensor"; break; } } foreach ( $status in $_.IOControllerOperationalStatus ) { if ( ( $status -ne "OK" ) -and ( $status -ne "Not Installed" ) -and ( $status -ne "Off" ) -and ( $status -ne "No Access Allowed" ) -and ( $status -ne "Not Reported" ) ) { $ElementTypesInError = $ElementTypesInError + "IOController"; break; } } return $ElementTypesInError; </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageProvider // --> <View> <Name>StorageProviderTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Type</Label> <Width>7</Width> </TableColumnHeader> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> <TableColumnHeader> <Label>Manufacturer</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Type</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Manufacturer</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <View> <Name>StorageProviderListView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider</TypeName> </ViewSelectedBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>UniqueId</PropertyName> </ListItem> <ListItem> <PropertyName>Name</PropertyName> </ListItem> <ListItem> <PropertyName>Manufacturer</PropertyName> </ListItem> <ListItem> <PropertyName>Version</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <View> <Name>StorageProviderWideView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageProvider</TypeName> </ViewSelectedBy> <WideControl> <WideEntries> <WideEntry> <WideItem> <PropertyName>Name</PropertyName> </WideItem> </WideEntry> </WideEntries> </WideControl> </View> <!-- // // StorageSubSystem // --> <View> <Name>StorageSubSystemTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageSubSystem</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageNode // --> <View> <Name>StorageNodeTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNode</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> <TableColumnHeader> <Label>Manufacturer</Label> </TableColumnHeader> <TableColumnHeader> <Label>Model</Label> </TableColumnHeader> <TableColumnHeader> <Label>SerialNumber</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Manufacturer</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Model</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SerialNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // Volume // --> <View> <Name>VolumeTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_Volume</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>DriveLetter</Label> </TableColumnHeader> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>FileSystemType</Label> </TableColumnHeader> <TableColumnHeader> <Label>DriveType</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>SizeRemaining</Label> </TableColumnHeader> <TableColumnHeader> <Label>Size</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>DriveLetter</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FileSystemLabel</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FileSystemType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>DriveType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.SizeRemaining; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $size = $_.Size; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } return "" + [System.Math]::Round($size,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // InitiatorPort // --> <View> <Name>InitiatorPortTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_InitiatorPort</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>InstanceName</Label> </TableColumnHeader> <TableColumnHeader> <Label>NodeAddress</Label> </TableColumnHeader> <TableColumnHeader> <Label>PortAddress</Label> </TableColumnHeader> <TableColumnHeader> <Label>ConnectionType</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>InstanceName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>NodeAddress</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PortAddress</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>ConnectionType</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // InitiatorId // --> <View> <Name>InitiatorIdTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_InitiatorId</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>InitiatorAddress</Label> </TableColumnHeader> <TableColumnHeader> <Label>Type</Label> </TableColumnHeader> <TableColumnHeader> <Label>HostType</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>InitiatorAddress</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Type</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HostType</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // TargetPort // --> <View> <Name>TargetPortTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_TargetPort</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>NodeAddress</Label> </TableColumnHeader> <TableColumnHeader> <Label>PortAddress</Label> </TableColumnHeader> <TableColumnHeader> <Label>ConnectionType</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>NodeAddress</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PortAddress</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>ConnectionType</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // TargetPortal // --> <View> <Name>TargetPortalTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_TargetPortal</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>IPv4 Address</Label> </TableColumnHeader> <TableColumnHeader> <Label>IPv6 Address</Label> </TableColumnHeader> <TableColumnHeader> <Label>Port Number</Label> </TableColumnHeader> <TableColumnHeader> <Label>Subnet Mask</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>IPv4Address</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>IPv6Address</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PortNumber</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>SubnetMask</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // MaskingSet // --> <View> <Name>MaskingSetTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_MaskingSet</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>HostType</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HostType</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageJob // --> <View> <Name>StorageJobTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageJob</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> <TableColumnHeader> <Label>IsBackgroundTask</Label> </TableColumnHeader> <TableColumnHeader> <Label>ElapsedTime</Label> </TableColumnHeader> <TableColumnHeader> <Label>JobState</Label> </TableColumnHeader> <TableColumnHeader> <Label>PercentComplete</Label> </TableColumnHeader> <TableColumnHeader> <Label>BytesProcessed</Label> </TableColumnHeader> <TableColumnHeader> <Label>BytesTotal</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>IsBackgroundTask</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>ElapsedTime</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>JobState</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PercentComplete</PropertyName> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $bytesProcessed = $_.BytesProcessed; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $bytesProcessed -ge 1024 -and $i -lt $postfixes.Length; $i++) { $bytesProcessed = $bytesProcessed / 1024; } return "" + [System.Math]::Round($bytesProcessed,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> <TableColumnItem> <Alignment>Right</Alignment> <ScriptBlock> $bytesTotal = $_.BytesTotal; $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) for ($i=0; $bytesTotal -ge 1024 -and $i -lt $postfixes.Length; $i++) { $bytesTotal = $bytesTotal / 1024; } return "" + [System.Math]::Round($bytesTotal,2) + " " + $postfixes[$i]; </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // FileIntegrity // --> <View> <Name>FileIntegrityTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_FileIntegrity</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FileName</Label> </TableColumnHeader> <TableColumnHeader> <Label>Enabled</Label> </TableColumnHeader> <TableColumnHeader> <Label>Enforced</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FileName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Enabled</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Enforced</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // FileStorageTier // --> <View> <Name>FileStorageTierTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_FileStorageTier</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FilePath</Label> </TableColumnHeader> <TableColumnHeader> <Label>FileSize</Label> </TableColumnHeader> <TableColumnHeader> <Label>DesiredStorageTierClass</Label> </TableColumnHeader> <TableColumnHeader> <Label>FileSizeOnPerformanceTierClass</Label> </TableColumnHeader> <TableColumnHeader> <Label>FileSizeOnCapacityTierClass</Label> </TableColumnHeader> <TableColumnHeader> <Label>PlacementStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>State</Label> </TableColumnHeader> <TableColumnHeader> <Label>PlacementPercentage</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FilePath</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FileSize</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>DesiredStorageTierClass</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FileSizeOnPerformanceTierClass</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FileSizeOnCapacityTierClass</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PlacementStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>State</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock> "{0:P}" -f ($_.FileSizeOnDesiredStorageTierClass / $_.FileSize); </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageNodeToDisk // --> <View> <Name>StorageNodeToDisk</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToDisk</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>StorageNodeObjectId</PropertyName> <Label>StorageNodeObjectId</Label> </GroupBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>DiskNumber</PropertyName> </ListItem> <ListItem> <PropertyName>HealthStatus</PropertyName> </ListItem> <ListItem> <PropertyName>OperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>IsReadOnly</PropertyName> </ListItem> <ListItem> <PropertyName>IsOffline</PropertyName> </ListItem> <ListItem> <PropertyName>OfflineReason</PropertyName> </ListItem> <ListItem> <PropertyName>StorageNode</PropertyName> </ListItem> <ListItem> <PropertyName>Disk</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <!-- // // FileServer // --> <View> <Name>FileServerTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_FileServer</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>FriendlyName</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>FriendlyName</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // FileShare // --> <View> <Name>FileShareTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_FileShare</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Name</Label> </TableColumnHeader> <TableColumnHeader> <Label>HealthStatus</Label> </TableColumnHeader> <TableColumnHeader> <Label>OperationalStatus</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>HealthStatus</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>OperationalStatus</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageReliabilityCounter // --> <View> <Name>StorageReliabilityCounterTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageReliabilityCounter</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Number</Label> </TableColumnHeader> <TableColumnHeader> <Label>Temperature</Label> </TableColumnHeader> <TableColumnHeader> <Label>ReadErrorsUncorrected</Label> </TableColumnHeader> <TableColumnHeader> <Label>Wear</Label> </TableColumnHeader> <TableColumnHeader> <Label>PowerOnHours</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>DeviceId</PropertyName> </TableColumnItem> <TableColumnItem> <ScriptBlock> if( $_.Temperature ) { $_str += $_.Temperature; $_str += " C" } return $_str </ScriptBlock> </TableColumnItem> <TableColumnItem> <PropertyName>ReadErrorsUncorrected</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Wear</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PowerOnHours</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // StorageNodeToPhysicalDisk // --> <View> <Name>StorageNodeToPhysicalDisk</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToPhysicalDisk</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>StorageNodeObjectId</PropertyName> <Label>StorageNodeObjectId</Label> </GroupBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>DiskNumber</PropertyName> </ListItem> <ListItem> <PropertyName>IsPhysicallyConnected</PropertyName> </ListItem> <ListItem> <PropertyName>HealthStatus</PropertyName> </ListItem> <ListItem> <PropertyName>OperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>IsMpioEnabled</PropertyName> </ListItem> <ListItem> <PropertyName>LoadBalancePolicy</PropertyName> </ListItem> <ListItem> <PropertyName>PathId</PropertyName> </ListItem> <ListItem> <PropertyName>PathState</PropertyName> </ListItem> <ListItem> <PropertyName>StorageNode</PropertyName> </ListItem> <ListItem> <PropertyName>PhysicalDisk</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <!-- // // StorageNodeToStorageEnclosure // --> <View> <Name>StorageNodeToStorageEnclosure</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageNodeToStorageEnclosure</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>StorageNodeObjectId</PropertyName> <Label>StorageNodeObjectId</Label> </GroupBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>EnclosureNumber</PropertyName> </ListItem> <ListItem> <PropertyName>IsPhysicallyConnected</PropertyName> </ListItem> <ListItem> <PropertyName>HealthStatus</PropertyName> </ListItem> <ListItem> <PropertyName>SlotOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>PowerSupplyOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>FanOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>TemperatureSensorOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>VoltageSensorOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>CurrentSensorOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>IOControllerOperationalStatus</PropertyName> </ListItem> <ListItem> <PropertyName>StorageNode</PropertyName> </ListItem> <ListItem> <PropertyName>StorageEnclosure</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <!-- // // HealthAction // --> <View> <Name>HealthActionTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthAction</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>PercentComplete</Label> <Width>18</Width> </TableColumnHeader> <TableColumnHeader> <Label>State</Label> <Width>25</Width> </TableColumnHeader> <TableColumnHeader> <Label>StartTime</Label> <Width>25</Width> </TableColumnHeader> <TableColumnHeader> <Label>Reason</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <Wrap>true</Wrap> <TableColumnItems> <TableColumnItem> <PropertyName>PercentComplete</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>State</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>StartTime</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Reason</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // Diagnose Result (Debug-*) // --> <View> <Name>StorageDiagnoseResultListView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageDiagnoseResult</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>PerceivedSeverity</PropertyName> <Label>Severity</Label> </GroupBy> <ListControl> <ListEntries> <ListEntry> <ListItems> <ListItem> <PropertyName>Reason</PropertyName> </ListItem> <ListItem> <Label>Recommendation</Label> <ScriptBlock>$($_.RecommendedActions -join "`r`n")</ScriptBlock> </ListItem> <ListItem> <Label>Location</Label> <PropertyName>FaultingObjectLocation</PropertyName> </ListItem> <ListItem> <Label>Description</Label> <PropertyName>FaultingObjectDescription</PropertyName> </ListItem> </ListItems> </ListEntry> </ListEntries> </ListControl> </View> <View> <Name>StorageDiagnoseResultTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_StorageDiagnoseResult</TypeName> </ViewSelectedBy> <GroupBy> <PropertyName>PerceivedSeverity</PropertyName> <Label>Severity</Label> </GroupBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Reason</Label> </TableColumnHeader> <TableColumnHeader> <Label>Description</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <Wrap>true</Wrap> <TableColumnItems> <TableColumnItem> <PropertyName>Reason</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>FaultingObjectDescription</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!-- // // Reports // --> <View> <Name>StorageDiagnoseResultTableView</Name> <ViewSelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimMethodStreamedResult#MSFT_StorageHealth#GetReport</TypeName> </ViewSelectedBy> <TableControl > <HideTableHeaders>true</HideTableHeaders> <TableRowEntries> <TableRowEntry> <Wrap>true</Wrap> <TableColumnItems> <TableColumnItem> <ScriptBlock> $postfixes = @( "B", "KB", "MB", "GB", "TB", "PB" ) $bytesPerSecond = @( "B/S", "KB/S", "MB/S", "GB/S", "TB/S", "PB/S" ) $Seconds = @( "min", "s", "ms", "us","ns" ) $nameLength = 0 $valueLength = 0 $values = @() $postFx = @() foreach($r in $_.ItemValue.Records) { if ($r.Name.Length -gt $nameLength) { $nameLength = $r.Name.Length } $localValue="" switch($r.Units) { 0{ $size = $r.Value; for ($i=0; $size -ge 1024 -and $i -lt $postfixes.Length; $i++) { $size = $size / 1024; } $localValue = "{0}" -f [System.Math]::Round($size,2) $values += $localValue $postfx += $postfixes[$i]; } 1{ $size = $r.Value; for ($i=0; $size -ge 1024 -and $i -lt $bytesPerSecond.Length; $i++) { $size = $size / 1024; } $localValue = "{0}" -f [System.Math]::Round($size,2) $values += $localValue $postfx += $bytesPerSecond[$i]; } 2{ $localValue = "{0}" -f [System.Math]::Round($r.Value,2) $values += $localValue $postfx += "/S"; } 3{ $size = $r.Value; $i = 1 if ($size -lt 1) { for($i = 1; $size -le 1 -and $i -lt $Seconds.Length; $i++ ) { $size = $size * 1000; } } else { if($size -gt 60) { $size = $size / 60 $i-- } } $localValue = "{0}" -f [System.Math]::Round($size,2) $values += $localValue $postfx += $Seconds[$i]; } 4{ $localValue = "{0}" -f [System.Math]::Round($r.Value,2) $values += $localValue $postfx += "%"; } default { $values += $r.Value $postfx += ""; } } if($localValue.Length -gt $valueLength) { $valueLength = $localValue.Length } } $j=0; foreach($r in $_.ItemValue.Records) { $s = "{0,-$nameLength} : {1,$valueLength} {2}" -f @($r.Name, $values[$j], $postfx[$j] ) Write-host $s $j++ } write-host "" </ScriptBlock> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> </ViewDefinitions> <DefaultSettings> <EnumerableExpansions> <EnumerableExpansion> <EntrySelectedBy> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthRecord</TypeName> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthRecordUInt64</TypeName> <TypeName>Microsoft.Management.Infrastructure.CimInstance#MSFT_HealthRecordReal64</TypeName> </EntrySelectedBy> <Expand>Both</Expand> </EnumerableExpansion> </EnumerableExpansions> </DefaultSettings> </Configuration>