Contact Info

Crumbtrail

ActiveXperts.com » Administration » Scripts » WMI » python sample

Win32_NetworkAdapterConfiguration python sample code

The foundations for Manageability in Windows is Windows Management Instrumentation (WMI; formerly WBEM) and WMI extensions for Windows Driver Model (WDM).

ActiveXperts Network Monitor provides the ability to build monitor check routines based on WMI. ActiveXperts has collected more than a hundred WMI samples. You can use these samples as a base for new check routines you can write yourself. The Win32_NetworkAdapterConfiguration WMI class can be used in ActiveXperts Network Monitor to monitor your servers.


Description

The Win32_NetworkAdapterConfiguration WMI class represents the attributes and behaviors of a network adapter. This class has been extended to include extra properties and methods that support the management of the TCP/IP and Internetworking Packet Exchange (IPX) protocols (and are independent of the network adapter).

Sample Code

import win32com.client
def WMIDateStringToDate(dtmDate):
    strDateTime = ""
    if (dtmDate[4] == 0):
        strDateTime = dtmDate[5] + '/'
    else:
        strDateTime = dtmDate[4] + dtmDate[5] + '/'
    if (dtmDate[6] == 0):
        strDateTime = strDateTime + dtmDate[7] + '/'
    else:
        strDateTime = strDateTime + dtmDate[6] + dtmDate[7] + '/'
        strDateTime = strDateTime + dtmDate[0] + dtmDate[1] + dtmDate[2] + dtmDate[3] + " " + dtmDate[8] + dtmDate[9] + ":" + dtmDate[10] + dtmDate[11] +':' + dtmDate[12] + dtmDate[13]
    return strDateTime

strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")
for objItem in colItems:
    if objItem.ArpAlwaysSourceRoute != None:
        print "ArpAlwaysSourceRoute:" + ` objItem.ArpAlwaysSourceRoute`
    if objItem.ArpUseEtherSNAP != None:
        print "ArpUseEtherSNAP:" + ` objItem.ArpUseEtherSNAP`
    if objItem.Caption != None:
        print "Caption:" + ` objItem.Caption`
    if objItem.DatabasePath != None:
        print "DatabasePath:" + ` objItem.DatabasePath`
    if objItem.DeadGWDetectEnabled != None:
        print "DeadGWDetectEnabled:" + ` objItem.DeadGWDetectEnabled`
    print "DefaultIPGateway:"
    strList = " "
    try :
        for objElem in objItem.DefaultIPGateway :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.DefaultTOS != None:
        print "DefaultTOS:" + ` objItem.DefaultTOS`
    if objItem.DefaultTTL != None:
        print "DefaultTTL:" + ` objItem.DefaultTTL`
    if objItem.Description != None:
        print "Description:" + ` objItem.Description`
    if objItem.DHCPEnabled != None:
        print "DHCPEnabled:" + ` objItem.DHCPEnabled`
    if objItem.DHCPLeaseExpires != None:
        print "DHCPLeaseExpires:" + WMIDateStringToDate(objItem.DHCPLeaseExpires)
    if objItem.DHCPLeaseObtained != None:
        print "DHCPLeaseObtained:" + WMIDateStringToDate(objItem.DHCPLeaseObtained)
    if objItem.DHCPServer != None:
        print "DHCPServer:" + ` objItem.DHCPServer`
    if objItem.DNSDomain != None:
        print "DNSDomain:" + ` objItem.DNSDomain`
    print "DNSDomainSuffixSearchOrder:"
    strList = " "
    try :
        for objElem in objItem.DNSDomainSuffixSearchOrder :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.DNSEnabledForWINSResolution != None:
        print "DNSEnabledForWINSResolution:" + ` objItem.DNSEnabledForWINSResolution`
    if objItem.DNSHostName != None:
        print "DNSHostName:" + ` objItem.DNSHostName`
    print "DNSServerSearchOrder:"
    strList = " "
    try :
        for objElem in objItem.DNSServerSearchOrder :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.DomainDNSRegistrationEnabled != None:
        print "DomainDNSRegistrationEnabled:" + ` objItem.DomainDNSRegistrationEnabled`
    if objItem.ForwardBufferMemory != None:
        print "ForwardBufferMemory:" + ` objItem.ForwardBufferMemory`
    if objItem.FullDNSRegistrationEnabled != None:
        print "FullDNSRegistrationEnabled:" + ` objItem.FullDNSRegistrationEnabled`
    print "GatewayCostMetric:"
    strList = " "
    try :
        for objElem in objItem.GatewayCostMetric :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.IGMPLevel != None:
        print "IGMPLevel:" + ` objItem.IGMPLevel`
    if objItem.Index != None:
        print "Index:" + ` objItem.Index`
    if objItem.InterfaceIndex != None:
        print "InterfaceIndex:" + ` objItem.InterfaceIndex`
    print "IPAddress:"
    strList = " "
    try :
        for objElem in objItem.IPAddress :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.IPConnectionMetric != None:
        print "IPConnectionMetric:" + ` objItem.IPConnectionMetric`
    if objItem.IPEnabled != None:
        print "IPEnabled:" + ` objItem.IPEnabled`
    if objItem.IPFilterSecurityEnabled != None:
        print "IPFilterSecurityEnabled:" + ` objItem.IPFilterSecurityEnabled`
    if objItem.IPPortSecurityEnabled != None:
        print "IPPortSecurityEnabled:" + ` objItem.IPPortSecurityEnabled`
    print "IPSecPermitIPProtocols:"
    strList = " "
    try :
        for objElem in objItem.IPSecPermitIPProtocols :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    print "IPSecPermitTCPPorts:"
    strList = " "
    try :
        for objElem in objItem.IPSecPermitTCPPorts :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    print "IPSecPermitUDPPorts:"
    strList = " "
    try :
        for objElem in objItem.IPSecPermitUDPPorts :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    print "IPSubnet:"
    strList = " "
    try :
        for objElem in objItem.IPSubnet :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.IPUseZeroBroadcast != None:
        print "IPUseZeroBroadcast:" + ` objItem.IPUseZeroBroadcast`
    if objItem.IPXAddress != None:
        print "IPXAddress:" + ` objItem.IPXAddress`
    if objItem.IPXEnabled != None:
        print "IPXEnabled:" + ` objItem.IPXEnabled`
    print "IPXFrameType:"
    strList = " "
    try :
        for objElem in objItem.IPXFrameType :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.IPXMediaType != None:
        print "IPXMediaType:" + ` objItem.IPXMediaType`
    print "IPXNetworkNumber:"
    strList = " "
    try :
        for objElem in objItem.IPXNetworkNumber :
            strList = strList + `objElem` + ","
    except:
        strList = strList + 'null'
    print strList
    if objItem.IPXVirtualNetNumber != None:
        print "IPXVirtualNetNumber:" + ` objItem.IPXVirtualNetNumber`
    if objItem.KeepAliveInterval != None:
        print "KeepAliveInterval:" + ` objItem.KeepAliveInterval`
    if objItem.KeepAliveTime != None:
        print "KeepAliveTime:" + ` objItem.KeepAliveTime`
    if objItem.MACAddress != None:
        print "MACAddress:" + ` objItem.MACAddress`
    if objItem.MTU != None:
        print "MTU:" + ` objItem.MTU`
    if objItem.NumForwardPackets != None:
        print "NumForwardPackets:" + ` objItem.NumForwardPackets`
    if objItem.PMTUBHDetectEnabled != None:
        print "PMTUBHDetectEnabled:" + ` objItem.PMTUBHDetectEnabled`
    if objItem.PMTUDiscoveryEnabled != None:
        print "PMTUDiscoveryEnabled:" + ` objItem.PMTUDiscoveryEnabled`
    if objItem.ServiceName != None:
        print "ServiceName:" + ` objItem.ServiceName`
    if objItem.SettingID != None:
        print "SettingID:" + ` objItem.SettingID`
    if objItem.TcpipNetbiosOptions != None:
        print "TcpipNetbiosOptions:" + ` objItem.TcpipNetbiosOptions`
    if objItem.TcpMaxConnectRetransmissions != None:
        print "TcpMaxConnectRetransmissions:" + ` objItem.TcpMaxConnectRetransmissions`
    if objItem.TcpMaxDataRetransmissions != None:
        print "TcpMaxDataRetransmissions:" + ` objItem.TcpMaxDataRetransmissions`
    if objItem.TcpNumConnections != None:
        print "TcpNumConnections:" + ` objItem.TcpNumConnections`
    if objItem.TcpUseRFC1122UrgentPointer != None:
        print "TcpUseRFC1122UrgentPointer:" + ` objItem.TcpUseRFC1122UrgentPointer`
    if objItem.TcpWindowSize != None:
        print "TcpWindowSize:" + ` objItem.TcpWindowSize`
    if objItem.WINSEnableLMHostsLookup != None:
        print "WINSEnableLMHostsLookup:" + ` objItem.WINSEnableLMHostsLookup`
    if objItem.WINSHostLookupFile != None:
        print "WINSHostLookupFile:" + ` objItem.WINSHostLookupFile`
    if objItem.WINSPrimaryServer != None:
        print "WINSPrimaryServer:" + ` objItem.WINSPrimaryServer`
    if objItem.WINSScopeID != None:
        print "WINSScopeID:" + ` objItem.WINSScopeID`
    if objItem.WINSSecondaryServer != None:
        print "WINSSecondaryServer:" + ` objItem.WINSSecondaryServer`