显示网络接口需要 Powershell 脚本帮助

显示网络接口需要 Powershell 脚本帮助

我有一个脚本[下面],它以格式返回有关网络接口的信息.csv,但我还需要InterfaceAlias返回每个适配器的信息;不幸的是,我无法get-wmiobject Win32_NetworkAdapterConfiguration返回这样的值。

有人可以帮忙吗?

$computer = "myserver.myserver.com"
get-wmiobject Win32_NetworkAdapterConfiguration -filter "IPEnabled=TRUE" -computername $computer | foreach-object {
  $_ | select-object `
    @{Name="ComputerName";     Expression={$_.__SERVER}},
    @{Name="MACAddress";       Expression={$_.MACAddress}},
    @{Name="IPAddress";        Expression={$_.IPAddress[0]}},
    @{Name="Caption";          Expression={$_.Caption}},
    @{Name="IPSubnet";         Expression={$_.IPSubnet[0]}},
    @{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}
}| Export-Csv -path "C:\ip_addresses_PG.csv"```
   

答案1

你可以使用获取 NetIP 接口使用-InterfaceIndex参数返回InterfaceAlias属性值并将其放入 select 语句的表达式中。

如果这还不够,你可以使用获取 NetAdapter使用-IncludeHidden参数和where过滤器来匹配索引值并将其放入选择语句的表达式中。

Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled=TRUE"  | foreach-object {
  $_ | select-object `
    @{Name="ComputerName";     Expression={$_.__SERVER}},
    @{Name="MACAddress";       Expression={$_.MACAddress}},
    @{Name="IPAddress";        Expression={$_.IPAddress[0]}},
    @{Name="Caption";          Expression={$_.Caption}},
    @{Name="IPSubnet";         Expression={$_.IPSubnet[0]}},
    @{Name="Alias1";           Expression={(Get-NetIPInterface -InterfaceIndex $_.InterfaceIndex).InterfaceAlias[0]}},
    @{Name="Alias2";           Expression={(Get-NetAdapter -IncludeHidden | where ifIndex -eq $_.InterfaceIndex).ifAlias}},  
    @{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}
}

支持资源

  • 获取 NetIP 接口

  • 获取 NetAdapter

    -IncludeHidden

    表示 cmdlet 在操作中同时包含可见和隐藏的网络适配器。默认情况下,仅包含可见的网络适配器。如果使用通配符来标识网络适配器并且已指定此参数,则通配符字符串将与隐藏和可见的网络适配器进行匹配。

  • 哪里对象

答案2

  $_ | select-object `
    @{Name="ComputerName";     Expression={$_.__SERVER}},
    @{Name="MACAddress";       Expression={$_.MACAddress}},
    @{Name="IPAddress";        Expression={$_.IPAddress[0]}},
    @{Name="Caption";          Expression={$_.Caption}},
    @{Name="IPSubnet";         Expression={$_.IPSubnet[0]}},
    @{Name="Alias1";           Expression={(Get-NetIPInterface -InterfaceIndex $_.InterfaceIndex).InterfaceAlias[0]}},
    @{Name="Alias2";           Expression={(Get-NetAdapter -IncludeHidden | where ifIndex -eq $_.InterfaceIndex).ifAlias}},  
    @{Name="DefaultIPGateway"; Expression={$_.DefaultIPGateway[0]}}```

This works, thank you.

相关内容