提问人:StartingPS 提问时间:2/22/2023 最后编辑:Santiago SquarzonStartingPS 更新时间:2/22/2023 访问量:154
在 Powershell 中检查 CPU 名称
Check the CPU name in Powershell
问:
我试图知道处理器名称是否等于或类似于特定的字符串值,但我没有找到一个好的解决方案。这是我的代码
$nameCPU = WMIC CPU Get Name
Write-host $nameCPU[2] # The server has two different CPUs
$CheckName = $nameCPU[2] -eq "Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz"
Write-Host $CheckName
输出如下所示:
Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz
False
$CheckName
始终为 False
有人可以帮助我吗?谢谢
答:
2赞
Santiago Squarzon
2/22/2023
#1
可以使用 Win32_Processor
类获取 CPU 名称,用于查询此类的 cmdlet 是 Get-CimInstance
。
通常,您将用于比较 2 个标量值,但是,如果您的服务器可能具有 1 个以上的 CPU,那么最安全的检查方法是使用 -in
或 -contains
。值得注意的是,这两个运算符都在数组中查找确切的值。通配符或正则表达式对他们不起作用。-eq
$cpuInfo = Get-CimInstance -ClassName Win32_Processor
$cpuInfo.Name -contains "Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz" # should be True
评论
1赞
StartingPS
2/22/2023
是的!!我有一个真实的结果!完美 非常感谢
评论
(Get-CimInstance Win32_Processor).Name -eq 'Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz'
-eq
-in
$true
$CheckName
始终为 False,因为 wmic 响应中的“2.30GHz”后面有空格