Class: Inspec::Resources::WindowsInterface
- Inherits:
-
InterfaceInfo
- Object
- InterfaceInfo
- Inspec::Resources::WindowsInterface
- Defined in:
- lib/resources/interface.rb
Instance Attribute Summary
Attributes inherited from InterfaceInfo
Instance Method Summary collapse
Methods inherited from InterfaceInfo
Methods included from Converter
Constructor Details
This class inherits a constructor from Inspec::Resources::InterfaceInfo
Instance Method Details
#interface_info(iface) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/resources/interface.rb', line 99 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.empty? warn "[Possible Error] detected multiple network interfaces with the name #{iface}" if adapters.size > 1 adapters[0] end |