class Inspec::Resources::WindowsInterface
def interface_info(iface)
def interface_info(iface) # gather all network interfaces cmd = inspec.command('Get-NetAdapter | Select-Object -Property Name, InterfaceDescription, Status, State, MacAddress, LinkSpeed, ReceiveLinkSpeed, TransmitLinkSpeed, Virtual | ConvertTo-Json') # filter network interface begin net_adapter = JSON.parse(cmd.stdout) rescue JSON::ParserError => _e return nil end # ensure we have an array of groups net_adapter = [net_adapter] if !net_adapter.is_a?(Array) # select the requested interface adapters = net_adapter.each_with_object([]) do |adapter, adapter_collection| # map object info = { name: adapter['Name'], up: adapter['State'] == 2, speed: adapter['ReceiveLinkSpeed'] / 1000, } adapter_collection.push(info) if info[:name].casecmp(iface) == 0 end return nil if adapters.size == 0 warn "[Possible Error] detected multiple network interfaces with the name #{iface}" if adapters.size > 1 adapters[0] end