Powershell - 从集合中删除重复项

Powershell - Remove duplicates from collection

我从 Hyper-V

返回 IP/MAC 个地址

对于具有多个 IP/MAC 地址的 VM,我得到重复的 VM 名称,IE,如果 VM 有 2 个 IP/MAC 我得到 2 个相同的 VM 名称,如果它有 3 个 [=26] =] 然后得到 3 个相同的 VM 名称,VMname 存储在 $virtm 变量

$vms=Get-VM | Where { $_.State –eq ‘Running’ } | Select-Object -ExpandProperty Name 


 foreach($vm in $vms) {

    $out=Get-VMNetworkAdapter -vmname $vm | select VMName, MacAddress, IPAddresses

    $virtm=($out.VMName | ForEach-Object {

    $_ | Get-Unique

    })

    $ip=($out.IPAddresses | ForEach-Object {
    $_ | ? {$_ -notmatch ':'}

    }) -join " "


    $mac = ($out.MacAddress | ForEach-Object {
    $_.Insert(2,":").Insert(5,":").Insert(8,":").Insert(11,":").Insert(14,":")
}) -join ' '

     Write-Output "$virtm, $ip, $mac"

   }

当前输出

OAP80 OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F

期望输出

OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F

我傻

而不是

 $virtm=($out.VMName | ForEach-Object {

    $_ | Get-Unique

    }) 

只需要$virtm=$out.VMName | Get-Unique