1.遷移前檢查兼容性
您可以使用virtualmachineprovisioning oningchecker對象的QueryVMotionCompatibilityEx_Task方法(它是ServiceContent對象的一個屬性)。
例子:
## 檢查VMotion兼容性的VM名 $strMyVMNameToCheck = "myVM0" 用於檢查此VM的VMotion兼容性的目標VMHost的名稱 $strMyVMHostNameToCheck = "myDestinationHost.mydomain.com" ## 獲取ServiceInstance對象 $viewSI = Get-View 'ServiceInstance' ## 獲取vmprovisioning oningchecker對象 $viewVmProvChecker = Get-View $viewSI.Content.VmProvisioningChecker ## 查詢VMotion的兼容性 $viewVmProvChecker.QueryVMotionCompatibilityEx((Get-VM $strMyVMNameToCheck).Id, (Get-VMHost $strMyVMHostNameToCheck).Id)
這將返回一個VMware.Vim.CheckResult對象,該對象具有一個錯誤和一個警告屬性,如果vMotion可能出現問題,則會填充該屬性。
然後,從這個示例中,您可以看到如何對一個主機上的所有VM、集羣中的所有其他主機執行這樣的檢查,等等——您可以想到的任何方法。
2.遍歷集羣中虛擬機
$clusterName = "MyCluster"
$cluster = Get-Cluster -Name $clusterName
$hypervisors = Get-VMHost -Location $cluster
$vms = Get-VM -Location $cluster
foreach($vm in $vms){
# Get the settings to check for this VM(對VM的操作)
...
foreach($esx in $hypervisors){
# Check the settings in each ESXi(對esxi的操作)
...
}
}