使用powrshell检查内存types(是否ECC)

我试图检查公司所有电脑上的内存types。 我的testing代码是基于以下信息 :@CB。

gwmi Win32_PhysicalMemory| select PSComputerName,DeviceLocator,Manufacturer,PartNumber,@{label="Size/GB" ; expression={$_.capacity / 1GB}},Speed,datawidth,totalwidth,@{label="ECC" ; expression={ if ( $_.totalwidth > $_.datawidth ) { "$($_.DeviceLocator) is ECC memory type" } else { "$($_.DeviceLocator) is non-ECC Memory Type" } } } | Out-GridView 

结果显示我的内存types是非ecc。 在这里输入图像说明

但如果我使用第三方工具(如“HWiNFO64 v4.30”),结果是ECC内存。 见下面的图片。 如何通过使用powreshell获得像下面的图片一样的内存信息? 似乎“内存types”“速度”和“ECC”

在这里输入图像说明

Vikas可以对应该考虑的信息的准确性有一些好的观点。 链接的帖子也回避了其他问题。

您使用此代码遇到的问题是使用PowerShell比较运算符 。

它们的格式是-gt-lt ,例如分别大于和小于。 假设你的逻辑,你只需要更新

 if ( $_.totalwidth > $_.datawidth ) 

 if ( $_.totalwidth -gt $_.datawidth )