首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell -从集合中删除重复项

Powershell -从集合中删除重复项
EN

Stack Overflow用户
提问于 2020-02-28 08:13:51
回答 1查看 86关注 0票数 1

我从Hyper-V返回IP/MAC地址

对于具有多个IP/MAC地址的VM,我得到重复的VM名称,IE,如果VM有2个IP/MAC,我得到两个相同的VM名称,如果它有3个IP/MAC,那么得到3个相同的VM名称,VMname存储在$virtm变量中

代码语言:javascript
复制
$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"

   }

电流输出

代码语言:javascript
复制
OAP80 OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F

期望输出

代码语言:javascript
复制
OAP80, 192.168.1.45 192.168.2.45, 00:15:5D:58:12:5E 00:15:5D:58:12:5F
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 08:16:31

我太蠢了

而不是

代码语言:javascript
复制
 $virtm=($out.VMName | ForEach-Object {

    $_ | Get-Unique

    }) 

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60447648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档