0

我正在尝试从 vCenter 获取所有 VM 的列表,但如果 VM 的名称包含我在另一个列表中的字符串之一,则从列表中排除 VM。

$vm_list = Get-Datacenter | Get-VM 

$vm_list content:

vm1233
vm4566
vm7890
vm3330
vm9990

现在我想从名称中排除列表中包含其中一个字符串的任何 VM:

$exluded_vms = @('33', '66')

最好的方法是什么?

谢谢。

4

1 回答 1

4

我用这个:

[regex]$exluded_vms = '33|66'
 $vm_list = Get-Datacenter | Get-VM  | ? { $_.NAME -NOTMATCH $exluded_vms}

更有效的方法是使用 get-view

   get-view -viewtype virtualmachine -filter @{'name'='^((?!33|66).)*$'} 

最后一个提供有关 VM 的更多信息,您可以将结果传递| select name给以限制输出

于 2012-11-13T13:46:37.130 回答