[PowerCLI]迁移虚拟机到指定DRS资源池

 应用场景:

1.资源池的重建

2.虚拟机整理

直接上代码

$vm = get-vm VM_NAME # 获取指定虚拟机
$rsp = get-resourcepool RESOURCEPOOL_NAME
Move-VM -vm $vm -Destination $rsp # 迁移该虚拟机到指定的资源池

例子:

比如你有100台虚机,1-20需要移到RSP1里,21-40需要移到RSP2里,41-100需要移到RSP3里

创建一个csv的文件,表名allvm.csv,表结构如下:

name rsp
vm1 RSP1
vm2 RSP1
... ...
vm100 RSP3
$vmlist = import-csv ./allvm.csv # 使用import-csv导入csv文件
foreach($row in $vmlist){  # 遍历这个列表
$vm = get-vm $row.name  # 获得虚拟机
$rsp = get-resourcepool $row.rsp # 获取资源池
move-vm -vm $vm -destination $rsp -confirm:$false  # 迁移指定虚拟机到指定资源池,并不需要再确认
}

补充:

导出虚拟机与资源池的关系

get-vm | select name,@{n="ResourcePool"; e={$_ | get-ResourcePool}} | convertTo-csv | out-file x.csv # 获取所有虚拟机对应的资源池清单并转成csv格式,导出到x.csv
原文地址:https://www.cnblogs.com/xddsq/p/11323327.html