Вопрос или проблема
Я исследовал и пытался получить как (-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
в единую таблицу, отображая оба свойства.
Шаги для решения проблемы:
-
Получение данных о сетевых адресах:
Используйте командуGet-NetIPAddress
, чтобы извлечь информацию об IP-адресах. Вам нужно будет указать свойстваIPAddress
иInterfaceAlias
. -
Отображение в удобочитаемом формате:
Организуйте данные для удобства чтения с помощью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.