Remotely discover NIC speed

Does anyone know of a freeware app or script that will remotely discover the speed at which a NIC is operating?  Duplex would be nice too, but not a must.  I have about 50 XP and 2000 Pro machines that I need to confirm the NIC speed on.  They are spread out all over our plant, so I'm trying to avoid having to physically go to each machine and check the speed.  Thanks in advance!
LVL 4
woodas26Asked:
Who is Participating?
 
prashsaxConnect With a Mentor Commented:
This script will tell you the speed of the NIC card.

--------------------------------------------------------------------------------------------
On Error Resume Next

    Const wbemFlagReturnImmediately = &h10
    Const wbemFlagForwardOnly = &h20
   
    Set objWMI = GetObject("winmgmts:\\.\root\WMI")
    Set colItems = objWMI.ExecQuery("SELECT * FROM MSNdis_LinkSpeed", "WQL", _
        wbemFlagReturnImmediately + wbemFlagForwardOnly)

    For Each objItem In colItems
       WScript.Echo "Active: " & objItem.Active
       WScript.Echo "InstanceName: " & objItem.InstanceName
       WScript.Echo ObjItem.NdisLinkSpeed
       WScript.Echo "NdisLinkSpeed: " & _
           (objItem.NdisLinkSpeed / 1000) & _
           " Mbps"
       WScript.Echo
    Next

0
 
pseudocyberConnect With a Mentor Commented:
Can you check the switches?  Decent manageable switches will tell you what speed the port is operating at.  Match the port to the MAC & IP with a program like switch port mapper - http://www.solarwindsuk.net/toolsets/solar-winds-tools-switch-port-mapper.htm
0
 
woodas26Author Commented:
About 20 of the 50 PC's and on a Cisco switch.  The rest are on unmanaged NetGear switches.  This would work for the Cisco switches, but I still need some way to discover the NIC speed on the devices attached to the NetGear switches.  Is it not possible to script this?
0
 
woodas26Author Commented:
Script works great!  I added a variable to store the ip address so I can just key in an ip address when the script starts.  (So I can use it remotely)  Here's the updated code:

On Error Resume Next

    Const wbemFlagReturnImmediately = &h10
    Const wbemFlagForwardOnly = &h20
   
    Dim ip
    ip = InputBox("Enter IP of remote computer: ")
    On Error Resume Next
    strComputer = ip

    Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
    Set colItems = objWMI.ExecQuery("SELECT * FROM MSNdis_LinkSpeed", "WQL", _
        wbemFlagReturnImmediately + wbemFlagForwardOnly)

    For Each objItem In colItems
       WScript.Echo "Active: " & objItem.Active
       WScript.Echo "InstanceName: " & objItem.InstanceName
       WScript.Echo ObjItem.NdisLinkSpeed
       WScript.Echo "NdisLinkSpeed: " & _
           (objItem.NdisLinkSpeed / 1000) & _
           " Mbps"
       WScript.Echo
Next
0
 
woodas26Author Commented:
Meant to split points.  Is there a way to do that now?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.