NIC duplex and speed

  • I started at a new company that doesn't have much in the way of documentation, despite having countless servers around the globe. I'm working on a new wiki and server documentation project. SYDI should be a great start for getting server information at the least.

    However, yesterday we encountered an issue where some of our servers were set to auto-negotitate instead of being hard-corded to 1000/Full.

  • Oops, it posted before I was done typing.

    Anyway, looking on Google I'm not seeing much in the way of standard WMI calls to determine speed and duplex settings for NICs, sadly. Though Intel is a WMI provider.

    I imagine Intel and Broadcom provide most server NICs. If you can get information on those two, you'd be doing pretty well.

    It looks like I can get NIC speed from here:

    `strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM MSNdis_LinkSpeed",,48)
    For Each objItem in colItems
        Wscript.Echo "-----------------------"
        Wscript.Echo "MSNdis_LinkSpeed instance"
        Wscript.Echo "-----------------------"
        Wscript.Echo "InstanceName: " & objItem.InstanceName
        Wscript.Echo "NdisLinkSpeed: " & objItem.NdisLinkSpeed
    The issue then becomes, finding the Duplex setting, which is usually in the registry.

    This is where I'm stuck.