Powershell powercli获取VM不匹配标记

Powershell powercli获取VM不匹配标记,powershell,tags,powercli,Powershell,Tags,Powercli,我使用标签过滤VM/识别特殊配置 Get-VM -Tag TEST 现在我想得到所有不匹配标签的虚拟机。。。。有没有一种方法可以在不使用额外循环的情况下删除与标记匹配的所有项目?似乎没有。但是使用另一个循环不是一个坏的解决方案 应该是这样的: Get-VM -Name * | ?{$_.Tag -ne "Test"} 或者,如果VirtualMachine没有标记属性,则应尝试使用Get View: Get-View -Name * | ?{$_ .Tag -ne "Test"} | Get

我使用标签过滤VM/识别特殊配置

Get-VM -Tag TEST

现在我想得到所有不匹配标签的虚拟机。。。。有没有一种方法可以在不使用额外循环的情况下删除与标记匹配的所有项目?

似乎没有。但是使用另一个循环不是一个坏的解决方案

应该是这样的:

Get-VM -Name * | ?{$_.Tag -ne "Test"}
或者,如果
VirtualMachine
没有
标记
属性,则应尝试使用
Get View

Get-View -Name * | ?{$_ .Tag -ne "Test"} | Get-VM

我正在看这个,我使用了
-contains
/
-notcontains
比较运算符,而不是
-eq
/
-ne
,因为它总是返回布尔表达式。如果您有多个标记,它可能无法正常工作

$VMs = get-vm 

foreach ($VM in $VMs){
    If (((Get-Tagassignment $VM).Tag.Name -notcontains "Prod"){
         Whatever you want if it doesn't contain prod.
    }
}