如何让 powershell 仅显示 IP 地址和接口别名 (-name)

如何让 powershell 仅显示 IP 地址和接口别名 (-name)

我环顾四周并尝试以表格形式显示 NIC 卡的(-interfaceAlias或)以及 IP 地址。-Name

我尝试使用Get-NetAdaptorGet-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

这给出了正确的输出。然后我想使用下面的代码来获得 Netadaptor 的名称

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

这只给了我名字,而不是 ipaddress

我也尝试过

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

或者

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

都不显示输出。

我在网上查找并尝试了各种方法,也查看了 Microsoft 帮助,但不知道该如何组合。如能得到任何帮助,我将不胜感激。

答案1

你需要Select-Object来实现你想要的。

Select-Objectcmdlet 选择一个对象或一组对象的指定属性。它还可以选择唯一对象、指定数量的对象或数组中指定位置的对象。

当我想获取特定属性时,我总是使用以下命令运行我想要的命令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

相关内容