Функция PowerShell для получения IP и МАС адреса

Данные сетевых адаптеров можно получить через сетевые адаптеры с WMI, и чтобы найти активную сетевую карту, следует применить фильтр, основанный на NetConnectionStatus — «2» . Затем взять информацию MAC от класса Win32_NetworkAdapter и IP-адрес из классаWin32_NetworkAdapterConfiguration и объединить оба в один запрос:

PS> Get-WmiObject Win32_NetworkAdapter -Filter 'NetConnectionStatus=2'
ServiceName      : NETwWiFi
MACAddress       : 00:22:33:44:E1:50
AdapterType      : Ethernet 802.3
DeviceID         : 08
Name             : Intel(R) WiFi Link
NetworkAddresses :
Speed            : 54000000

В итоге получим данные сетевого оборудования, но не параметры сети, поэтому дополнительно следует считать Win32_NetworkAdapterConfiguration. Лучше все это объединить в одну функцию:

function Get-NetworkConfig {
  Get-WmiObject Win32_NetworkAdapter -Filter 'NetConnectionStatus=2' |
    ForEach-Object {
      $result = 1 | Select-Object Name, IP, MAC
      $result.Name = $_.Name
      $result.MAC = $_.MacAddress
      $config = $_.GetRelated('Win32_NetworkAdapterConfiguration') 
      $result.IP = $config | Select-Object -expand IPAddress
      $result
    }
 
}

Результат

PS> Get-NetworkConfig
 
Name                       IP                         Mac
----                       --                         ---
Intel(R) WiFi Link ... {44.64.18.10, 80::a... 00:22:33:44:E1:50
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)