2016-03-05 77 views
1

我对powershell非常陌生,并试图编写脚本,将我的网站和服务器上的FTP站点绑定到多主机服务器特定适配器上的IP地址。仅列出特定适配器的IP地址

服务器有两个适配器:中小学

我使用下面的命令:

$AvailableIPs = @(Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $Null } | Select-Object -ExpandProperty IPAddress) 

,这让我的所有IP地址的机器上小学和中学。

我需要获取列表,如果IP地址只来自辅助适配器。 这种情况下,辅助适配器的名称将不会保持不变,但主适配器的名称将保持不变,因此我需要对主适配器的名称进行-ve匹配。

如何在同一命令中放置两个-ve匹配项? 像这样的东西不起作用:

$AvailableIPs = @(Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.IPAddress -ne $Null } | Where-Object { $_.Description -ne "<Primary Adapter Name>"} | Select-Object -ExpandProperty IPAddress) 

什么是从 Win32_NetworkAdapterConfiguration类,这是不为空,并且没有“有些名”的说明添加到列表的语法?

回答

1

更改到任何你想要的“SomeText”则会...

$AvailableIPs = Get-WmiObject Win32_NetworkAdapterConfiguration | 
? {$_.IPEnabled -and $_.Description -notmatch "sometext"} | 
Select -ExpandProperty IPAddress 

你并不需要使用一个以上的Where-Object?别名)条款,你可以在上面的例子中加入他们喜欢,

您也可以从-notmatch操作改为-ne(不等于),如果你有恒定的特定名称

+0

太谢谢你了! 完美的作品:) 已经upvoted你的回应,但看起来像我nee一些minumum点为了得到显示 –

+0

欢迎您,获取更多信息,'get-help about_Comparison_operators'和https://technet.microsoft.com /en-us/library/ee177028.aspx – Avshalom