使用 PowerShell 检查内存类型(ECC 与否)

Check memory type (ECC or not) by using PowerShell

我正在尝试检查公司所有 PC 上的内存类型。我的测试代码如下 based on info from here:

Get-WmiObject Win32_PhysicalMemory |
    Select-Object -Property 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 

显示内存类型为非 ecc 的结果:

但如果我使用像 "HWiNFO64 v4.30" 这样的第 3 方工具,结果就是 ECC 内存。见下图。如何使用 PowerShell 获取与下图相同的内存信息?似是而非的 "Memory type" "Speed" 和 "ECC"

Vikas 可以就信息的准确性提出一些值得考虑的优点。链接的 post 也避开了其他问题。

您使用此代码 运行 遇到的问题是您对 PowerShell Comparison Operators 的使用。

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

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

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