0

NIC の速度を返す関数がありますが、たまたま 95 または 950 (NIC の Mbps または Gbps) です。ただし、これをそれぞれ 100 または 1000 に切り上げたいと思います。

$nicWmiParse =  Get-WmiObject -ComputerName $env:COMPUTERNAME -Class Win32_NetworkAdapter | Where-Object { $_.Speed -and $_.MACAddress }
$nicSpeed = [math]::floor($nicWmiParse.Speed/1MB)
4

1 に答える 1

3

問題は、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投稿です:)


私からのちょっとしたアドバイス: 1 つの方法 (切り上げ) を使用して行き詰まっている場合は、一歩下がって、実際に何をしようとしているのかを確認してください (NIC 速度を適切で使いやすい数値にする)。 )。特に Powershell では、Powershell の担当者が既に持っている低レベルのものを理解しようとすることがよくあり、多くの場合、彼らはこの機能を素敵な小さな CMDlet で提供します。Powershell と VBS の Active Directory 結合スクリプトを見てみましょう :)

私は実際には、今このような別のケースがあることを望んでいましたが、WMI で問題が発生することがあります...

私が質問したことであなたを批判していると思わないでほしいと願っています。

于 2013-07-24T21:50:04.330 に答える