由于 TCP/IP 是最常用的网络协议,因此大多数低级别网络协议管理任务都涉及 TCP/IP。 在本部分中,我们使用 PowerShell 和 WMI 来执行这些任务。

若要获取本地计算机上使用的所有 IP 地址,请使用以下命令:

Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
  Select-Object -ExpandProperty IPAddress

执行上面示例代码,得到以下结果:

PS C:\Users\maxsu> Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
>>   Select-Object -ExpandProperty IPAddress
192.168.1.4
fe80::1177:9b56:a80a:62bf
2409:8a5e:b4ba:9db0:51d:d17a:50d7:17d
2409:8a5e:b4ba:9db0:1177:9b56:a80a:62bf

若要了解大括号出现的原因,请使用 Get-Member cmdlet 检查 IPAddress 属性:

PS C:\Users\maxsu> Get-CimInstance -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=$true |
>>   Get-Member -Name IPAddress


   TypeName:Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_NetworkAdapterConfiguration

Name      MemberType Definition
----      ---------- ----------
IPAddress Property   string[] IPAddress {get;}

每个网络适配器的 IPAddress 属性实际上是一个数组。 定义中的大括号指示 IPAddress 不是 System.String 值,而是由 System.String 值组成的数组。