NetAdapter - WMI sample in Perl
The foundations for Manageability in Windows 2019/2012/2008/ and Windows 10/8/7/Vista/XP are 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.
On this site, you can find many WMI samples.
The NetAdapter WMI class can be used in ActiveXperts Network Monitor to monitor your servers.
NetAdapter
Example(s)
use Win32::OLE('in'); my $computer = "."; my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\StandardCimv2") or die "WMI connection failed.\n"; my $colItems = $objWMIService->ExecQuery("SELECT * FROM MSFT_NetAdapter", "WQL"); foreach my $objItem (in $colItems) { print "ActiveMaximumTransmissionUnit: $objItem->{ActiveMaximumTransmissionUnit}\n"; print "AdditionalAvailability: $objItem->{AdditionalAvailability}\n"; print "AdminLocked: $objItem->{AdminLocked}\n"; print "AutoSense: $objItem->{AutoSense}\n"; print "Availability: $objItem->{Availability}\n"; print "AvailableRequestedStates: $objItem->{AvailableRequestedStates}\n"; print "Caption: $objItem->{Caption}\n"; print "CommunicationStatus: $objItem->{CommunicationStatus}\n"; print "ComponentID: $objItem->{ComponentID}\n"; print "ConnectorPresent: $objItem->{ConnectorPresent}\n"; print "CreationClassName: $objItem->{CreationClassName}\n"; print "Description: $objItem->{Description}\n"; print "DetailedStatus: $objItem->{DetailedStatus}\n"; print "DeviceID: $objItem->{DeviceID}\n"; print "DeviceName: $objItem->{DeviceName}\n"; print "DeviceWakeUpEnable: $objItem->{DeviceWakeUpEnable}\n"; print "DriverDate: $objItem->{DriverDate}\n"; print "DriverDateData: $objItem->{DriverDateData}\n"; print "DriverDescription: $objItem->{DriverDescription}\n"; print "DriverMajorNdisVersion: $objItem->{DriverMajorNdisVersion}\n"; print "DriverMinorNdisVersion: $objItem->{DriverMinorNdisVersion}\n"; print "DriverName: $objItem->{DriverName}\n"; print "DriverProvider: $objItem->{DriverProvider}\n"; print "DriverVersionString: $objItem->{DriverVersionString}\n"; print "ElementName: $objItem->{ElementName}\n"; print "EnabledDefault: $objItem->{EnabledDefault}\n"; print "EnabledState: $objItem->{EnabledState}\n"; print "EndPointInterface: $objItem->{EndPointInterface}\n"; print "ErrorCleared: $objItem->{ErrorCleared}\n"; print "ErrorDescription: $objItem->{ErrorDescription}\n"; print "FullDuplex: $objItem->{FullDuplex}\n"; print "HardwareInterface: $objItem->{HardwareInterface}\n"; print "HealthState: $objItem->{HealthState}\n"; print "Hidden: $objItem->{Hidden}\n"; print "HigherLayerInterfaceIndices: $objItem->{HigherLayerInterfaceIndices}\n"; print "IdentifyingDescriptions: $objItem->{IdentifyingDescriptions}\n"; print "IMFilter: $objItem->{IMFilter}\n"; print "InstallDate: $objItem->{InstallDate}\n"; print "InstanceID: $objItem->{InstanceID}\n"; print "InterfaceAdminStatus: $objItem->{InterfaceAdminStatus}\n"; print "InterfaceDescription: $objItem->{InterfaceDescription}\n"; print "InterfaceGuid: $objItem->{InterfaceGuid}\n"; print "InterfaceIndex: $objItem->{InterfaceIndex}\n"; print "InterfaceName: $objItem->{InterfaceName}\n"; print "InterfaceOperationalStatus: $objItem->{InterfaceOperationalStatus}\n"; print "InterfaceType: $objItem->{InterfaceType}\n"; print "iSCSIInterface: $objItem->{iSCSIInterface}\n"; print "LastErrorCode: $objItem->{LastErrorCode}\n"; print "LinkTechnology: $objItem->{LinkTechnology}\n"; print "LowerLayerInterfaceIndices: $objItem->{LowerLayerInterfaceIndices}\n"; print "MajorDriverVersion: $objItem->{MajorDriverVersion}\n"; print "MaxQuiesceTime: $objItem->{MaxQuiesceTime}\n"; print "MaxSpeed: $objItem->{MaxSpeed}\n"; print "MediaConnectState: $objItem->{MediaConnectState}\n"; print "MediaDuplexState: $objItem->{MediaDuplexState}\n"; print "MinorDriverVersion: $objItem->{MinorDriverVersion}\n"; print "MtuSize: $objItem->{MtuSize}\n"; print "Name: $objItem->{Name}\n"; print "NdisMedium: $objItem->{NdisMedium}\n"; print "NdisPhysicalMedium: $objItem->{NdisPhysicalMedium}\n"; print "NetLuid: $objItem->{NetLuid}\n"; print "NetLuidIndex: $objItem->{NetLuidIndex}\n"; print "NetworkAddresses: $objItem->{NetworkAddresses}\n"; print "NotUserRemovable: $objItem->{NotUserRemovable}\n"; print "OperatingStatus: $objItem->{OperatingStatus}\n"; print "OperationalStatus: $objItem->{OperationalStatus}\n"; print "OperationalStatusDownDefaultPortNotAuthenticated: $objItem->{OperationalStatusDownDefaultPortNotAuthenticated}\n"; print "OperationalStatusDownInterfacePaused: $objItem->{OperationalStatusDownInterfacePaused}\n"; print "OperationalStatusDownLowPowerState: $objItem->{OperationalStatusDownLowPowerState}\n"; print "OperationalStatusDownMediaDisconnected: $objItem->{OperationalStatusDownMediaDisconnected}\n"; print "OtherEnabledState: $objItem->{OtherEnabledState}\n"; print "OtherIdentifyingInfo: $objItem->{OtherIdentifyingInfo}\n"; print "OtherLinkTechnology: $objItem->{OtherLinkTechnology}\n"; print "OtherNetworkPortType: $objItem->{OtherNetworkPortType}\n"; print "OtherPortType: $objItem->{OtherPortType}\n"; print "PermanentAddress: $objItem->{PermanentAddress}\n"; print "PnPDeviceID: $objItem->{PnPDeviceID}\n"; print "PortNumber: $objItem->{PortNumber}\n"; print "PortType: $objItem->{PortType}\n"; print "PowerManagementCapabilities: $objItem->{PowerManagementCapabilities}\n"; print "PowerManagementSupported: $objItem->{PowerManagementSupported}\n"; print "PowerOnHours: $objItem->{PowerOnHours}\n"; print "PrimaryStatus: $objItem->{PrimaryStatus}\n"; print "PromiscuousMode: $objItem->{PromiscuousMode}\n"; print "ReceiveLinkSpeed: $objItem->{ReceiveLinkSpeed}\n"; print "RequestedSpeed: $objItem->{RequestedSpeed}\n"; print "RequestedState: $objItem->{RequestedState}\n"; print "Speed: $objItem->{Speed}\n"; print "State: $objItem->{State}\n"; print "Status: $objItem->{Status}\n"; print "StatusDescriptions: $objItem->{StatusDescriptions}\n"; print "StatusInfo: $objItem->{StatusInfo}\n"; print "SupportedMaximumTransmissionUnit: $objItem->{SupportedMaximumTransmissionUnit}\n"; print "SystemCreationClassName: $objItem->{SystemCreationClassName}\n"; print "SystemName: $objItem->{SystemName}\n"; print "TimeOfLastStateChange: $objItem->{TimeOfLastStateChange}\n"; print "TotalPowerOnHours: $objItem->{TotalPowerOnHours}\n"; print "TransitioningToState: $objItem->{TransitioningToState}\n"; print "TransmitLinkSpeed: $objItem->{TransmitLinkSpeed}\n"; print "UsageRestriction: $objItem->{UsageRestriction}\n"; print "Virtual: $objItem->{Virtual}\n"; print "VlanID: $objItem->{VlanID}\n"; print "WdmInterface: $objItem->{WdmInterface}\n"; print "\n"; print "########\n"; print "\n"; }