1.循环遍历集群主机中的虚拟机迁移的兼容性
## get the ServiceInstance object
$viewSI = Get-View "ServiceInstance"
$viewVmProvChecker = Get-View $viewSI.Content.VmProvisioningChecker
$strMyVMHostNameToCheck = "ausesxi-158.amd.com"
$VMHost = Get-VMHost -Name $strMyVMHostNameToCheck
$SourceVMs = "D:\VMs.txt"
$list = Get-Content $SourceVMs | Foreach-Object {Get-VM $_ }
& {foreach ($VM in $list)
{
$viewVmProvChecker.QueryVMotionCompatibilityEx($VM.Id, $VMHost.Id)
}
} |
Select-Object @{N="VM";E={($_.Vm | Get-VIObjectByVIView).Name}},
@{N="VMHost";E={($_.Host | Get-VIObjectByVIView).Name}},
@{N="Warning";E={[string]::Join(',',$_.Warning)}},
@{N="Error";E={[string]::Join(',',$_.Error)}},
LinkedView,
DynamicType,
DynamicProperty |
Export-Csv -Path "D:\VmComp.csv" -NoTypeInformation -UseCulture
输出结果要获取故障详细信息,可以更改以下行:
@{N="Warning";E={[string]::Join(',',$_.Warning)}}, @{N="Error";E={[string]::Join(',',$_.Error)}},变成
@{N="Warning";E={[string]::Join(',',$_.Warning.LocalizedMessage)}}, @{N="Error";E={[string]::Join(',',$_.Error.LocalizedMessage)}},