相关疑难解决方法(0)

在Powershell中,将两个表合并为一个表的最佳方法是什么?

我是Powershell的新手,我想知道是否有人知道有任何更好的方法来完成以下示例问题.

我有一个从IP地址到主机名的映射数组.这表示活动DHCP租约列表:

PS H:\> $leases

IP                    Name
--                    ----
192.168.1.1           Apple
192.168.1.2           Pear
192.168.1.3           Banana
192.168.1.99          FishyPC
Run Code Online (Sandbox Code Playgroud)

我有另一个从MAC地址到IP地址的映射数组.这代表了IP预订列表:

PS H:\> $reservations

IP                    MAC
--                    ---
192.168.1.1           001D606839C2
192.168.1.2           00E018782BE1
192.168.1.3           0022192AF09C
192.168.1.4           0013D4352A0D
Run Code Online (Sandbox Code Playgroud)

为方便起见,我能够使用以下代码生成从MAC地址到IP地址和主机名的第三个映射数组.我们的想法是$reservations应该获得第三个字段"Name",只要有匹配的"IP"字段就填充该字段:

$reservations = $reservations | foreach {
    $res = $_
    $match = $leases | where {$_.IP -eq $res.IP} | select -unique
    if ($match -ne $NULL) {
        "" | select @{n="IP";e={$res.IP}}, @{n="MAC";e={$res.MAC}}, @{n="Name";e={$match.Name}}
    }
}
Run Code Online (Sandbox Code Playgroud)

所需的输出是这样的:

PS H:\> $ideal

IP                    MAC                 Name
--                    ---                 ----
192.168.1.1 …
Run Code Online (Sandbox Code Playgroud)

powershell scripting dhcp

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

dhcp ×1

powershell ×1

scripting ×1