我正在尝试从vcenter获取所有VM的列表,但如果其名称包含我在另一个列表中的字符串之一,则从列表中排除VM。
$vm_list = Get-Datacenter | Get-VM
$vm_list content:
vm1233
vm4566
vm7890
vm3330
vm9990
现在我想从名称中的列表中排除任何包含其中一个字符串的VM:
$exluded_vms = @('33', '66')
最好的方法是什么?
感谢。
答案 0 :(得分: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
以限制输出