问题似乎是 MB 与 MiB 的问题。如果直接取 $nicWmiParse.Speed 值,则 GBit NIC 为 1000000000。
答案是:
$NIC = Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_NetworkAdapter | Where-Object { $_.Speed -and $_.MACAddress }
$Speed = $NIC.Speed / 1000000
我刚刚复制了您的 WMI 过滤器,因为我没有您提供的值(可能是因为合法的隐私问题)。
我希望这一切都有效,这是我的第一个 StackOverflow 帖子 :)
只是我的一点建议:如果您无法使用一种方法(四舍五入),请尝试退后一步,看看您实际上想要做什么(以适当的、用户友好的数字获取 NIC 速度)。尤其是使用 Powershell,您通常会尝试找出 Powershell 人员已经拥有的低级内容,并且他们通常在一个不错的小 CMDlet 中提供此功能。看看 Powershell 与 VBS 中的 Active Directory 加入脚本:)
我实际上希望我们现在有另一个这样的案例,但有时事情会卡在 WMI 中......
我希望你不要认为我在批评你的提问,只是一些对我有很大帮助的建议。