In this post – http://msmvps.com/blogs/richardsiddaway/archive/2011/07/09/linking-the-network-card-to-the-registry-settings.aspx – I showed how to get the NetLuidIndex by linking the network card to the matching registry settings. There is another way to get some that same information.
function get-adapter { param( [string]$computer="." ) Get-WmiObject -Namespace root\wmi -Class MSNdis_EnumerateAdapter ` -ComputerName $computer | foreach { $nic = Get-WmiObject -Namespace root\wmi -Class MSNdis_EnumerateAdapterEx ` -ComputerName $computer -Filter "InstanceName = '$($_.InstanceName)'" $header = $nic.EnumerateAdapter.Header New-Object -TypeName PSobject -Property @{ Computer = $_.__SERVER Adapter = $_.InstanceName Device = $_.DeviceName Active = $_.Active Index = $($nic.EnumerateAdapter.IfIndex) NetLuid = $($nic.EnumerateAdapter.NetLuid) Revision = $header.Revision Size = $header.Size Type = $header.Type } } }
Use the MSNdis_EnumerateAdapter class to get the adapters and match to the MSNdis_EnumerateAdapterEx class on the Instance name. Not sure what size and type signify but they are identical on all adapters on my Windows 7 machines.
NOTE: The Index property is NOT the same as the DeviceId/Index property on the Win32_NetworkAdapter\Win32_NetworkAdapterConfiguration classes.