use strict;
use Win32::OLE('in');

use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;


my $objWMIService = Win32::OLE->GetObject("winmgmts:\\\\.\\root\\CIMV2") or die "WMI connection failed.\n";
my $colItems = $objWMIService->ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL",
        wbemFlagReturnImmediately | wbemFlagForwardOnly);

foreach my $objItem (in $colItems) {
print "####################\n";
    foreach (qw/
AdapterType
AdapterTypeID
AutoSense
Availability
Caption
ConfigManagerErrorCode
ConfigManagerUserConfig
CreationClassName
Description
DeviceID
ErrorCleared
ErrorDescription
GUID
Index
InstallDate
Installed
InterfaceIndex
LastErrorCode
MACAddress
Manufacturer
MaxNumberControlled
MaxSpeed
Name
NetConnectionID
NetConnectionStatus
NetEnabled
NetworkAddresses
PermanentAddress
PhysicalAdapter
PNPDeviceID
PowerManagementCapabilities
PowerManagementSupported
ProductName
ServiceName
Speed
Status
StatusInfo
SystemCreationClassName
SystemName
TimeOfLastReset


/) {

                print "    ".$_.": ".$objItem->{$_}."\n";
            }
}
