3

NICがどのような種類のイーサネット接続を確立したかをどのように検出できますか?つまり、私のNICはギガビットイーサネットデバイスですが、自動検知であるため、ギガビット速度またはファストイーサネット速度で接続されている可能性があります。

接続されている速度を確認するにはどうすればよいですか?

WMIを使用してみWin32_NetworkAdapterましたが、SpeedのCIM_NetworkAdapter場合wmic NET get Name,Speedはすべて空白になります。

ちなみに、私はWindows XPProSP3を使用しています。ただし、Windows Server 2003(Standard&Enterprise)、Windows Server 2008、およびWindows Server2008R2でも機能するソリューションが必要です。

4

1 に答える 1

1

「mystifeid」というコードネームの謎の人物が、このサイトでこのパズルを解きました。3 番目の投稿は次のとおりです

これが彼らの素敵なコードです:

Dim strQuery, strQuery2, objLocator, objWMI, objItem, objItem2, colItems, colItems2, resultString, nicName
strQuery = "SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface"
strQuery2 = "SELECT * FROM Win32_NetworkAdapter"
Set objLocator = CreateObject( "WbemScripting.SWbemLocator" )
Set objWMI = objLocator.ConnectServer( ".", "root\CIMV2" )
objWMI.Security_.ImpersonationLevel = 3
Set colItems2 = objWMI.ExecQuery( strQuery2, "WQL", 0 )
Set colItems = objWMI.ExecQuery( strQuery, "WQL", 0 )
resultString = ""
For Each objItem2 In colItems2
 If objItem2.NetConnectionStatus = 2 Then
  nicName = Mid(objItem2.Name, 1, 5)
  resultString = resultString & "Adapter Name : " & objItem2.Name & VbCrLf
  resultString = resultString & "MAC Address : " & objItem2.MACAddress & VbCrLf
  For Each objItem In colItems
   If Mid(objItem.Name, 1, 5) = nicName Then
    resultString = resultString & "CurrentBandwidth : " & objItem.CurrentBandwidth & VbCrLf
   End If
  Next
 End If
Next
Set objLocator = Nothing
Set objWMI = Nothing
Set colItems = Nothing
Set colItems2 = Nothing
WScript.Echo resultString

PS- すぐに Win7 と Win2008 に対して検証し、すべてにお知らせします。

于 2012-11-01T04:06:59.750 に答える