过滤PowerShell中的最后一个环回适配器

时间:2012-10-18 14:41:09

标签: powershell

我正在编写/编辑/黑客一个powershell脚本来添加环回适配器。

一旦我添加了新的环回适配器,我需要掌握它。我目前这样做:

$nic = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "Description='Microsoft Loopback Adapter'"

但这仅在当前没有任何环回适配器时才有效。如果我已经有一个,然后添加另一个,那么这将返回第一个。我想要的是这个列表中的 last (或最近的)我要回到“Microsoft Loopback adapter#2”,我想要“Microsoft Loopback adapter#3”之后的时间等等...

DHCPEnabled      : False
IPAddress        : {192.168.1.90}
ServiceName      : msloop
Description      : Microsoft Loopback Adapter
Index            : 17

DHCPEnabled      : True
IPAddress        : {169.254.115.94, fe80::bc90:a8ba:b435:735e}
DefaultIPGateway :
DNSDomain        :
ServiceName      : msloop
Description      : Microsoft Loopback Adapter #2
Index            : 18

这在powershell中是否可行?

2 个答案:

答案 0 :(得分:2)

根据您的结果,我发现对ServiceName的过滤会更可靠:

Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "ServiceName='msloop'" | 
Sort-Object Index | 
Select-Object -Last 1

答案 1 :(得分:1)

尝试这样的事情:

Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "Description='Microsoft Loopback Adapter'" | Sort-Object Index -descending | Select-Object -first 1

获取说明为“Microsoft Loopback Adapter”的所有实例,按索引值降序对其进行排序,然后选择最上面的一个。