2012-11-13 58 views
0

我想從vCenter中的所有虛擬機的列表,但是從列表中排除虛擬機,如果它的名稱中包含我已經在另一個列表的一個字符串。有效的方法來即時過濾列表?

$vm_list = Get-Datacenter | Get-VM 

$vm_list content: 

vm1233 
vm4566 
vm7890 
vm3330 
vm9990 

現在我想排除有從名單在其名稱中的一個字符串任何VM:

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

什麼是做到這一點的最好方法是什麼?

謝謝。

回答

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).)*$'} 

最後一個提供有關虛擬機的更多信息,可以通過管道將結果| select name限制ouptup

+0

很好,謝謝! – BlackBeret

相關問題