【问题标题】:Listing the IP addresses of a specific adapter only仅列出特定适配器的 IP 地址
【发布时间】:2016-03-06 03:30:28
【问题描述】:

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

服务器有两个适配器:Primary 和 Secondary

我正在使用以下命令:

 $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 不是 Null 且没有“Some name”描述的类?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    将“sometext”更改为您想要的任何内容......

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

    你不需要使用多个Where-Object (? Alias) 子句,你可以像上面的例子一样加入它们,

    如果您有常量特定名称,您也可以将运算符从 -notmatch 更改为 -ne(不等于)

    【讨论】:

    • 非常感谢!完美运行 :) 已对您的回复表示赞同,但看起来我需要一些最低分数才能显示出来
    • 欢迎您,获取更多信息,get-help about_Comparison_operatorstechnet.microsoft.com/en-us/library/ee177028.aspx
    猜你喜欢
    • 2010-11-20
    • 2022-03-03
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2013-05-20
    • 2023-04-08
    • 2014-06-10
    相关资源
    最近更新 更多