private/_GetNicInfo.ps1

    function _GetNicInfo {
    [cmdletbinding()]
    Param(
        [Microsoft.Management.Infrastructure.CimSession]$Cimsession,
        [Switch]$Drivers
    )
    Write-Verbose "[$($CimSession.ComputerName)] - Gathering Netwok Interface information"
    $Adapters = Get-CimInstance -CimSession $CimSession -ClassName Win32_NetworkAdapter -Filter "Availability =3" -Property Name, NetConnectionID, DeviceId, PhysicalAdapter, NetConnectionStatus, Speed, MacAddress, AdapterTypeId -ErrorAction Stop | Where-Object {$_.AdapterTypeId -match '0|9'}
    if ($Drivers) {
        $SignedDrivers = Get-CimInstance -CimSession $CimSession -ClassName Win32_PnPSignedDriverCIMDataFile
    }
    foreach ($Adapter in $Adapters) {
        if ($Adapter.Speed) {
            $LinkSpeed = $Adapter.Speed / 1000000
        }
        else {
            $LinkSpeed = (Get-CimInstance -CimSession $CimSession -Namespace "root/wmi" -Query "SELECT * FROM MSNdis_LinkSpeed" | Where-Object {$_.InstanceName -eq $Adapter.Name}).NdisLinkSpeed / 1000
        }
        if ($Drivers) {
            $DriverInfo = Get-CimInstance -CimSession $CimSession -ClassName Win32_PnPSignedDriver -Filter "Description='$($Adapter.Name)'" -Property InfName, DriverVersion, DriverDate, Description, DriverProviderName, Manufacturer, DeviceId
        }
        $Config = Get-CimInstance -CimSession $CimSession -ClassName Win32_NetworkAdapterConfiguration -Filter "Index = '$($Adapter.DeviceId)'" -Property IPAddress, DHCPEnabled, DHCPServer, DNSServerSearchOrder, DefaultIPGateway, IPSubnet

        [PSCustomObject]@{
            PSTypeName        = 'PSP.Inventory.NIC'
            ComputerName      = $Cimsession.ComputerName
            Alias             = $Adapter.NetConnectionID
            Index             = $Adapter.DeviceId
            PhysicalAdapter   = $Adapter.PhysicalAdapter
            IPAddress         = $Config.IPAddress
            Status            = (Convert-NetworkStatus -NetworkStatus $Adapter.NetConnectionStatus)
            MacAddress        = $Adapter.MacAddress
            DHCPEnabled       = $Config.DHCPEnabled
            DHCPServer        = $Config.DHCPServer
            DNSServers        = $Config.DNSServerSearchOrder
            Gateway           = $Config.DefaultIPGateway
            Subnet            = $Config.IPSubnet
            LinkspeedMB       = $LinkSpeed
            DriverInf         = if ($Drivers) {$DriverInfo.InfName}else {''}
            DriverFileName    = if ($Drivers) {$SignedDrivers.Where{$_.Antecedent.DeviceId -eq $DriverInfo.DeviceId}[0].Dependent.Name}else {''}
            DriverVersion     = if ($Drivers) {$DriverInfo.DriverVersion}else {''}
            DriverDate        = if ($Drivers) {$DriverInfo.DriverDate}else {''}
            DriverDescription = if ($Drivers) {$DriverInfo.Description}else {''}
            DriverProvider    = if ($Drivers) {$DriverInfo.DriverProviderName}else {''}
            NicManufacturer   = if ($Drivers) {$DriverInfo.Manufacturer}else {''}
            InventoryDate     = (Get-Date)
        }
    }
}