从Powershell中的对象数组中删除项

从Powershell中的对象数组中删除项,powershell,powershell-2.0,Powershell,Powershell 2.0,我有一个数组对象$a,它返回如下输出 通过执行$a[0].Name,我可以访问每个“Name”条目,$a[0].Available,我可以访问其相应的可用空间 我有另一个数组,比如$b,它包含一些名称,比如$b返回两个名称“sandeep_aggr1”和“aggr4”。这只是一个数组(没有像Name这样的属性,可用),不是一个对象,所以它不能使用Compare对象 我想删除原始对象$a中的其他条目,但“Name”等于“sandeep_aggr1”和“aggr4”的条目除外 这就是我正在做的 f

我有一个数组对象$a,它返回如下输出

通过执行$a[0].Name,我可以访问每个“Name”条目,$a[0].Available,我可以访问其相应的可用空间

我有另一个数组,比如$b,它包含一些名称,比如$b返回两个名称“sandeep_aggr1”和“aggr4”。这只是一个数组(没有像Name这样的属性,可用),不是一个对象,所以它不能使用Compare对象

我想删除原始对象$a中的其他条目,但“Name”等于“sandeep_aggr1”和“aggr4”的条目除外

这就是我正在做的

foreach($bb in $b)
    {
          foreach($aa in $a)
          {
                if($aa.Name -ne $bb)
                {
                   $aa.Remove($aa.Name)
                }

          }


    }

    echo $a
但是,我没有看到删除的元素,我是不是遗漏了什么?
感谢任何帮助

如果我正确阅读了问题,这应该可以:

$a = $a | where {$b -contains $_.Name}

我也遇到了同样的问题,如果$a变成一个只有一个元素的数组,它就不起作用了。Powershell忽略了$a是数组这一事实。这是一个很大的问题,因为我刚刚使用了JSON转换

我刚刚添加了一个演员阵容:

$a = [array]($a | where {$b -contains $_.Name})

谢谢,没想到它这么容易用。工作完全符合预期。