我正在尝试检查公司内所有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"结果是ECC内存。见下图。如何使用PowerShell获取如下图所示的内存信息?好奇地"记忆类型" "速度"和" ECC"
答案 0 :(得分:2)
Vikas可以对应该考虑的信息的准确性有一些好处。链接的帖子也可以解决其他问题。
您使用此代码遇到的问题是您使用PowerShell Comparison Operators。
例如,它们的格式为-gt
和-lt
,分别大于和小于。假设您的逻辑,您只需要更新
if ( $_.totalwidth > $_.datawidth )
到
if ( $_.totalwidth -gt $_.datawidth )