Как заставить PowerShell показывать только IP-адрес и псевдоним интерфейса (-name)

Вопрос или проблема

Я исследовал и пытался получить как (-interfaceAlias или -Name) сетевой карты, чтобы они отображались вместе с IP-адресом в табличном формате.

Я пытался использовать как команды Get-NetAdaptor, так и Get-NetIpaddress, и вижу, что могу получить либо имя, либо адрес, но не могу разобраться, как получить оба одновременно.

PS C:\Windows\system32> get-Netadapter | get-Netipaddress | Format-table

ifIndex IPAddress                                       PrefixLength PrefixOrigin SuffixOrigin AddressState PolicyStore
------- ---------                                       ------------ ------------ ------------ ------------ -----------
66      fe80::dc2e:7d51:e01b:6d1b%66                              64 WellKnown    Link         Deprecated   ActiveStore
66      169.254.109.27                                            16 WellKnown    Link         Tentative    ActiveStore
60      fe80::8963:5f37:4a1f:9afc%60                              64 WellKnown    Link         Deprecated   ActiveStore
60      172.22.32.1                                               27 Manual       Manual       Tentative    ActiveStore
60      169.254.154.252                                           16 WellKnown    Link         Tentative    ActiveStore
25      fe80::a50a:7a1c:3f49:f5df%25                              64 WellKnown    Link         Deprecated   ActiveStore
25      169.254.245.223                                           16 WellKnown    Link         Tentative    ActiveStore
25      169.254.2.1                                               23 Manual       Manual       Tentative    ActiveStore
25      169.254.1.1                                               23 Manual       Manual       Tentative    ActiveStore
39      fe80::4c52:9107:fa8c:eb00%39                              64 WellKnown    Link         Deprecated   ActiveStore
39      169.254.235.0                                             16 WellKnown    Link         Tentative    ActiveStore
21      fe80::c059:d2f1:5cec:f910%21                              64 WellKnown    Link         Preferred    ActiveStore
21      192.168.3.1                                               27 Manual       Manual       Preferred    ActiveStore
72      fe80::60e7:8001:9fa7:b080%72                              64 WellKnown    Link         Deprecated   ActiveStore
75      fe80::e86f:786b:3a49:ba98%75                              64 WellKnown    Link         Deprecated   ActiveStore
72      169.254.176.128                                           16 WellKnown    Link         Tentative    ActiveStore
72      20.20.20.1                                                24 Manual       Manual       Tentative    ActiveStore
75      169.254.186.152                                           16 WellKnown    Link         Tentative    ActiveStore
8       fe80::b4e4:5199:3074:7db%8                                64 WellKnown    Link         Preferred    ActiveStore
8       192.168.248.1                                             23 Manual       Manual       Preferred    ActiveStore
14      fe80::3ceb:65cb:1e1:aa57%14                               64 WellKnown    Link         Preferred    ActiveStore
14      192.168.213.1                                             24 Manual       Manual       Preferred    ActiveStore
4       fe80::5133:490b:9810:6fa%4                                64 WellKnown    Link         Preferred    ActiveStore

Это выводится правильно. Я затем хочу взять следующую команду, чтобы получить имя сетевого адаптера:

PS C:\Windows\system32> get-Netadapter -name "$localName1"

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Onboard_A_SCADA_Route1    Intel(R) Ethernet Connection (2) I21...      22 Disconnected 00-30-A7-21-2D-3D          0 bps

Я бы хотел либо объединить, либо отформатировать вывод:

PS C:\Windows\system32> get-Netadapter -Name "*" | Format-List -property "name", "Ipaddress"

name : TEAM_PCI5 _(B)-PCI5_(C)_61850_Mirror

name : TEAM_PCI4_(C)-PCI4_(D)_OTN_Copadata

name : TEAM-PCI4_(A)-PCI4_(B)-SCADA Mirror

это дает мне только имя, но не IP-адрес.

Я также пробовал

Get-netadpater -name "$localName1" | Get-IPaddress

или

Get-netadpater -name "$localName1" | Get-IPaddress |Format-Table

ни один из которых не отображает выходных данных.

Я искал в интернете и пробовал различные способы, и смотрел справку от Microsoft, но не могу понять, как их объединить. Любая помощь будет высоко оценена.

Вам понадобится Select-Object, чтобы добиться желаемого.

Команда Select-Object выбирает указанные свойства объекта или
набора объектов. Она также может выбрать уникальные объекты, указанное количество
объектов или объекты в определенной позиции в массиве.

Когда я хочу получить определенные свойства, я всегда выполняю команду с fl * (сокращение от Format-List *), чтобы получить все возвращаемые свойства, которые существуют. например:

PS C:\Windows\system32> Get-NetAdapter | Get-NetIPAddress | fl *

PrefixOrigin             : Dhcp
SuffixOrigin             : Dhcp
Type                     : Unicast
Store                    : ActiveStore
AddressFamily            : IPv4
AddressState             : Preferred
ifIndex                  : 14
Caption                  :
Description              :
ElementName              :
InstanceID               :
CommunicationStatus      :
DetailedStatus           :
HealthState              :
InstallDate              :
Name                     : ;:8:8:8;>:55;>55;55;
OperatingStatus          :
OperationalStatus        :
PrimaryStatus            :
Status                   :
StatusDescriptions       :
AvailableRequestedStates :
EnabledDefault           : 2
EnabledState             :
OtherEnabledState        :
RequestedState           : 12
TimeOfLastStateChange    :
TransitioningToState     : 12
CreationClassName        :
SystemCreationClassName  :
SystemName               :
NameFormat               :
OtherTypeDescription     :
ProtocolIFType           : 4096
ProtocolType             :
Address                  :
AddressOrigin            : 0
AddressType              :
IPv4Address              : 10.0.0.140
IPv6Address              :
IPVersionSupport         :
PrefixLength             : 24
SubnetMask               :
InterfaceAlias           : Ethernet
InterfaceIndex           : 14
IPAddress                : 10.0.0.140
PreferredLifetime        : 6.21:47:25
SkipAsSource             : False
ValidLifetime            : 6.21:47:25
PSComputerName           :
CimClass                 : ROOT/StandardCimv2:MSFT_NetIPAddress
CimInstanceProperties    : {Caption, Description, ElementName, InstanceID...}
CimSystemProperties      : Microsoft.Management.Infrastructure.CimSystemProperties

Затем я знаю, какие свойства соответствуют моим нуждам, и могу выбрать нужные мне. Вы можете использовать:

Get-NetAdapter | Get-NetIPAddress | Select-Object InterfaceAlias, IPAddress | Format-Table

Но имейте в виду, что Format-Table используется только для отображения. Если вам нужно что-то еще сделать с возвращенными свойствами, опустите Format-Table.

Вместо того чтобы передавать Get-NetIPAddress через Get-NetAdapter, просто используйте Get-NetIPAddress напрямую:

Get-NetIPAddress | Select-Object IPAddress,InterfaceAlias | ft

.

Ответ или решение

Чтобы отобразить в PowerShell только IP-адрес и псевдоним интерфейса (или имя), можно воспользоваться cmdlet Get-NetIPAddress в сочетании с Select-Object для выбора только нужных свойств. Вопрос в том, как объединить данные из команд Get-NetAdapter и Get-NetIPAddress в единую таблицу, отображая оба свойства.

Шаги для решения проблемы:

  1. Получение данных о сетевых адресах:
    Используйте команду Get-NetIPAddress, чтобы извлечь информацию об IP-адресах. Вам нужно будет указать свойства IPAddress и InterfaceAlias.

  2. Отображение в удобочитаемом формате:
    Организуйте данные для удобства чтения с помощью Format-Table (или его сокращения ft).

Вот пример команды, который вам нужен:

Get-NetIPAddress | Select-Object IPAddress, InterfaceAlias | Format-Table

Пояснение:

  • Get-NetIPAddress: Этот cmdlet извлекает список всех IP-адресов на вашем компьютере.
  • Select-Object: Этот cmdlet выбирает только те свойства, которые необходимы для отображения, а именно IPAddress и InterfaceAlias.
  • Format-Table: Этот cmdlet форматирует выходные данные в виде таблицы. Но если вам нужно работать с данными в скрипте, лучше его не использовать, так как он предназначен только для отображения.

Важно также помнить, что при использовании таких команд для администрирования системы, стоит убедиться, что вы обладаете соответствующими правами на выполнение таких операций.

Контекст и добавление SEO:

Когда вы стремитесь продемонстрировать свои навыки администрирования с помощью PowerShell, важно использовать ключевые слова, такие как "PowerShell", "сетевая настройка", "IP-адрес", "интерфейс", и "управление системами Windows". Это поможет в оптимизации страницы для поисковых систем, что повысит видимость вашего контента. Убедитесь, что любой технический контент на вашем веб-сайте ясный и поддается пониманию, чтобы повышать доверие и авторитет среди профессионалов в вашей области.

Следуя этим указаниям, вы сможете эффективно управлять сетью и устранять возникающие технические сложности, используя PowerShell.

Оцените материал
Добавить комментарий

Капча загружается...