应用场景:
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